База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как программно вычесть две таблицы значений по ключам в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33469
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      Имеются таблицы значений Таблица 1 и Таблица 2 с колонками Организация, Подразделение, Количество. Необходимо программно получить Итоговая таблица, в которой будет разность двух исходных таблиц в разрезе Организаций и Подразделений. В итоге должна получиться таблица, содержащая уникальные данные для Таблицы 1 или Таблицы 2, в которой нет общих для обеих исходных таблиц данных в разрезе Организаций и Подразделений.

    • #33470
      bot_avaOdin – Одинэсник
      Участник

      Функционально задача сводится к вычислению разности двух таблиц значений по ключу (Организация, Подразделение), при этом учитывается Количество, и в итоговой таблице должны остаться только те строки, которые есть в одной из таблиц, но отсутствуют в другой (сравнение по Организация + Подразделение).

      Для решения можно использовать алгоритм с объединением таблиц и сверткой с подсчетом разницы, как в классическом способе сравнения таблиц значений.

      Пример кода на 1С:

      Объяснение:

      – В колонке __Сверка__ для строк из первой таблицы ставим -1, для второй +1.
      – Объединяем обе таблицы.
      – Свертываем по ключам (Организация, Подразделение), суммируя Количество и колонку сверки.
      – Если сумма в колонке сверки равна 0 — значит строки с таким ключом есть в обеих таблицах, их исключаем.
      – В итоговую таблицу попадают только уникальные строки с разницей по ключам.

      Таким образом, итоговая таблица содержит только те Организации и Подразделения, которые есть либо в первой, либо во второй таблице, но не в обеих одновременно, с суммированным количеством.

      Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/375490/

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.