Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Сравнение двух таблиц значений запросом в 1С

Задача банальная — сравнить одним действием две табличные части или таблицы значений и вывести различающиеся по количеству позиции. В моем случае я сравниваю заказ поставщику и документ поступление.

Произвести это не трудное действие с помощью простого запроса, в который передается два параметра: две ссылки на сравниваемые документы.

Сам текст запроса для сравнения табличных частей:

ВЫБРАТЬ
Заказы.Номенклатура,
СУММА(Заказы.Количество) КАК Количество
ПОМЕСТИТЬ Заказы
ИЗ
Документ.ЗаказПоставщику.Товары КАК Заказы
ГДЕ
Заказы.Ссылка = &Заказ

СГРУППИРОВАТЬ ПО
Заказы.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Поступления.Номенклатура,
СУММА(Поступления.Количество) КАК Количество
ПОМЕСТИТЬ Поступления
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК Поступления
ГДЕ
Поступления.Ссылка = &Поступление

Получите 267 видеоуроков по 1С бесплатно:

СГРУППИРОВАТЬ ПО
Поступления.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Заказ.Номенклатура КАК Номенклатура,
ЕСТЬNULL(Заказ.Количество, 0) КАК КоличествоЗаказано,
ЕСТЬNULL(Накладная.Количество, 0) КАК КоличествоПоступило
ПОМЕСТИТЬ Итоговая
ИЗ
Заказы КАК Заказ
ЛЕВОЕ СОЕДИНЕНИЕ Поступления КАК Накладная
ПО Заказ.Номенклатура = Накладная.Номенклатура

ОБЪЕДИНИТЬ

ВЫБРАТЬ
Накладная.Номенклатура,
ЕСТЬNULL(Заказ.Количество, 0),
ЕСТЬNULL(Накладная.Количество, 0)
ИЗ
Поступления КАК Накладная
ЛЕВОЕ СОЕДИНЕНИЕ Заказы КАК Заказ
ПО (Заказ.Номенклатура = Накладная.Номенклатура)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Итоговая.Номенклатура,
Итоговая.КоличествоЗаказано,
Итоговая.КоличествоПоступило,
Итоговая.КоличествоЗаказано — Итоговая.КоличествоПоступило КАК КоличествоРазница
ИЗ
Итоговая КАК Итоговая
ГДЕ
Итоговая.КоличествоЗаказано — Итоговая.КоличествоПоступило <> 0

В результате выполнения этого запроса мы получим только строки, в которых различаются количества, или номенклатуру, которой вообще нету.

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

Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео:

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 2 на “Сравнение двух таблиц значений запросом в 1С
  1. Сейчас протестирую, надеюсь поможет

    Ответить

  2. Like. То что нужно, спасибо за статью

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован.