1С 8.3 Процедуры и Функции - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

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

Данные > Примеры кода 1С > 1С 8.3 Процедуры и Функции
Процедуры и функции в 1С 8.3 - это обработчики событий, служащие для вызова из разных мест программного кода для выполнения различных операций. Функция в отличии от процедуры может вернуть результат вычислений без определения параметра. Параметры в функциях и процедурах 1С - это ссылки на переменные (или их значения "ЗНАЧ"), существующие в месте вызова.
Возврат значения из функции в 1С 8.3:
&НаКлиенте
Функция Округление1(ПараметрЧисло, ПараметрЗнОкр)

    Возврат
Окр(ПараметрЧисло,ПараметрЗнОкр);//3.1415926535, 2

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

&НаКлиенте
Процедура ИсполняемаяПроцедура1(Команда)

   
ТекущееЧисло=3.1415926535;
   
КолЗнОкр=2;

   
ОкругленноеЧисло = Округление1(ТекущееЧисло,КолЗнОкр);
   
Сообщить(ОкругленноеЧисло); // 3.14

КонецПроцедуры
Вызов функции без некоторых параметров в 1С 8.3:
&НаКлиенте
Функция СообщениеПараметров2(ПараметрЧисло, ПараметрДата, ПараметрСтрока = "Строковое значение")

   
Сообщить(ПараметрЧисло);// 2020
   
Сообщить(ПараметрДата);// Неопределено
   
Сообщить(ПараметрСтрока);// "Строковое значение"

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

&НаКлиенте
Процедура ИсполняемаяПроцедура2(Команда)

   
// Если у функции несколько параметров, то ненужный можно пропустить (указав запятую)
    // при этом будет передано или Неопределено или значение по-умолчанию (в параметрах самой функции)
   
СообщениеПараметров2(2020,,);  // <2020> <Неопределено> <"Строковое значение">

КонецПроцедуры
Передача в процедуру параметра (в виде ссылки) в 1С 8.3:
&НаКлиенте
Процедура ИзменениеПараметра3(ПараметрСсылка)

   
// Изменение значения внутри и снаружи
   
ПараметрСсылка = 2020;

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

&НаКлиенте
Процедура ИсполняемаяПроцедура3(Команда)

    Перем
ГодЗаписи;

   
ГодЗаписи = 2019;
   
Сообщить(ГодЗаписи);// ГодЗаписи = 2019

   
ИзменениеПараметра3(ГодЗаписи);
   
Сообщить(ГодЗаписи);// ГодЗаписи = 2020

КонецПроцедуры
Передача в процедуру параметра (в виде значения) в 1С 8.3:
&НаКлиенте
Процедура ИзменениеПараметра4(Знач ПараметрЗначение)

   
// Изменение значения только внутри процедуры
   
ПараметрЗначение = 2020;

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

&НаКлиенте
Процедура ИсполняемаяПроцедура4(Команда)

    Перем
ГодЗаписи;

   
ГодЗаписи = 2019;
   
Сообщить(ГодЗаписи);// ГодЗаписи = 2019
    // Только для простых типов (строка, число, дата), сложные объекты всё равно будут переданы в виде ссылки
   
ИзменениеПараметра4(ГодЗаписи);
   
Сообщить(ГодЗаписи);// ГодЗаписи = 2019 (остался прежним)

КонецПроцедуры
Передача в процедуру массива (в виде значения) в 1С 8.3:
&НаКлиенте
Процедура ИзменениеПараметра5(ПараметрМассив)

   
// Изменение первого элемента массива
   
ПараметрМассив[0] = 2021;
   
// ПараметрМассив = 2021 и 2020

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

&НаКлиенте
Процедура ИсполняемаяПроцедура5(Команда)

   
Года = Новый Массив();
   
Года.Добавить(2019);
   
Года.Добавить(2020);

   
// Создание копии массива через список значений
   
КопияГода = Новый СписокЗначений;
   
КопияГода.ЗагрузитьЗначения(Года);
   
КопияГода = КопияГода.ВыгрузитьЗначения();

   
// Вызов процедуры, меняющую переданный массив (копия: Года)
   
ИзменениеПараметра5(КопияГода);
   
// После вызова процедуры в массиве Года по прежнему = 2019 и 2020

КонецПроцедуры
Установка значения (по умолчанию) для параметра процедуры в 1С 8.3:
&НаКлиенте
Процедура ИзменениеПараметра6(Фамилия = "Не задано", Имя = "Дмитрий", Отчество)

   
Сообщить(Фамилия + " " + Имя + " " + Отчество);

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

&НаКлиенте
Процедура ИсполняемаяПроцедура6(Команда)

   
ИзменениеПараметра6("Протасов", "Илья", "Константинович"); // <Протасов> <Илья> <Константинович>
   
ИзменениеПараметра6(, "Илья", "Константинович"); // <Не задано> <Илья> <Константинович>
   
ИзменениеПараметра6(, , "Константинович"); // <Не задано> <Дмитрий> <Константинович>
   
ИзменениеПараметра6(, , ); // <Не задано> <Дмитрий> <Неопределено>

КонецПроцедуры
Объявление локальных переменных в процедуре в 1С 8.3:
&НаКлиенте
Процедура ОбъявлениеПеременных7()

   
// Объявляние переменных может быть только в самом начале перед выполнением кода
   
Перем ГодЗаписи1, ГодЗаписи2;
    Перем
ГодЗаписи3;

   
ГодЗаписи1 = 2019;
   
ГодЗаписи2 = 2020;
   
ГодЗаписи3 = 2021;

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

&НаКлиенте
Процедура ИсполняемаяПроцедура7(Команда)

   
ОбъявлениеПеременных7();

КонецПроцедуры
Создание и вызов общей процедуры из локальных модулей в 1С 8.3:
&НаКлиенте
Процедура Инициализация8() Экспорт // Процедура в общем модуле <Назначения>

   
Сообщить("Экспортная процедура Инициализация8 вызвана!");

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

&НаКлиенте
Процедура ИсполняемаяПроцедура8(Команда)

   
// Вызов экспортной процедуры Инициализация8 из общего модуля <Назначения>
   
Назначения.Инициализация8();

КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 15.04.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому