Получить запросом документы только с определенным списком номенклатур
По теме из базы знаний
- Перенос данных из УПП 1.3 / КА 1.1 в БП 3. Переносятся документы, справочники и начальные остатки
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Принципы проектирования справочников номенклатуры в 1С: Управление Предприятием 2 (ERP 2.4.6)
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
Найденные решения
Лучше пойти от обратного:
1. Выбрать всю номенклатуру, кроме выбранной.
2. Выбрать заказы, где есть номенклатура, кроме выбранной.
3. Убрать их из общего списка заказов.
Примерно так:
Пункты можно объединить в один запрос с подзапросами, не принципиально.
1. Выбрать всю номенклатуру, кроме выбранной.
2. Выбрать заказы, где есть номенклатура, кроме выбранной.
3. Убрать их из общего списка заказов.
Примерно так:
ВЫБРАТЬ РАЗЛИЧНЫЕ СпрНоменклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ТаблицаНоменклатуры
ИЗ Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ НЕ СпрНоменклатура.Ссылка В (&СписокНоменклатуры)
И НЕ СпрНоменклатура.ЭтоГруппа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Ссылка КАК Заказ
ПОМЕСТИТЬ ТаблицаИсключаемыхЗаказов
ИЗ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ ЗаказКлиентаТовары .Номенклатура В (ВЫБРАТЬ ТаблицаНоменклатуры.Номенклатура ИЗ ТаблицаНоменклатуры)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка КАК Заказ
ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ НЕ ЗаказКлиентаТовары .Ссылка В (ВЫБРАТЬ ТаблицаИсключаемыхЗаказов.Заказ ИЗ ТаблицаИсключаемыхЗаказов)
ПоказатьПункты можно объединить в один запрос с подзапросами, не принципиально.
Работающий запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НеНужнаяНоменклатура
ПОМЕСТИТЬ ВТ_ненужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.Ссылка В (&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
НеНужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НужнаяНоменклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_Нужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИНДЕКСИРОВАТЬ ПО
НужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_КОличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
Количество
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Нужная КАК ВТ_Нужная
ПО ЗаказКлиентаТовары.Номенклатура = ВТ_Нужная.НужнаяНоменклатура
ГДЕ
НЕ ЗаказКлиентаТовары.Номенклатура В
(ВЫБРАТЬ
ВТ_ненужная.НеНужнаяНоменклатура КАК НеНужнаяНоменклатура
ИЗ
ВТ_ненужная КАК ВТ_ненужная)
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_НужныеЗаказы.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы КАК ВТ_НужныеЗаказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КОличество КАК ВТ_КОличество
ПО (ВТ_КОличество.Количество = ВТ_НужныеЗаказы.Количество)
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если я правильно понял вашу задачу то могу предложить такой вариант:
ВЫБРАТЬ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСНужнойНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСПостороннейНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
НЕ ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ (&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказыСНужнойНоменклатурой.Ссылка
ИЗ
ЗаказыСНужнойНоменклатурой КАК ЗаказыСНужнойНоменклатурой
ЛЕВОЕ СОЕДИНЕНИЕ ЗаказыСПостороннейНоменклатурой КАК ЗаказыСПостороннейНоменклатурой
ПО ЗаказыСНужнойНоменклатурой.Ссылка = ЗаказыСПостороннейНоменклатурой.Ссылка
ГДЕ
ЗаказыСПостороннейНоменклатурой.Ссылка ЕСТЬ NULL
Показать
(11)
тоже не то. Надо чтоб если в документе есть ненужная номенклатура вместе с нужной чтоб он не выводился. А во всех этих вариантах выводится документ если в табличной части есть нужная номенклатура. Например в документе 1 есть товар 1,2,4 документ 2 - 1,4, выбираю товар 1, 4 должен вывести только документ 2
ВЫБРАТЬ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСНужнойНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСПостороннейНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
НЕ ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ (&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказыСНужнойНоменклатурой.Ссылка
ИЗ
ЗаказыСНужнойНоменклатурой КАК ЗаказыСНужнойНоменклатурой
ЛЕВОЕ СОЕДИНЕНИЕ ЗаказыСПостороннейНоменклатурой КАК ЗаказыСПостороннейНоменклатурой
ПО ЗаказыСНужнойНоменклатурой.Ссылка = ЗаказыСПостороннейНоменклатурой.Ссылка
ГДЕ
ЗаказыСПостороннейНоменклатурой.Ссылка ЕСТЬ NULL
ПоказатьЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСНужнойНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСПостороннейНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
НЕ ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ (&Номенклатура)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаказыСНужнойНоменклатурой.Ссылка
ИЗ
ЗаказыСНужнойНоменклатурой КАК ЗаказыСНужнойНоменклатурой
ЛЕВОЕ СОЕДИНЕНИЕ ЗаказыСПостороннейНоменклатурой КАК ЗаказыСПостороннейНоменклатурой
ПО ЗаказыСНужнойНоменклатурой.Ссылка = ЗаказыСПостороннейНоменклатурой.Ссылка
ГДЕ
ЗаказыСПостороннейНоменклатурой.Ссылка ЕСТЬ NULL
тоже не то. Надо чтоб если в документе есть ненужная номенклатура вместе с нужной чтоб он не выводился. А во всех этих вариантах выводится документ если в табличной части есть нужная номенклатура. Например в документе 1 есть товар 1,2,4 документ 2 - 1,4, выбираю товар 1, 4 должен вывести только документ 2
(13)
Да, вот такой вариант попробуйте, на моих данных сработало как вы хотели:
Тут есть еще нюанс, что сюда попадают также заказы где только товар 1 или только 4, не знаю какие у вас условия...
Да, вот такой вариант попробуйте, на моих данных сработало как вы хотели:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиента.Ссылка
ПОМЕСТИТЬ ЗаказыСНужнойНоменклатурой
ИЗ
Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ
ЗаказКлиента.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка
ПОМЕСТИТЬ ЗаказыСПостороннейНоменклатурой
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
НЕ ЗаказКлиентаТовары.Номенклатура В ИЕРАРХИИ (&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗаказыСНужнойНоменклатурой.Ссылка
ИЗ
ЗаказыСНужнойНоменклатурой КАК ЗаказыСНужнойНоменклатурой
ЛЕВОЕ СОЕДИНЕНИЕ ЗаказыСПостороннейНоменклатурой КАК ЗаказыСПостороннейНоменклатурой
ПО ЗаказыСНужнойНоменклатурой.Ссылка = ЗаказыСПостороннейНоменклатурой.Ссылка
ГДЕ
ЗаказыСПостороннейНоменклатурой.Ссылка ЕСТЬ NULL
ПоказатьТут есть еще нюанс, что сюда попадают также заказы где только товар 1 или только 4, не знаю какие у вас условия...
(4)
ВЫБРАТЬ
ЗаказТовары.Ссылка,
ЗаказТовары.Номенклатура
ПОМЕСТИТЬ ВТНоменклатура
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказТовары
ГДЕ
ЗаказТовары.Номенклатура В(&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА ВТНоменклатура.Номенклатура.Ссылка ЕСТЬ NULL
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ОтсутствующиеПоля,
ВТНоменклатура.Ссылка
ИЗ
ВТНоменклатура КАК ВТНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Заказ
ПО ВТНоменклатура.Ссылка = Заказ.Ссылка
СГРУППИРОВАТЬ ПО
ВТНоменклатура.Ссылка,
ВЫБОР
КОГДА ВТНоменклатура.Номенклатура.Ссылка ЕСТЬ NULL
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
ИМЕЮЩИЕ
СУММА(ВЫБОР
КОГДА ВТНоменклатура.Номенклатура.Ссылка ЕСТЬ NULL
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) = 0
Показать
А просто выборка с условием:
ГДЕ
ЗаказТовары.Номенклатура В(&Номенклатура)
И НЕ ЗаказТовары.Номенклатура В (ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураОтбор
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ НЕ Номенклатура.Ссылка В (&Номенклатура))
(6)
не получается
ГДЕ
ЗаказТовары.Номенклатура В(&Номенклатура)
И НЕ ЗаказТовары.Номенклатура В (ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураОтбор
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ НЕ Номенклатура.Ссылка В (&Номенклатура))
ЗаказТовары.Номенклатура В(&Номенклатура)
И НЕ ЗаказТовары.Номенклатура В (ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураОтбор
ИЗ Справочник.Номенклатура КАК Номенклатура
ГДЕ НЕ Номенклатура.Ссылка В (&Номенклатура))
не получается
ВЫБРАТЬ
ЗаказТовары.Ссылка
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказТовары
ГДЕ
ЗаказТовары.Номенклатура В (&Номенклатура)
И НЕ ЗаказТовары.Номенклатура В
(ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураОтбор
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.Ссылка В (&Номенклатура))
ПоказатьВЫБРАТЬ
ЗаказТоварыП.Ссылка
ИЗ
(ВЫБРАТЬ ЗаказТовары.Ссылка,
ЗаказТовары.Номенклатура
Документ.ЗаказКлиента.Товары КАК ЗаказТовары
ГДЕ
ЗаказТовары.Номенклатура В (&Номенклатура)
) КАК ЗаказТоварыП
ГДЕ
НЕ ЗаказТоварыП.Номенклатура В (&Номенклатура)
Показать
Лучше пойти от обратного:
1. Выбрать всю номенклатуру, кроме выбранной.
2. Выбрать заказы, где есть номенклатура, кроме выбранной.
3. Убрать их из общего списка заказов.
Примерно так:
Пункты можно объединить в один запрос с подзапросами, не принципиально.
1. Выбрать всю номенклатуру, кроме выбранной.
2. Выбрать заказы, где есть номенклатура, кроме выбранной.
3. Убрать их из общего списка заказов.
Примерно так:
ВЫБРАТЬ РАЗЛИЧНЫЕ СпрНоменклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ТаблицаНоменклатуры
ИЗ Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ НЕ СпрНоменклатура.Ссылка В (&СписокНоменклатуры)
И НЕ СпрНоменклатура.ЭтоГруппа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Ссылка КАК Заказ
ПОМЕСТИТЬ ТаблицаИсключаемыхЗаказов
ИЗ Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ ЗаказКлиентаТовары .Номенклатура В (ВЫБРАТЬ ТаблицаНоменклатуры.Номенклатура ИЗ ТаблицаНоменклатуры)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказКлиента.Ссылка КАК Заказ
ИЗ Документ.ЗаказКлиента КАК ЗаказКлиента
ГДЕ НЕ ЗаказКлиентаТовары .Ссылка В (ВЫБРАТЬ ТаблицаИсключаемыхЗаказов.Заказ ИЗ ТаблицаИсключаемыхЗаказов)
ПоказатьПункты можно объединить в один запрос с подзапросами, не принципиально.
Работающий запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НеНужнаяНоменклатура
ПОМЕСТИТЬ ВТ_ненужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.Ссылка В (&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
НеНужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НужнаяНоменклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_Нужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИНДЕКСИРОВАТЬ ПО
НужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_КОличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
Количество
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Нужная КАК ВТ_Нужная
ПО ЗаказКлиентаТовары.Номенклатура = ВТ_Нужная.НужнаяНоменклатура
ГДЕ
НЕ ЗаказКлиентаТовары.Номенклатура В
(ВЫБРАТЬ
ВТ_ненужная.НеНужнаяНоменклатура КАК НеНужнаяНоменклатура
ИЗ
ВТ_ненужная КАК ВТ_ненужная)
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_НужныеЗаказы.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы КАК ВТ_НужныеЗаказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КОличество КАК ВТ_КОличество
ПО (ВТ_КОличество.Количество = ВТ_НужныеЗаказы.Количество)
Показать
(22) (18)
Еще короче вариант, убрал лишнее:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НужнаяНоменклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_Нужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИНДЕКСИРОВАТЬ ПО
НужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_КОличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
Количество
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Нужная КАК ВТ_Нужная
ПО ЗаказКлиентаТовары.Номенклатура = ВТ_Нужная.НужнаяНоменклатура
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_НужныеЗаказы.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы КАК ВТ_НужныеЗаказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КОличество КАК ВТ_КОличество
ПО (ВТ_КОличество.Количество = ВТ_НужныеЗаказы.Количество)
Еще короче вариант, убрал лишнее:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НужнаяНоменклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_Нужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИНДЕКСИРОВАТЬ ПО
НужнаяНоменклатура
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_КОличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
Количество
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Нужная КАК ВТ_Нужная
ПО ЗаказКлиентаТовары.Номенклатура = ВТ_Нужная.НужнаяНоменклатура
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_НужныеЗаказы.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы КАК ВТ_НужныеЗаказы
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КОличество КАК ВТ_КОличество
ПО (ВТ_КОличество.Количество = ВТ_НужныеЗаказы.Количество)
(28) Вот так не попадет:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Номенклатура.Ссылка КАК НужнаяНоменклатура,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_Нужная
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ИНДЕКСИРОВАТЬ ПО
НужнаяНоменклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Номенклатура.Ссылка) КАК Количество
ПОМЕСТИТЬ ВТ_КОличество
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В(&СписокНоменклатуры)
ИНДЕКСИРОВАТЬ ПО
Количество
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Нужная КАК ВТ_Нужная
ПО ЗаказКлиентаТовары.Номенклатура = ВТ_Нужная.НужнаяНоменклатура
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказКлиентаТовары.Ссылка КАК Ссылка,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказКлиентаТовары.Номенклатура) КАК Количество
ПОМЕСТИТЬ ВТ_НужныеЗаказы1
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
ЗаказКлиентаТовары.Ссылка В
(ВЫБРАТЬ
ВТ_НужныеЗаказы.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы КАК ВТ_НужныеЗаказы)
СГРУППИРОВАТЬ ПО
ЗаказКлиентаТовары.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_НужныеЗаказы1.Ссылка КАК Ссылка
ИЗ
ВТ_НужныеЗаказы1 КАК ВТ_НужныеЗаказы1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КОличество КАК ВТ_КОличество
ПО (ВТ_КОличество.Количество = ВТ_НужныеЗаказы1.Количество)
Показать
Полагаю примерно так:
1 Запрос - выбираем доки номенклатура которых есть в массиве
2 запрос - из первого запроса выбираем доки в которые есть номенклатура не в списке
3. соединяем
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ т01
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
РеализацияТоваровУслугТовары.Номенклатура В (&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ т02
ИЗ
т01 КАК т01
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ПО (т01.Ссылка = РеализацияТоваровУслугТовары.Ссылка)
ГДЕ
НЕ РеализацияТоваровУслугТовары.Номенклатура В (&Номенклатура)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
т01.Ссылка КАК Ссылка
ИЗ
т01 КАК т01
ЛЕВОЕ СОЕДИНЕНИЕ т02 КАК т02
ПО (т01.Ссылка = т02.Ссылка)
ГДЕ
т02.Ссылка ЕСТЬ NULL
1 Запрос - выбираем доки номенклатура которых есть в массиве
2 запрос - из первого запроса выбираем доки в которые есть номенклатура не в списке
3. соединяем
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ т01
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
РеализацияТоваровУслугТовары.Номенклатура В (&Номенклатура)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслугТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ т02
ИЗ
т01 КАК т01
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ПО (т01.Ссылка = РеализацияТоваровУслугТовары.Ссылка)
ГДЕ
НЕ РеализацияТоваровУслугТовары.Номенклатура В (&Номенклатура)
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
т01.Ссылка КАК Ссылка
ИЗ
т01 КАК т01
ЛЕВОЕ СОЕДИНЕНИЕ т02 КАК т02
ПО (т01.Ссылка = т02.Ссылка)
ГДЕ
т02.Ссылка ЕСТЬ NULL
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот