Category:

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


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

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

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

promo luckyea77 november 4, 2024 21:52 5
Buy for 10 tokens
В прошлом посте " Эпоха интеллекта" я публиковал эссе генерального директора OpenAI Сэма Альтмана. В нем Альтман пишет, что мы можем представить себе возможности создавать любое программное обеспечение, которое только можно представить, и многое другое. Недавно я с помощью нейросети создал…