Имя: Пароль:
1C
1С v8
Ошибка в конструторе формул
0 FrostBite101
 
15.11.23
18:08
Добрый день. Решил использовать типовой функционал конструктора формул для решения задачи.

Но с толкнулся с тем, что конструктор напрочь отказывается работать с операторами ИЛИ И и т.д.

Покопался в коде, при парсинге строки формулы он считает данные операторы функцией, но при вызове конструктора ставиться функция = ложь;

Кто сталкивался и как решали?

Код:
&НаКлиенте
Процедура ЗаполнитьФормулу(Команда)
        
    ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииРедактированияФормулы", ЭтотОбъект);
    
    КонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(), ОписаниеОповещения);
    
КонецПроцедуры

&НаСервере
Функция ПараметрыФормулы()
            
    ПараметрыФормулы = КонструкторФормул.ПараметрыРедактированияФормулы();
    ПараметрыФормулы.Формула = Объект.Формула;
    ПараметрыФормулы.СкобкиОперандов = Истина;
    ПараметрыФормулы.Операнды = ОперандыФормулыРасчета(УникальныйИдентификатор);
    ПараметрыФормулы.Операторы = ОператорыФормулыРасчета(УникальныйИдентификатор);
    
    Возврат ПараметрыФормулы;
    
КонецФункции

&НаСервереБезКонтекста
Функция ОперандыФормулыРасчета(УникальныйИдентификатор)
    
    Возврат ПоместитьВоВременноеХранилище(РасчетСтипендий.ТаблицаОперандов(), УникальныйИдентификатор);
    
КонецФункции

&НаСервереБезКонтекста
Функция ОператорыФормулыРасчета(УникальныйИдентификатор)
    
    СписокОператоров = КонструкторФормул.СписокОператоров("Операторы, ЛогическиеОператорыИКонстанты, Разделители");
    Возврат ПоместитьВоВременноеХранилище(СписокОператоров, УникальныйИдентификатор);
    
КонецФункции
1 Волшебник
 
16.11.23
07:19
>> КонструкторФормул.СписокОператоров("Операторы, ЛогическиеОператорыИКонстанты, Разделители");

Может пробелы убрать?