Назначение функции - получение какого-либо значения (галочки, цифры, суммы, наименования и т.д.). Различие функции от процедуры в том, что в функции есть оператор Возврат. Именно этот оператор отвечает за передачу полученного значения в ходе выполнения кода функции. У функции может быть параметр. Он указывается в скобочках после названия функции. Параметр нужен для того, чтобы в месте, где будет  обращение к функции мы получили именно то значение, ради которого написана функция. Например, если мы хотим получить полное наименование номенклатуры, то параметром функции будет (Номенклатура). Соответственно при обращении к функции где-то в коде модуля мы должны указать название функции НашаФункция (ЭлементыФормы.Номенклатура) и в скобочках место, с которого она должна прочитать наименование номенклатуры.

Пример кода функции с параметром:

Функция ПолучитьОстатокТовараИзРегистра(Номенклатура)

Запрос = Новый Запрос;
Запрос.Текст ="
| ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(ТоварыНаСкладахОстатки.КОтгрузкеОстаток, 0) КАК Остаток
| ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
Возврат Выборка.Остаток;
Иначе
Возврат 0;
КонецЕсли;

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

Скриншот кода функции:

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

НаименованиеНоменклатуры = Строка.Номенклатура; //получаем в форме документа строку с номенклатурой для функции
ОстатокВЦикле = ПолучитьОстатокТовараИзРегистра(НаименованиеНоменклатуры); //название функции и ее параметр

Чтобы проверить результат функции можно вывести текстовое сообщение, например:

Сообщить(ОстатокВЦикле);

Приведем еще один пример не сложной функции с параметром. Для примера нужно получить сумму документа партии. Документ партии указан в ГТД в табличной части документа. Напрямую через точку обратиться к документу партии через ТабличнаяЧасть.ДокументПартии нельзя. Чтобы решить задачу нужно создать функцию:

Чтобы обратиться к функции достаточно добавить в нужном месте код:

СуммаДок = СуммаДокументаПартии(Ссылка); // Ссылка в данном случае это документ ГТД

Наши проекты | Софт | Услуги | ПрограммированиеАренда сервера | FAQ

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

© 2024 / ЕРП ПРОЕКТ / Server EU / Versia-Lux