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