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