Записки программиста 1с

Процедуры и функции в 1с.

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

Процедура в 1с

Процедура – это идентификатор, выполняющий некоторые действия, определенные
пользователем или системные. Говоря простым языком: если мы пропишем внутри нашего кода
некоторую процедуру (не важно, нами написанную или процедуру программы 1С), то когда
выполнение программы дойдет до этой строки, тогда будут выполнены определенные действия.

Процедура ИмяПроцедуры()
//оператор
КонецПроцедуры

Функция в 1с

Функция – это идентификатор, выполняющий некоторые действия, определенные пользователем или системные, и возвращающий значение определенного типа. Как видите, функции отличаются от процедур только тем, что возвращают определенное значение. Например, функция СтрДлина() вычисляет длину строки. Аргумент передается в нее в качестве параметра, и возвращает это значение пользователю в виде числа. Или функция ТекущаяДата() определяет системную дату компьютера и возвращает это значение в виде даты.

Функция ИмяФункции()
//оператор
Возврат Результата;
Конецфункции

Передача параметров процедуры и функции в 1с

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

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

● вызов без передачи управления между клиентом и сервером (только на клиенте или только на сервере);

● вызов с передачей управления между клиентом и сервером.

Возврат функцией 1с нескольких значений.

Функция 1с возвращает результат при помощи ключевого слова Возврат. После данного ключевого слова можно поставить только одну переменную. Для возвращение нескольких значений используется объект Структура.

Пример кода:

&НаКлиенте
Функция НачЗнач(Название,файл,сервер,БД,Пользователь,Пароль)

БазаИсточник=ПодключениеКБазе(файл,сервер,БД,Пользователь,Пароль);
	Организация=БазаИсточник.справочники.Организации.НайтиПоНаименованию(Название);
	кодПФР=Организация.кодОрганаПФР;
	учет=БазаИсточник.ПолучитьФункциональнуюОпцию("УчетЗарплатыИКадровВоВнешнейПрограмме");
	Пфр=БазаИсточник.XMLСтрока(БазаИсточник.Перечисления.ТипыКонтролирующихОрганов.ПФР);
	
	ПараметрыОрганизации=новый Cтруктура;
	ПараметрыОрганизации.Вставить("Учет",Учет);
	ПараметрыОрганизации.Вставить("КодКонтролирующегоОргана",кодПФР);
	ПараметрыОрганизации.Вставить("ВидКонтролирующегоОргана",ПФР);
	возврат ПараметрыОрганизации;
	
конецфункции
процедуры и функции в 1с

Получение данных из структуры производиться так:

ЗначененияИзСтруктуры=НачЗнач(Название,файл,сервер,БД,Пользователь,Пароль);
		Учет=ЗначененияИзСтруктуры.Учет;
		КодКонтролирующегоОргана=ЗначененияИзСтруктуры.КодКонтролирующегоОргана;
		ВидКонтролирующегоОргана=ЗначененияИзСтруктуры.ВидКонтролирующегоОргана;

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

Ваш адрес email не будет опубликован.