Здравствуйте! Есть форма с табличной частью ЗаказаКлиента. Табличная часть заполняется при выборе заказа в поле ввода. Мне нужно, чтобы при выборе документа ЗаказКлиента. Товары в его табличной часть проверялись на наличие остатков. И если товара не осталось в документе, то чтобы на форме эта строка с товаром была с перечеркнутым шрифтом. Пока я сделал следующее: Создал в табличной части колонку Отгружено с типом булево и написал процедуру с функцией. И по идее на данный момент у меня в этой колонке у каждой строки должно приниматься значение истина или ложь. Но колонка постоянно пустая. Не понимаю в чем дело.
&НаКлиенте
Процедура ЗаказКлиентаПриИзменении(Элемент)
Для каждого СтрокаТовара Из Объект.Товары Цикл
Объект.Товары.Отгружено = ЗаказКлиентаПриИзмененииНаСервере(Объект.ЗаказКлиента, СтрокаТовара.Номенклатура, СтрокаТовара.КодСтроки)
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ЗаказКлиентаПриИзмененииНаСервере(ЗаказКлиента, Номенклатура, КодСтроки)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказыКлиентовОстатки.ЗаказКлиента КАК ЗаказКлиента,
| ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток
|ИЗ
| РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
|ГДЕ
| ЗаказыКлиентовОстатки.ЗаказКлиента = &ЗаказКлиента
| И ЗаказыКлиентовОстатки.Номенклатура = &Номенклатура
| И ЗаказыКлиентовОстатки.КодСтроки = &КодСтроки";
Запрос.УстановитьПараметр("ЗаказКлиент", ЗаказКлиента);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("КодСтроки", КодСтроки);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
DrShad
1 - 01.02.21 - 13:37
сжечь еретика
запрос в цикле - зло
Varlant1n
2 - 01.02.21 - 13:41
(1) А как я могу иначе сделать это для каждой строки
shuhard
3 - 01.02.21 - 13:42
(0)[Не понимаю в чем дело.]
дык запрос в консоле что возвращает ?