Команда возврат в 1с
Ключевое слово Процедура начинает секцию исходного текста, выполнение которого можно инициировать из любой точки программного модуля, просто указав Имя_процедуры со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в модуле обычного приложения, модуле управляемого приложения или общем программном модуле в теле описания процедуры использовано ключевое слово Экспорт , то это означает, что данная процедура является доступной из всех других программных модулей конфигурации.
При выполнении оператора Возврат процедура заканчивается и возвращает управление в точку вызова. Если в тексте процедуры не встретился оператор Возврат , то после выполнения последнего исполняемого оператора происходит выполнение неявного оператора Возврат . Конец программной секции процедуры определяется по оператору КонецПроцедуры .
Переменные, объявленные в теле процедуры в разделе Объявления локальных переменных , являются локальными переменными данной процедуры, поэтому доступны только в этой процедуре (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).
Имя_проц | Назначает имя процедуры. |
Знач | Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, то есть изменение значения формального параметра при выполнении процедуры никак не повлияет на фактический параметр, переданный при вызове процедуры. Если это ключевое слово не указано, то параметр процедуры передается по ссылке, то есть изменение внутри процедуры значения формального параметра приведет к изменению значения соответствующего фактического параметра. |
Парам1 , . ПарамN | Необязательный список формальных параметров, разделяемых запятыми. Значения формальных параметров должны соответствовать значениям передаваемых при вызове процедуры фактических параметров. В этом списке определяются имена каждого из параметров так, как они используются в тексте процедуры. Список формальных параметров может быть пуст. |
= ДефЗнач | Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров. |
Экспорт | Необязательное ключевое слово, которое указывает на то, что данная процедура является доступной из других программных модулей. |
// Объявления локальных переменных | Объявляются локальные переменные, на которые можно ссылаться только в рамках этой процедуры. |
// Операторы | Исполняемые операторы процедуры. |
Возврат | Необязательное ключевое слово, которое завершает выполнение процедуры и осуществляет возврат в точку программы, из которой было обращение к процедуре. Использование данного оператора в процедуре не обязательно. |
КонецПроцедуры | Обязательное ключевое слово, обозначающее конец исходного текста процедуры, завершение выполнения процедуры. Возврат в точку, из которой было обращение к процедуре. |
Функция
Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля, просто указав Имя_функции со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в модуле обычного, управляемого приложения, внешнего соединения, сеанса или общем программном модуле в теле описания функции использовано ключевое слово Экспорт , то это означает, что данная функция является доступной из всех других программных модулей конфигурации.
Функции отличаются от процедур только тем, что возвращают Возвращаемое значение . Конец программной секции функции определяется по оператору КонецФункции .
Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, то есть в языке допускается не принимать от функции возвращаемое значение .
Переменные, объявленные в теле функции в разделе Объявления локальных переменных , являются локальными переменными данной функции, поэтому доступны только в этой функции (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).
&НаКлиенте
Функция Округление1 ( ПараметрЧисло , ПараметрЗнОкр )
Возврат Окр ( ПараметрЧисло , ПараметрЗнОкр ); //3.1415926535, 2
&НаКлиенте
Процедура ИсполняемаяПроцедура1 ( Команда )
ТекущееЧисло = 3.1415926535 ;
КолЗнОкр = 2 ;
ОкругленноеЧисло = Округление1 ( ТекущееЧисло , КолЗнОкр );
Сообщить ( ОкругленноеЧисло ); // 3.14
Сообщить ( ПараметрЧисло ); // 2020
Сообщить ( ПараметрДата ); // Неопределено
Сообщить ( ПараметрСтрока ); // "Строковое значение"
&НаКлиенте
Процедура ИсполняемаяПроцедура2 ( Команда )
&НаКлиенте
Процедура ИзменениеПараметра3 ( ПараметрСсылка )
// Изменение значения внутри и снаружи
ПараметрСсылка = 2020 ;
&НаКлиенте
Процедура ИсполняемаяПроцедура3 ( Команда )
ГодЗаписи = 2019 ;
Сообщить ( ГодЗаписи ); // ГодЗаписи = 2019
ИзменениеПараметра3 ( ГодЗаписи );
Сообщить ( ГодЗаписи ); // ГодЗаписи = 2020
&НаКлиенте
Процедура ИзменениеПараметра4 (Знач ПараметрЗначение )
// Изменение значения только внутри процедуры
ПараметрЗначение = 2020 ;
&НаКлиенте
Процедура ИсполняемаяПроцедура4 ( Команда )
ГодЗаписи = 2019 ;
Сообщить ( ГодЗаписи ); // ГодЗаписи = 2019
// Только для простых типов (строка, число, дата), сложные объекты всё равно будут переданы в виде ссылки
ИзменениеПараметра4 ( ГодЗаписи );
Сообщить ( ГодЗаписи ); // ГодЗаписи = 2019 (остался прежним)
&НаКлиенте
Процедура ИзменениеПараметра5 ( ПараметрМассив )
// Изменение первого элемента массива
ПараметрМассив [ 0 ] = 2021 ;
// ПараметрМассив = 2021 и 2020
&НаКлиенте
Процедура ИсполняемаяПроцедура5 ( Команда )
Года = Новый Массив ();
Года . Добавить ( 2019 );
Года . Добавить ( 2020 );
// Создание копии массива через список значений
КопияГода = Новый СписокЗначений ;
КопияГода . ЗагрузитьЗначения ( Года );
КопияГода = КопияГода . ВыгрузитьЗначения ();
// Вызов процедуры, меняющую переданный массив (копия: Года)
ИзменениеПараметра5 ( КопияГода );
// После вызова процедуры в массиве Года по прежнему = 2019 и 2020
Читайте также: