Как передать в запрос два связанных списка? #269546


#0 by rinaten
Код: Для Ит = 0 по Выбб.Количество - 1 Цикл                        Запрос.УстановитьПараметр("НачалоРазмещения", <Здесь должна быть инфа связанная с номенклатурой, связка не в этом документе>);                        Запрос.УстановитьПараметр("КонецРазмещения", <Здесь должна быть инфа связанная с номенклатурой, связка не в этом документе>);
#1 by mikecool
ничего не понял...
#2 by rinaten
есть два документа. в первом(Заявка) в табчасти в строке есть три реквизита: Номенклатура НачалоРазмещения и КонецРазмещения. Во втором (ПоступлениеТоваровИУслуг (УТ)) есть только номенклатура. Я запросом достаю из того документа Начало и Конец размещения: Загоняю номенклатуру в список значений чтобы передать в запрос:                Для Ит = 0 по Выбб.Количество - 1 Цикл Но в запросе надо еще и проверять связанную с позицией номенклатуры даты(см. выше).
#3 by rinaten
т.е. динамический список неопределенного количества номенклатуры то я передал в запрос (ну не могу в цикле запросы гонять), а вот для каждой позиции номенклатуры из этого переданного спискаЗначений надо еще проверить дату на то чтобы она не лежала в промежутке дат(измерения регистра сведений). Так вот, передавая динамический список в запрос я не понимаю как проверять по связанным  подчиненным элементам этого списка=)
#4 by rinaten
и если нет ответа или лень вникать ответьте пожалуйста сколько по времени будет проходить из цикла 1000 запросов = (sql server, возможности проверить до внедрения нет). Я уперся рогом=(
#5 by mikecool
насколько я понял - все можно выполнить одним запросом... типа ВЫБРАТЬ Номенклатура, Дата1, Дата2 из ... где Номенклатура В (твой подзапрос формирующий список номенклатуры) и <а сюда ставим ограничения на дату> возможно все ограничения можно воткнуть в параметры ВТ...
#6 by rinaten
поставим задачу в общем и более понятным способом: Есть документ, в нем табЧасть с реквизитами Номенклатура и ДатаПродажи (рассматриваем пример посему прошу к предметной области не придираться). Есть регистр сведений с измерениями Номенклатура, ДатаНач, ДатаКон. Продавать номенклатуру можно только между датанач и дата кон, т.е. надо лезть в регистр и проверять ДатаПродажи из табчасти связанная строкой с номенклатурой лежит в указанном промежутке или нет. передаем в запрос СписокНоменклатуры(динамический) с номенклатурой. Теперь надо проверить для вот этой номенклатуры(которая сейчас в списке и по которой идет сравнение) дату, лежит ли она между датанач и датаКон. - спасибо, сейчас что нибудь попробую, но хотелось бы для красоты в запросе =) ps: научите меня ссылки ставить перед сообщением как ответ на чей то посто со ссылкой )
#7 by mikecool
не надо передавать в запрос список... где <Номенклатура Из Регистра> В (ВЫБРАТЬ Номенклатура ИЗ И <условия по дате>
#8 by rinaten
спасибо, сейчас попробую так. Был вроде вопрос можно ли передавать в запрос ТЗ, выяснилось что в построитель можно. Т.е. как источник данных мне надо использовать результат вложенного запроса, но пока меня смущает то что проверка дат идет во "внешнем запросе", а получаем мы его во внутреннем, и то что из вложенного запроса надо данные передавать в условия ВТ регистра, а там нет данных из вложенного запроса..
#9 by rinaten
о_0 - конструктор запроса можно вызвать в условиях ВТ. Признаю ошибку=)
#10 by rinaten
"ДатаПродажи" сидит во вложенном запросе (после слова ВЫБРАТЬ) где <Номенклатура Из Регистра> В (ВЫБРАТЬ Номенклатура ИЗ <условия по дате> - в этих усл задействована не как параметр запроса (с &), а как данные из вложенного запроса. Дата сидит в подзапросе =( "ВЫБРАТЬ |    СтатусНоменклатурыСрезПоследних.Номенклатура, |    СтатусНоменклатурыСрезПоследних.НачалоРазмещения,
#11 by rinaten
если условия на дату ставить во вложенном запросе, то отбор будет там же. а мне отбирать надо во внешнем запросе. Или я ничего не понимаю, или тема отбора в одном запросе по двум связанным динамическим спискам не раскрыта)
#12 by rinaten
имхо аналогично передаче списка. Все равно никак не вытащишь оттуда даты, связанные в запросе с номенклатурой. ps: пятница день тяжелый, а суббота так вообще смерть) Что после пятницы что на шестидневке
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С