Выполнить и Вычислить в 1С

Mar 27, 2022 20:40

Выполнить

Оператор Выполнить позволяет выполнить любой кусок кода, переданный ему как параметр:

Процедура Команда1(Команда)
в = Неопределено;
Код = "а = 1; б = 2; в = а + б";
Выполнить(Код);
Сообщить(в); // 3
КонецПроцедуры

В данном примере переменная «в» будет равна 3.

Код, который передается параметром оператору Выполнить не может содержать объявление переменных и процедуры и функции. По сути весь код и так будет выполняться в процедуре.


Процедура Команда1(Команда)
в = Неопределено;
Код = "Перем а; а = 1; б = 2;";
Выполнить(Код); //ошибка
Сообщить(в);
КонецПроцедуры

В данном примере будет ошибка:

{(1,1)}: Объявления переменных должны быть расположены в начале модуля, процедуры или функции {Обработка.Обработка1.Форма.Форма.Форма(6)}: Выполнить(Код);

Процедура Команда1(Команда)
в = Неопределено;
Код = "а = 1; б = 2; Процедура Сумма(а, б) в = а + б; КонецПроцедуры";
Выполнить(Код); //ошибка
Сообщить(в);
КонецПроцедуры

Здесь тоже будет ошибка:

{(1,15)}: Ожидается последовательность операторов
{Обработка.Обработка1.Форма.Форма.Форма(6)}: Выполнить(Код);

Параметр оператору Выполнить можно передавать без скобок, можно напрямую, без промежуточной переменной «Код»:

Процедура Команда1(Команда)
в = Неопределено;
Выполнить "а = 1; б = 2; в = а + б;";
Сообщить(в);
КонецПроцедуры

Вычислить

Функция Вычислить используется для вычисления арифметических, логических и операций конкатекации строк:

Процедура Команда1(Команда)
а = 1;
б = 2;
Сумма = Вычислить("а+б");
Результат = Вычислить("а>б");
Строка = Вычислить("Строка(а) + Строка(б)");
Сообщить(Сумма); //3
Сообщить(Результат); //Ложь
Сообщить(Строка); // "12", это строка, а не число
КонецПроцедуры

Код в функции Вычислить не может содержать несколько операторов:

Процедура Команда1(Команда)
а = 1;
б = 2;
Результат = Вычислить("а+б; а>б;"); //ошибка
Сообщить(Результат);
КонецПроцедуры

Отличие Выполнить от Вычислить

* Выполнить - это оператор встроенного языка, Вычислить - функция
* В Выполнить можно использовать несколько операторов, в Вычислить только одно выражение
* Выполнить работает как процедура. Вычислить возвращает результат выполнения, работает как функция.

Смотрите также:
Электронный учебник по по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Программное решение для сдачи и подготовки к экзаменам
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up