1С функции и процедуры


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

Объявляются функции в модуле в произвольном порядке. То есть имеется возможность использования в тексте процедуры не в порядке очередности, а находящейся в конкретном модуле существенно ниже. Как и в случае с переменными 1С, доступно экспортирование функции 1С.

С помощью команды «Возврат;» осуществляется «выход» из выполняемой функции и процедуры 1С.

Функцией (и в этом заключается ее отличие от процедуры), выполняется «возврат» полученного результата вычислений, если будет написано «Возврат ЗНАЧЕНИЕ;».

Типизация функции 1С отсутствует, а потому возможно возвращение значения различных типов. Зависит это от параметров либо условий.

Возвращение функцией результата вычислений

Функция Функция1(Параметр)

     Возврат Параметр * 2;

КонецФункции

Переменная1 = Функция1(10);

//Переменная1 будет равна 20

Параметры функции 1С и процедуры являются ссылками на переменные, присутствующие в месте вызова. Они подразумевают, что, если изменится параметр в «теле» функции1С, то аналогичное действие произойдет и «снаружи». Чтобы это исключить, передача параметра осуществляется со значением ПЕРЕМ.

Но когда речь идет о значениях-объектах (объекты базы данных, таблицы, списки), эта схема не работает, и их передача будет выполняться по ссылке. А это означает, что в результате изменения параметра внутри процедуры, происходит его изменение после завершения функции 1С.    

Изменение параметра функции внутри процедуры

Процедура Процедура1(Параметр)

     Параметр = Параметр * 2;

КонецПроцедуры

Переменная1 = 10;

Процедура1(Переменная1);

Сообщить(Переменная1);

//Результатом будет 20

Передача в процедуру значения переменной

Процедура Процедура1(ЗНАЧ Параметр)

     //действия..

КонецПроцедуры

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

Действия внутри функции, процедуры

Функция Функция1(Параметр1, Параметр2, Параметр3 = “Строковое значение”)

     //Чтото делаем

КонецФункции

//Вызов функции без некоторых параметров

//параметр2 будет равен Неопределено

//параметр3 будет равен “Строковое значение”

Функция1(10);

//Вызов функции без второго параметра

Функция1(10, , “Значение”);

Выше по тексту уже говорилось, об использовании процедур 1С для обработки событий, которые возникают если пользователь работает с формой:

  • нажимает кнопки;
  • открывает, закрывает форму;
  • прочие подобные действия.

Или платформой:

  • осуществляет запуск;
  • закрывает;
  • прочие подобные действия.

Чтобы получить доступ к просмотру возможных видов обработчиков или элементов формы, достаточно перейти в свойства. Для этого достаточно выполнить клик клавишей мыши, наведя курсор на нужный элемент формы, прокручивая вниз окно свойств.

На панели конфигуратора имеется всплывающий список с видами обработчиков в модуле объекта. В нем отображены все события, как уже определенных, как и неопределенных.

Разные события имеют различные характеристики, а потому, когда добавляется обработчик 1С, происходит автоматическое переписывание списка параметров.  

Для размещения обработчиков событий используется модуль формы объекта. Для добавления (назначения) обработчика можно использовать несколько соответствующих способов.