Как выбрать данные в зависимости от приоритета?
04.10.2010
12:49
#31
"Не могу понять в чём дело:если смотреть в отладчике результаты запроса2 и таблицу значений,то получаю то,что мне нужно.а вот в результатах запроса2 пусто.Почему так может быть?Вот сам запрос:
ТаблНом=Новый ТаблицаЗначений;
ТаблНом.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТаблНом.Колонки.Добавить("Родитель",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТаблНом.Колонки.Добавить("НоменклатурнаяГруппа",Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары";
|ГДЕ
|ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат2=Запрос2.Выполнить();
Выборка2=Результат2.Выбрать();
Пока Выборка2.Следующий() Цикл
лРодитель=Выборка2.Номенклатура.Родитель;
лНоменклатурнаяГруппа=Выборка2.Номенклатура.НоменклатурнаяГруппа;
Пока ЗначениеЗаполнено(лРодитель) Цикл
лСтр=ТаблНом.Добавить();
лСтр.Номенклатура=Выборка2.Номенклатура;
лСтр.НоменклатурнаяГруппа=лНоменклатурнаяГруппа;
лСтр.Родитель=лРодитель;
лРодитель=лРодитель.Родитель;
КонецЦикла;
КонецЦикла;
Запрос1=Новый Запрос;
Запрос1.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
Запрос1.Текст="ВЫБРАТЬ
| ТаблНом.Номенклатура,
| ТаблНом.Родитель,
| ТаблНом.НоменклатурнаяГруппа
|ПОМЕСТИТЬ ВТаблНом
|ИЗ
| &ТаблНом КАК ТаблНом";
Запрос1.УстановитьПараметр("ТаблНом",ТаблНом);
Результат1=Запрос1.Выполнить();
Выборка1=Результат1.Выгрузить().ВыбратьСтроку();
"
ТаблНом=Новый ТаблицаЗначений;
ТаблНом.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТаблНом.Колонки.Добавить("Родитель",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТаблНом.Колонки.Добавить("НоменклатурнаяГруппа",Новый ОписаниеТипов("СправочникСсылка.НоменклатурныеГруппы"));
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары";
|ГДЕ
|ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат2=Запрос2.Выполнить();
Выборка2=Результат2.Выбрать();
Пока Выборка2.Следующий() Цикл
лРодитель=Выборка2.Номенклатура.Родитель;
лНоменклатурнаяГруппа=Выборка2.Номенклатура.НоменклатурнаяГруппа;
Пока ЗначениеЗаполнено(лРодитель) Цикл
лСтр=ТаблНом.Добавить();
лСтр.Номенклатура=Выборка2.Номенклатура;
лСтр.НоменклатурнаяГруппа=лНоменклатурнаяГруппа;
лСтр.Родитель=лРодитель;
лРодитель=лРодитель.Родитель;
КонецЦикла;
КонецЦикла;
Запрос1=Новый Запрос;
Запрос1.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
Запрос1.Текст="ВЫБРАТЬ
| ТаблНом.Номенклатура,
| ТаблНом.Родитель,
| ТаблНом.НоменклатурнаяГруппа
|ПОМЕСТИТЬ ВТаблНом
|ИЗ
| &ТаблНом КАК ТаблНом";
Запрос1.УстановитьПараметр("ТаблНом",ТаблНом);
Результат1=Запрос1.Выполнить();
Выборка1=Результат1.Выгрузить().ВыбратьСтроку();
"
04.10.2010
12:57
#32
С этим тоже теперь понятно.Нужно сделать запрос к временной таблице,чтобы результаты посмотреть.
04.10.2010
14:09
#33
"Конструктор не знает что это за таблица, т.к. это передано из параметра.
С другой стороны если написать:
ВЫБРАТЬ ТаблНом.Номенклатура,
| ТаблНом.Родитель
|Поместить ВТаблНом
|Из &ТаблНом КАК ТаблНом
|;
Тогда конструктор будет в курсе, что есть такие поля."
С другой стороны если написать:
ВЫБРАТЬ ТаблНом.Номенклатура,
| ТаблНом.Родитель
|Поместить ВТаблНом
|Из &ТаблНом КАК ТаблНом
|;
Тогда конструктор будет в курсе, что есть такие поля."
04.10.2010
14:53
#34
"Теперь вроде всё правильно.Скажите,пожалуйста,а ссылка на документ в параметрах запроса устанавивается так:
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ";
// |ГДЕ
// |ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
"
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ";
// |ГДЕ
// |ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
"
04.10.2010
14:53
#35
"Теперь вроде всё правильно.Скажите,пожалуйста,а ссылка на документ в параметрах запроса устанавивается так:
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ";
// |ГДЕ
// |ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
"
Запрос2=Новый Запрос;
Запрос2.Текст="ВЫБРАТЬ
| ЗаказПокупателяТовары.Номенклатура
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ";
// |ГДЕ
// |ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос2.УстановитьПараметр("Ссылка", Объект.Ссылка);
"
04.10.2010
14:58
#36
И ещё такой вопрос.Как правильно выгружать данные,полученные в запросе в таблицу,которая находится в бизнес-процессе?Сама процедура находится в модуле формы бизнес-процесса.
04.10.2010
15:06
#38
"Не понятно какая процедура, наверно получения данных.
ТабличнаяЧасть.Загрузить(Запрос1.Выполнить().Выгрузить());
Главное чтобы колонки совпадали (всмысле их имена)"
ТабличнаяЧасть.Загрузить(Запрос1.Выполнить().Выгрузить());
Главное чтобы колонки совпадали (всмысле их имена)"
04.10.2010
15:08
#39
Просто у меня в бизнес процессе есть табличная часть,эта табличная часть состоит из трёх закладок и на одной из закладок находится та таблица,в которую мне надо выгрузить этап и очерёдность.То есть по идее у меня должно быть что-то вроде Таблица.Загрузить(Результат.Выполнить().Выгрузить()),но у меня так не выходит.
Выбор конфигурации- возможность работы со штрих-кодомУчет затрат и платежей через посредников в УТ 10.3
Читают тему
(гостей: 1)