#0
by McCoy
Есть список номенклатуры. Необходимо выбрать все Заказы за период, которые содержат ВСЮ номенклатуру из списка. Вроде бы все просто: в СКД создаем простейший запрос по Заказам, добавляем параметр &Товар (тот самый список номенклатур), добавляем условие В: И ЗаказСостав.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода И тут соображаем: выбираются Заказы, содержащие не ВЕСЬ список товара, а содержащие хотя бы одну номенклатуру из списка-параметра &Товар. Как быть? Можно ли решить одним запросом? Кто сталкивался?
#1
by shuhard
составь список заказов не содержащий данный список номенклатуры и исключи его из своего списка
#3
by Mort
Сделай таблицу номенклатуры и смотри левым соединением с ТЧ есть ли позиции NULL в правой части (ТЧ)
#4
by Defender aka LINN
И? Ну, извратным путем, разве что. Сначала посчитать размер списка (выборкой из справочника), потом искать заказы, где количество строк с номенклатурой из списка равно этому количеству
#5
by Rovan
надо в запросе получить кол-во строк ТЧ попавшей в список и сравнить это кол-во с колвом значений переданного списка - если равно то берем этот док
#9
by Mort
Если нужно 100% чтобы не только был весь список в составе ТЧ, но и лишних не было, можно делать полное соединение и смотреть отсутствие NULLов в обеих частях.
#10
by McCoy
Нужно чтобы весь список входил в ТЧ документа, но не обязательно чтобы он на 100% совпадал с ТЧ (т.е. может быть и другая номенклатура). Mort, не понял насчет "Сделай таблицу номенклатуры и смотри левым соединением с ТЧ есть ли позиции NULL в правой части (ТЧ)". Я реализовал задачу. Криво-косо правда. Выяснил что параметр &Товар будет ограничен количеством не более 5 штук. В СКД создал 5 параметров: Товар1, Товар2,... Товар5. И по количеству введенных параметров (могут искать как одну номенклатуру, так и несколько) откорректировал запрос. Получается нечто вроде: ВЫБРАТЬ ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаказСостав.Ссылка КАК Ссылка ИЗ Если будут выбраны параметры Товар1 и Товар 5, то текст запроса будет переделан. Если будет выбрано например 3 параметра, добавится еще один вложенный запрос "Товары3", еще одно внутреннее соединение. Криво, косо, неоптимально это все... Не нравится мне это решение. Но из услышанных здесь предложений более оптимального пока не уловил...
#11
by shuhard
пипец загрузи свой список во временную таблицу и соедини тебе ж русским языком Mort объяснил
#13
by McCoy
Не получается. Можно было попробовать через полное соединение отловить Null, но СКД премило съедает "нули". Погрызу еще эту тему, но кажется уперся в тупик... P.S. Дядьки, не бейте ногами! Как вы "номерок в кавычках" в сообщении выставляете со ссылкой на сообщение?
#15
by Defender aka LINN
Можно просто запрос к справочнику сделать. Уж там-то наверняка все эти элементы есть, я гарантирую это :)
#16
by orefkov
я язык запросов 8ки плохо знаю, но на скл это решается примерно так: ИЗ Документ.Заказ.Состав КАК ЗаказСостав внутреннее соединение ТвояВремТаблица по ЗаказСостав.Товар = ТвояВремТаблица.Товар группировка по ЗаказСостав.Ссылка имееющие сумма = &КоличествоТоваровВСписке
#21
by McCoy
Сделал. Ниже запрос, может кому понадобится. УТ на примере документа ЗаказПокупателя. Сравнение идет по количеству товара в списке из параметра запроса и в самих Заказах, как предложил Проверял, работает корректно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Выборка из регистра сведений Значения свойств объектов.
- СКД: Как сделать выпадающий список у значения параметра в СКД
- Сохранить Значения, Восстановить Значения
- Попытка получения неинициализированного значения параметра сеанса
- Попытка передачи с клиента на сервер мутабельного значения 1-го параметра
- Поле объекта не обнаружено (Выборка) Строка.СубконтоКт= Выборка.СубконтоДт1[
- Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода
- 1С 8.2 Передать список значений в качестве параметра при открытии формы выбора
- В отладчике для Выборка пишет Ошибка чтения значения
В этой группе 1С
- Номенклатурные группы и ставка НДС
- v7: Как можно узнать идентификатор отчета?
- Имущественный вычет 311 с мат.выгоды НДФЛ 35%
- Управляемое приложение. Проверка реквизита табличной части на уникальность
- Перемещение товаров - дата запрета перепроведения
- Добавление показателей в универсальный отчёт.
- Получение штрих кодов официальных
- Помогите! Как вводить замещение сотрудника в ЗУП?
- СКД: Отбор по периоду
- УТ 11.0.7.8 Пропала кнопка печати у продавца-кассира
- Дт 43 Кт 43
- Как выбрать изменения в справочнике Номенклатура?
- УПП 1.3 Ценообразование, подскажите как сделать
- Почему время 23:59:59 у документов на последнюю дату месяца?
- Нумерация строк в табличной части
- Неверный формат хранилища данных при открытии внешнего отчета
- В основной конфигурации два поставщика конфигураций, как одного удалить?
- Регистр сведений. Последняя запись для каждого сотрудника
- Копирование/перемещение в Дереве значений
- Отмена проведения не активна