|
Выбор из запроса | ☑ | ||
---|---|---|---|---|
0
amadeus2010
16.06.12
✎
10:13
|
Добрый день всем, помогите пожалуйста с такой задачей.Имеется процедура загружающая товары из Дерева значений в табличную часть.В нее я добавил запрос, который отбирает те заказы количество номенклатуры которых меньше указанного в параметре минимальное количество.В том виде что имеется сейчас код не работает,пропускает все заказы даже те которые не должны проходить.
//////////////////////////////////////////////////////////////// Процедура ДеревоЗаказовДобавитьСТрокуВТаблицуТоваровРекурсивно(Строка,ТаблицаТоваров) Если ТипЗнч(Строка.Колонка1) = Тип("СправочникСсылка.Номенклатура") Тогда СтрокаТаблицыТоваров = ТаблицаТоваров.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицыТоваров,Строка); Запрос= Новый Запрос; Запрос.Текст= "ВЫБРАТЬ |ЗаказыПокупателейОстаткиПЕТШАХДАГ.Заказ | |ИЗ |(ВЫБРАТЬ | ЗаказыПокупателейОстатки.ЗаказПокупателя.Ссылка КАК Заказ, | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток / ЗаказыПокупателейОстатки.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент) КАК КоличествоОБЩЕЕ | ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки( | &Дата, | ЗаказПокупателя.ДатаОтгрузки >= &ЗаказПокупателяДатаНачала | И ЗаказПокупателя.ДатаОтгрузки <= &ЗаказПокупателяДатаКонца) КАК ЗаказыПокупателейОстатки | | СГРУППИРОВАТЬ ПО | ЗаказыПокупателейОстатки.ЗаказПокупателя.Ссылка | | ИМЕЮЩИЕ | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток / ЗаказыПокупателейОстатки.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент) < &МинимальноеКоличествоКассет) КАК ЗаказыПокупателейОстаткиОБЩЕЕ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаказыПокупателейОстатки.ЗаказПокупателя.Ссылка КАК Заказ, | СУММА(ЗаказыПокупателейОстатки.КоличествоОстаток / ЗаказыПокупателейОстатки.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент) КАК КоличествоШахдагПЕТ | ИЗ | РегистрНакопления.ЗаказыПокупателей.Остатки( | &Дата, | ЗаказПокупателя.ДатаОтгрузки >= &ЗаказПокупателяДатаНачала | И ЗаказПокупателя.ДатаОтгрузки <= &ЗаказПокупателяДатаКонца | И (Номенклатура.Родитель.Ссылка В ИЕРАРХИИ (&ПЕТ) | ИЛИ Номенклатура.Родитель.Ссылка В ИЕРАРХИИ (&ШАХДАГ))) КАК ЗаказыПокупателейОстатки | | СГРУППИРОВАТЬ ПО | ЗаказыПокупателейОстатки.ЗаказПокупателя.Ссылка) КАК ЗаказыПокупателейОстаткиПЕТШАХДАГ | ПО (ЗаказыПокупателейОстаткиПЕТШАХДАГ.Заказ = ЗаказыПокупателейОстаткиОБЩЕЕ.Заказ) | И (ЗаказыПокупателейОстаткиПЕТШАХДАГ.КоличествоШахдагПЕТ = ЗаказыПокупателейОстаткиОБЩЕЕ.КоличествоОБЩЕЕ)"; Запрос.УстановитьПараметр("ЗаказПокупателяДатаНачала", Началодня(ЗаказНачПериода)); Запрос.УстановитьПараметр("ЗаказПокупателяДатаКонца", КонецДня(ЗаказКонПериода)); Запрос.УстановитьПараметр("МинимальноеКоличествоКассет",Константы.МинимальноеКоличествоКассетВЗаказе.Получить()); Запрос.УстановитьПараметр("Дата",КонецДня(Дата)); Запрос.УстановитьПараметр("ПЕТ", Справочники.Номенклатура.НайтиПоНаименованию("ПЕТ Продукция")); Запрос.УстановитьПараметр("ШАХДАГ", Справочники.Номенклатура.НайтиПоНаименованию("Шахдаг")); РезультатЗапроса=Запрос.Выполнить().Выгрузить(); Для Каждого Стр из РезультатЗапроса Цикл Заказ=Стр.Заказ; Если СтрокаТаблицыТоваров.ЗаказПокупателя= Заказ Тогда Сообщить("Количество заказа не соответствует минимальному количеству"); Возврат; Иначе СтрокаТаблицыТоваров.Количество = Строка.КоличествоКРаспределению; СтрокаТаблицыТоваров.ЗаказПокупателя = Строка.Заказ; СтрокаТаблицыТоваров.СтрокаДерева = Строка; КонецЕсли; КонецЦикла; Иначе Для Каждого Строка1 из Строка.Строки Цикл ДеревоЗаказовДобавитьСТрокуВТаблицуТоваровРекурсивно(Строка1,ТаблицаТоваров); КонецЦикла; КонецЕсли; КонецПроцедуры ///////////////////////////////////////////////////////////// |
|||
1
Wobland
16.06.12
✎
10:21
|
страх какой. не буду читать, вижу, что сначала безусловно добавляешь строку в ТЧ, а потом пытаешься что-то проверять
|
|||
2
Renat11111
16.06.12
✎
10:32
|
(0) ты типа 1сник?
|
|||
3
Rovan
гуру
16.06.12
✎
10:48
|
(0) тебя не смущаеть что слово "строка" красное ?
*** сначала надо делать запрос 1 раз и получить результат а потом в цикле проверять находится там что-то или нет |
|||
4
Индиго
16.06.12
✎
10:58
|
(0)Первое правило : Если ты хочешь чтобы чтото попало в запрос, а оно не попадает - смотри на условия ГДЕ и условия-параметры виртуальных таблиц
|
|||
5
Индиго
16.06.12
✎
11:00
|
+ ну еще ИМЕЮЩИЕ конечно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |