0

Как выполнить произвольный код в 1С 8?

Рано или поздно каждый разработчик сталкивается с задачей выполнения динамического кода, введенного пользователем. Например, формула расчета цены продажи.

На платформе 1С:Предприятие 8 есть два механизма, позволяющих выполнять такой код:

А) Оператор Выполнить()

Оператор Выполнить() реализован на уровне платформы и выполняет произвольный блок кода, который может включать произвольные объекты встроенного языка. Однако, код не может содержать объявления процедур и функций, а также ключевое слово Возврат.

ВнешняяПеременная = Неопределено;
ПроизвольныйКод = "
|А = 100;
|Б = 200;
|ВнешняяПеременная = А * Б;";
Вычислить(ПроизвольныйКод);
Сообщить(ВнешняяПеременная);
//	20000

Как видите, возврат значений в контексте вызова возможен только через заранее предусмотренную переменную.

Б) Функция Вычислить()

Встроенная функция Вычислить() вычисляет произвольное строковое выражение, в котором заключена арифметическая или логическая операция, и возвращает результат в точку вызова:

ЦенаЗакупки = 100;
ЦенаЗакупкиМин = 90;
ЦенаПродажи = Вычислить("(ЦенаЗакупки + ЦенаЗакупкиМин)/2");
Сообщить("Цена продажи = " + ЦенаПродажи);
//	Цена продажи 95

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *