Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| *
|ИЗ
| &ТЗ КАК ТЗ
|";
Запрос.УстановитьПараметр("ТЗ", ТЗ); // переменная ТЗ - это какая-то подготовленная таблица значений
Результат = Запрос.Выполнить().Выгрузить();
Сообщить("Профит!", СтатусСообщения.Внимание);
ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ &ТЗ КАК ТЗ ГДЕ ТЗ.Номенклатура.СтавкаНДС = &СтавкаНДС";
Запрос =Новый Запрос();
МВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "
|Выбрать рр.ТМЦ,рр.Заказ Поместить тзв
|ИЗ &тз как рр ГДЕ рр.ТМЦ = &ТМЦ";
Запрос.УстановитьПараметр("ТЗ",тчФил);
Запрос.УстановитьПараметр("ТМЦ",тд.ТМЦ);
Запрос.Выполнить();
//
Запрос.Текст = "ВЫБРАТЬ ТМЦ,Сумма(Заказ) как Сумм ИЗ тзв Сгруппировать по ТМЦ";
тх = Запрос.Выполнить().Выгрузить();
СуммаОтбора = тх.Итог("Сумм");
i | Выделяйте код. |
МВТ = Новый МенеджерВременныхТаблиц;
ЗапросТЗ.МенеджерВременныхТаблиц = МВТ;
ЗапросТЗ.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ ГДЕ ТЗ.Номенклатура.СтавкаНДС = &СтавкаНДС";
ЗапросТЗ.УстановитьПараметр("ТЗ", ТаблицаТовары);
ЗапросТЗ.УстановитьПараметр("СтавкаНДС", Выборка.СтавкаНДС);
ЗапросТЗ.Выполнить();
ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ ВТ";
ТаблицаДляВыделения = ЗапросТЗ.Выполнить().Выгрузить();
<...>
ТаблицаТовары = Документ.Товары.Выгрузить();
МассивНоменклатуры = ТаблицаТовары.ВыгрузитьКолонку("Номенклатура");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", МассивНоменклатуры);
Запрос.Текст = "ВЫБРАТЬ
| СтавкиНДС.Ссылка КАК СтавкаНДС
|ИЗ
| Справочник.СтавкиНДС КАК СтавкиНДС
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО Номенклатура.СтавкаНДС = СтавкиНДС.Ссылка
|ГДЕ
| Номенклатура.Ссылка В(&Ссылка)
|
|СГРУППИРОВАТЬ ПО
| СтавкиНДС.Ссылка";
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ПерваяСтавка = Выборка.СтавкаНДС;
ЗапросТЗ = Новый Запрос;
МВТ = Новый МенеджерВременныхТаблиц;
ЗапросТЗ.МенеджерВременныхТаблиц = МВТ;
ТекстЗапросаТЗ = "ВЫБРАТЬ";
Для Каждого Реквизит Из Документ.Ссылка.Метаданные().ТабличныеЧасти.Товары.Реквизиты Цикл
ТекстЗапросаТЗ = ТекстЗапросаТЗ + "
| ТЗ."+СтрЗаменить(Реквизит," ","")+",";
КонецЦикла;
ТекстЗапросаТЗ = Лев(ТекстЗапросаТЗ,СтрДлина(ТекстЗапросаТЗ)-1);
ТекстЗапросаТЗ = ТекстЗапросаТЗ + "
|ПОМЕСТИТЬ ВТ
|ИЗ
| &ТаблицаТовары КАК ТЗ
|ГДЕ
| ТЗ.Номенклатура.СтавкаНДС = &СтавкаНДС";
Пока Выборка.Следующий() Цикл
ЗапросТЗ.Текст = ТекстЗапросаТЗ;
ЗапросТЗ.УстановитьПараметр("ТаблицаТовары", ТаблицаТовары);
ЗапросТЗ.УстановитьПараметр("СтавкаНДС", Выборка.СтавкаНДС);
ЗапросТЗ.Выполнить(); // ЗДЕСЬ ОСТАНАВЛИВАЕТСЯ С ОШИБКОЙ (текст ошибки ниже)
ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ ВТ";
ТаблицаДляВыделения = ЗапросТЗ.Выполнить().Выгрузить();
<...>
ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ ВТ";
ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ ВТ ГДЕ ВТ.Номенклатура.СтавкаНДС = &СтавкаНДС";