$12 Функции

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

Функция начинается с ключевого слова Функция,  заканчивается КонецФункции.

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

Структура функции:

в квадратных скобках указываются необязательные элементы.

Функция <Имя> ( [ [Знач] <ИмяПараметра> [=<ЗначениеПоУмолчанию>] ], ... ) [Экспорт]
// операторы
[Возврат <значение>;]
Конецфункции;

или англоязчный

Function <Имя> ( [ [Знач] <ИмяПараметра> [=<ЗначениеПоУмолчанию>] ], ... ) [Export]
// операторы
[Return <значение>;]
EndFunction;

Описание (схожи с процедурами):

Имя — наименование функции.

Знач — указывает что параметр справа будет использовать значение и передача значения не повлияет на него.

ИмяПараметра — наименование параметра.

ЗначениеПоУмолчанию — значение которое будет браться по умолчанию для параметра.

… — я так указал что параметров может быть много.

Экспорт — делает доступной данную функцию из других модулей.

Возврат  <значение>- завершает работу функции передает возвращаемое значение.

Пример функции
&НаКлиенте
Процедура Команда1(Команда)
  ПеременнаяЧисло2 = Объект.ПеременнаяЧисло*0.8;
  ПеременнаяЧисло1 = Объект.ПеременнаяЧисло;
  ПеременнаяБулево1 = Объект.ПеременнаяБулево;
  Результат = УмножениеИСложение(ПеременнаяЧисло1,ПеременнаяЧисло2,ПеременнаяБулево1);
  Сообщить (Результат);
  Сообщить (ПеременнаяЧисло1); // не изменилось
КонецПроцедуры
&НаКлиенте
Функция УмножениеИСложение (Знач А, Б, умножить=ложь)
  Если умножить = ложь тогда
    Возврат А+Б;
  иначе
    ВременнаяПеременная = А*Б;
    А = 0; // изменим А
    Возврат ВременнаяПеременная;
  КонецЕсли;
КонецФункции

пример сделан на основе обработки деланной ранее.

Скриншот обработки:

1- переменная 1

2- ПеременнаяБулево — это определяет какое действие сделать с числом. Истина(стоит галка) это умножение, Ложь это сложение.

3- Кнопка «Команда1» это кнопка выполняющая процедуру Команда1 при нажатии.

4- Окно с сообщениями



comments powered by Disqus

Самоучитель по 1С

Популярное