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