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

Выполнить

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

Процедура Команда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;
	Результат = Вычислить("а+б; а>б;"); //ошибка
	Сообщить(Результат); 
КонецПроцедуры

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями: