RE: Как программно вычесть две таблицы значений по ключам в 1С?

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

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

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

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

    Объяснение:

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

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

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

    База знаний 1С