Как выбрать данные в зависимости от приоритета?
01.10.2010
12:13
#21
Вообще-то в параметрах указывается ссылка на документ, а таблица уже в запросе написана:<br>Выбрать СписокНом.*<br>Из Документ.ЗаказПокупателя.Товары Как СписокНом<br>Где СписокНом.Ссылка = &СсылкаНаЗаказ<br><br>Таблица из которой выбирается номенклатура называется Товары<br>
01.10.2010
12:57
#22
А как можно исправить следующую ошибку:<br> Тип не определен (МенеджерВременныйТаблиц)<br>
01.10.2010
14:06
#24
"А зачем нужно Новый ОписаниеТипов?Просто я так поняла,что вторым параметром в этой функции задаётся текст,который выводится в заголовке.<br>ТаблНом.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов ("Справочник.Номенклатура"));<br>"
01.10.2010
14:09
#25
Просто я когда через отладчик запускаю,у меня программа как раз ругается на этот параметр.
01.10.2010
14:18
#26
"и ещё ругается,что не задано значение параметра &ТаблНом,хотя есть строчка Запрос1.УстановитьПараметр("ТаблНом",ТаблНом);"
01.10.2010
14:31
#27
"Я переписала начало процедуры следующим образом:<br>ТаблНом=Новый ТаблицаЗначений;<br> ТаблНом.Колонки.Добавить("Номенклатура",);<br> ТаблНом.Колонки.Добавить("Родитель",);<br> Запрос2=Новый Запрос;<br> Запрос2.Текст="ВЫБРАТЬ<br> | ЗаказПокупателяТовары.Номенклатура<br> |ИЗ<br> | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары";<br> |ГДЕ<br> |ЗаказПокупателяТовары.Ссылка = &Ссылка;<br> МассивНом=Новый Массив;<br> Результат2=Запрос2.Выполнить();<br> Выборка2=Результат2.Выбрать();<br> Пока Выборка2.Следующий() Цикл<br> МассивНом.Добавить(Выборка2.Номенклатура);<br> КонецЦикла;<br> Для Каждого Ном Из МассивНом Цикл<br> лРодитель=Ном.Родитель;<br> Пока ЗначениеЗаполнено(лРодитель) Цикл<br> лСтр=ТаблНом.Добавить();<br> лСтр.Номенклатура=лРодитель;<br> лСтр.Родитель=лРодитель;<br> лРодитель=лРодитель.Родитель;<br> КонецЦикла;<br> КонецЦикла;<br> //обращаемся к регистру сведений,продукцию упорядочиваем по приоритету<br> Запрос1=Новый Запрос;<br> Запрос1.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;<br> Запрос1.Текст="<br> |ВЫБРАТЬ * <br> |Поместить ВТТаблНом <br> |Из &ТаблНом КАК ТаблНом<br> |;<br>А дальше всё так же,только теперь я обращаюсь к ВТТаблНом.Скажите,пожалуйста,я правильно поняла идею?"
01.10.2010
15:02
#28
"Идею правильно поняли, вопрос какой у вас будет реализация?<br>Зачем делать массив, если вы и так выборку закрутили? :<br>Выборка2 = Запрос2.Выполнить().Выбрать();<br>Пока Выборка2.Следующий() Цикл<br>лРодитель=Выборка2.Номенклатура.Родитель;<br> Пока ЗначениеЗаполнено(лРодитель) Цикл<br> лСтр=ТаблНом.Добавить();<br> лСтр.Номенклатура=Выборка2.Номенклатура;<br> лСтр.Родитель=лРодитель;<br> лРодитель=лРодитель.Родитель;<br> КонецЦикла;<br>КонецЦикла;<br><br>Кстати, у вас была ошибка "лСтр.Номенклатура=лРодитель;"<br><br>По предудущим сообщениям:<br>1. Колонки.Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>). Если Тип не будет указан, то в запрос вы такую таблицу не вставите.<br>2. Ну да, привык в запросе писать Справочник.Номенклатура, а тип называется СправочникСсылка.Номенклатура:<br>ТаблНом.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов ("СправочникСсылка.Номенклатура"));<br>ТаблНом.Колонки.Добавить("Родитель", Новый ОписаниеТипов ("СправочникСсылка.Номенклатура"));<br><br>3. После запроса выполнил:<br>Запрос1.Текст = "Выбрать * Из ВТТаблНом";<br>Запрос1.Выполнить().Выгрузить().ВыбратьСтроку();<br><br>И получил нормальную таблицу."
04.10.2010
10:54
#30
"Спасибо Вам большое за помощь!Можно только я ещё ке-что спрошу,уже по поводу отладки.В запросея дописала:<br> ВЫБРАТЬ *<br> |Поместить ВТаблНом <br> |Из &ТаблНом КАК ТаблНом<br> |;<br>Теперь,когда я хочу открыть конструктор,выдаётся сообщение:"Поле не найдено "ВТаблНом.Номенклатура" ПО (ВТаблНом.Номенклатура=Этапы.Продукция),ошибок в названии таблиц я не нашла.Из-за чего может быть эта ошибка?"
Выбор конфигурации- возможность работы со штрих-кодомУчет затрат и платежей через посредников в УТ 10.3
Читают тему
(гостей: 1)