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

О контексте выполнения читай Программные модули платформы 1С

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

Функция - это фрагмент программного кода:

  1. связанный с идентификатором, к  которому можно обратиться из другого места программы, и
  2. возвращающий результат выполнения.

После выполнения функции управление возвращается обратно в точку программы, где данная функция была вызвана.

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

Процедура 1С - это функция, которая ничего не возвращает (она просто вызывается и выполняет какие-то действия).

Процедуры 1С, как правило, используются в качестве обработчиков событий, возникающих:

  • при работе пользователя с формой (открытие, закрытие, нажатие кнопок и т.п.) или
  • при работе платформы (старт, завершение и т.п.).

Процедуры и функции позволяют:

  1. избавиться от дублирования кода, заменив его вызовом процедуры (функции), в т.ч. и из других функций или процедур;
  2. упростить внесение изменении в программу (изменения достаточно внести в одном месте - в месте объявления процедуры или функции);
  3. повысить читаемость программного кода и, в итоге, упростить сопровождение прикладного решения.
Подробнее об обработчиках

Виды обработчиков формы или ее элементов можно увидеть в свойствах — щелкнув мышью на соответствующий элемент формы и прокрутив окно свойств вниз.

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

[свернуть]

Выход из процедуры или функции 1С по условию

Чтобы «выйти» из выполнения функции 1С и процедуры используют команду «Возврат». Т.к. функция (в отличии от процедуры) возвращает результат вычислений, то в ней необходимо написать Возврат <ЗНАЧЕНИЕ>;.

Пример выхода из процедуры

[свернуть]

Функции 1С не типизированы, т.е. могут возвращать значение разных типов, в зависимости от параметров или условий.

Пример

Пример функции 1С:

Пример процедуры 1С:

[свернуть]

Объявление функций и процедур в 1С

Соглашения при описании процедур и функций 1С

Процедура или функция начинает описываться со слова Процедура или Функция. Далее следует Имя процедуры или Имя функции. После имени обязательно указываются круглые скобки. Внутри скобок могут находиться описываемые параметры. Данные параметры передаются при вызове (при обращении к процедуре). После круглых скобок может стоять слово Экспорт (экспортная функция).

Потом следует тело процедуры (функции), т.е. последовательность из любого количества операторов.

В теле могут находиться вызовы других процедур и функций данного модуля или других модулей, которые доступны из текущего программного модуля. Обязательным является наличие заключительного слова КонецПроцедуры (КонецФункции).

После описания процедуры или функции точку с запятой ставить не нужно. 

Чтобы обратиться к списку процедур текущего модуля в панели конфигуратора можно нажать на кнопку в виде лупы с надписью «PROC» или использовать горячие клавиши (Ctrl+Alt+P).

Особенности объявления функций и процедур 1С:

  1. Порядок объявления функций и процедур в модуле произвольный (то есть можно в тексте процедуры, расположенной в самом начале модуля, использовать процедуры, текст которых будет расположен ниже в этом модуле).
  2. Аналогично переменным 1С, функции 1С могут быть экспортными.
  3. Параметры функции 1С или процедуры — это ссылки на переменные, существующие в месте вызова. Ссылочность параметров означает то, что при изменении значения параметра «внутри» функции (процедуры) 1С, он будет изменен и «снаружи». Для исключения подобного поведения параметр в функции указывают со значением ЗНАЧ. Однако это не работает со значениями-объектами (списками, таблицами, объектами базы данных), они всё равно будут переданы по ссылке.
    Пример передачи по ссылке

    [свернуть]
    Пример передачи по значению

    [свернуть]
  4. Если у функции (процедуры) 1С несколько параметров, то ненужный можно пропустить (указав запятую, если пропущен параметр в середине), при этом будет передано или Неопределено (см. ниже) или значение по умолчанию.
  5. При работе с объектами (справочники, документы) необходимо помнить, что внутри функции 1С/процедуры 1С над ними могут быть выполнены действия.

В некоторые процедуры-обработчики передается такой параметр, как Отказ. Значение данного параметра по умолчанию – Ложь.

Пример передачи параметров по умолчанию

отсюда

[свернуть]

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.