Процедуры в языке 1С 8.3, 8.2 (в примерах)

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

См. урок #1 для начинающих по процедурам в 1С
См. урок #2 для начинающих по процедурам в 1С
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Смотреть видео с демонстрацией выполнения кода

Полный синтаксис (нажмите, чтобы раскрыть)

/// Как передать в процедуру параметр по ссылке в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П1(ПараметрПереданныйПоСсылке)
 
    // изменяем значение и внутри и снаружи
    ПараметрПереданныйПоСсылке = 25;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример1(Команда)
 
    Перем А;
    А = 1;
    // сейчас А равно 1
    П1(А);
    // а после вызова процедуры уже 25
 
КонецПроцедуры
 
/// Как передать в процедуру параметр по значению в 1с 8.3, 8.2
 
// возможно только для простых типов (число, строка, дата, ... )
// более сложные объекты всё равно будут переданы по ссылке
 
&НаКлиенте
Процедура П2(Знач ПараметрПереданныйПоЗначению)
 
    // изменяем значение только внутри процедуры
    ПараметрПереданныйПоЗначению = 25;
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример2(Команда)
 
    Перем А;
    А = 1;
    // сейчас А равно 1
    П2(А);
    // после вызова процедуры А по-прежнему равно 1
 
КонецПроцедуры
 
/// Как передать в процедуру массив по значению в 1с 8.3, 8.2
 
// это можно сделать только через создание копии массива
 
&НаКлиенте 
Процедура П3(Параметр)
 
    // меняем первый элемент массива
    Параметр[0] = 25;
 
    // теперь в массиве Параметр
    // числа 25 2
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример3(Команда)
 
    Числа = Новый Массив();
    Числа.Добавить(1);
    Числа.Добавить(2);
 
    // сейчас в массиве числа: 1 2
 
    // создаём копию массива
    КопияЧисел = Новый СписокЗначений;
    КопияЧисел.ЗагрузитьЗначения(Числа);
    КопияЧисел = КопияЧисел.ВыгрузитьЗначения();
 
    // вызываем процедуру, меняющую
    // переданный массив
    П3(КопияЧисел);
 
    // после вызова процедуры в массиве Числа
    // по-прежнему числа: 1 2 
 
КонецПроцедуры
 
/// Как для параметра процедуры установить значение
/// по умолчанию в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П4(Имя = "Сергей", Отчество, Фамилия = "не задано")
 
    Сообщить(Имя + " " + Отчество + " " + Фамилия);
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример4(Команда)
 
    П4("Вадим", "Иванович", "Сидоров"); // Вадим Иванович Сидоров
    П4("Вадим", "Иванович"); // Вадим Иванович не задано
    П4(, "Иванович"); // Сергей Иванович не задано
    П4(,,); // Сергей Неопределено не задано
 
КонецПроцедуры
 
/// Как в процедуре объявить локальные переменные в 1с 8.3, 8.2
 
&НаКлиенте
Процедура П5()
 
    // объявляем переменные 
    // в самом начале процедуры
 
    Перем ч1, ч2; 
    Перем ч3;
 
    ч1 = 12;
    ч2 = 15;
    ч3 = 45;
 
    // а вот здесь уже объявлять
    // новые переменные нельзя
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример5(Команда)
 
    П5();
 
КонецПроцедуры
 
/// Как сделать процедуру доступной из других модулей в 1с 8.3, 8.2
 
// объявляем эту процедуру в общем модуле Библиотека
 
&НаКлиенте
Процедура П6() Экспорт
 
    Сообщить("Привет, я процедура П6");
 
КонецПроцедуры
 
&НаКлиенте
Процедура Пример6(Команда)
 
    // вызываем экспортную процедуру П6
    // из модуля Библиотека
 
    Библиотека.П6();
 
КонецПроцедуры
 
/// Как вернуть значение из функции в 1с 8.3, 8.2
 
&НаКлиенте
Функция Сумма(А, Б)
 
    Возврат А + Б;
 
КонецФункции
 
&НаКлиенте
Процедура Пример7(Команда)
 
    Результат = Сумма(5, 3); // 8
    Сообщить(Результат);
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Процедуры в языке 1С 8.3, 8.2 (в примерах)

Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться: