Автор: Преподаватель

  • циклы в 1С. Эпизод 3

    циклы в 1С. Эпизод 3

    Для начинающих программистов: цикл Для Каждого

    Мы уже знаем про цикл Для, но сегодня поговорим о его «особом брате» – конструкции Для Каждого. Она создана специально для работы с коллекциями: массивами, списками значений и другими наборами данных.


    Что такое цикл «Для Каждого»

    Обычный цикл «Для» требует от программиста аккуратности: правильно задать начальный индекс, не забыть, что счёт идёт с нуля, корректно указать предел. Ошибка в одном символе – и всё работает не так.

    Цикл «Для Каждого» упрощает жизнь: он сам перебирает коллекцию от начала и до конца, без лишних забот.


    Синтаксис

    Для Каждого Элемент Из Коллекция Цикл
        // тело цикла
    КонецЦикла;
    
    • Элемент – переменная, которая внутри цикла будет хранить очередное значение из коллекции.
    • Коллекция – это сам массив или список, который мы перебираем.

    Пример с массивом

    Допустим, у нас есть массив чисел:

    Числа = Новый Массив;
    Числа.Добавить(128);
    Числа.Добавить(256);
    Числа.Добавить(512);
    

    Через обычный цикл «Для» это выглядело бы так:

    Для Шаг = 0 По Числа.Количество()-1 Цикл
        Сообщить(Числа[Шаг]);
    КонецЦикла;
    

    Код рабочий, но есть риск ошибиться.
    А теперь тот же обход с «Для Каждого»:

    Для Каждого Элемент Из Числа Цикл
        Сообщить(Элемент);
    КонецЦикла;
    

    Лаконично, понятно, без ошибок.


    Где это удобно

    • Когда важны значения элементов, а не их позиции.
    • Когда коллекция может изменяться, а вам не хочется вручную считать индексы.
    • Когда нужен максимально читаемый и аккуратный код.
  • Работа со строками в 1С

    Работа со строками в 1С

    Работа со строками

    Зачем вообще нужны строки?

    Строки в программировании — это текстовые данные, с которыми работает компьютер.
    Это может быть:

    • имя пользователя;
    • сообщение в чате;
    • e-mail или телефон;
    • целый абзац текста, который программа должна обработать.

    Без строк ни одна программа не обойдётся.


    Как появляются строки в 1С?

    1. Прямо в коде — заключаем текст в кавычки:
    Сообщение = "Привет, мир!";
    ОткрытьЗначение(Сообщение);
    
    1. Ввод от пользователя — через встроенные диалоги:
    Текст = "";
    ВвестиСтроку(Текст);
    ОткрытьЗначение("Вы ввели: " + Текст);
    

    Из чего состоит строка?

    Строка = набор символов.
    Например: "Код"К, о, д.

    • Узнать длину строки:
    СтрДлина("Код"); // вернёт 3
    
    • Получить символ по номеру:
    Сред("Код", 2, 1); // вернёт "о"
    

    Символы = тоже числа

    Каждый символ имеет свой числовой код (Юникод).

    Сообщить(КодСимвола("А", 1)); // выведет 1040
    Сообщить(Символ(1040)); // вернёт "А"
    

    Это пригодится, если делать, например, шифратор текста.


    Объединение строк

    Склеиваем строки знаком +:

    Имя = "Андрей";
    Приветствие = "Привет, " + Имя + "!";
    Сообщить(Приветствие); // Привет, Андрей!
    

    Поиск текста внутри строки

    Допустим, ищем слово "кот":

    Текст = "У меня есть котёнок";
    Позиция = СтрНайти(Текст, "кот");
    Сообщить(Позиция); // вернёт 12
    

    Если не найдено → вернётся 0.


    Замена текста

    Меняем одно слово на другое:

    Текст = "Жизнь — это счастье!";
    Новый = СтрЗаменить(Текст, "счастье", "удовольствие");
    Сообщить(Новый); // Жизнь — это удовольствие!
    

    Регистр символов

    • В нижний регистр:
    НРег("ПрИвЕт"); // привет
    
    • В верхний регистр:
    ВРег("ПрИвЕт"); // ПРИВЕТ
    

    Итоги

    В 1С строки можно:
    ✅ создавать,
    ✅ объединять,
    ✅ искать и заменять подстроки,
    ✅ изменять регистр,
    ✅ работать с символами как с числами.


    🎯 Домашнее задание

    1. Попросите пользователя ввести строку.
    2. Подсчитайте, сколько в ней пробелов.
    3. Выведите результат в стиле:
  • Список значений в 1С

    Список значений в 1С

    Для начинающих программистов: Список значений

    Что это такое?

    СписокЗначений — это расширенная версия массива.
    Если массив умеет просто хранить значения, то список значений умеет:

    • хранить и само значение, и его «подпись» (строку или картинку для пользователя),
    • сортировать данные по одному нажатию,
    • искать элементы без лишнего кода,
    • легко копироваться,
    • работать как с индексами, так и с перебором,
    • и даже превращаться обратно в массив.

    Можно сказать, что это «массив с интеллектом».


    1. Создание и наполнение

    Простейший пример:

    Список = Новый СписокЗначений;
    Список.Добавить(10);
    Список.Добавить(0);
    Список.Добавить(-5);
    Список.Добавить(23);
    

    Теперь список содержит 4 элемента. Каждый элемент — это не просто число, а структура с полями:

    • Значение (само число),
    • Представление (строка для отображения).

    2. Использование представлений

    Мы можем добавить не только число, но и его текстовое описание:

    Список.Добавить(10, "десять");
    Список.Добавить(1861, "Отмена крепостного права");
    

    Теперь у каждого элемента есть две стороны: «для компьютера» и «для человека».
    Это делает список особенно удобным для выбора пользователем.


    3. Перебор элементов

    Для Каждого Элемент Из Список Цикл
        Сообщить("Значение: " + Элемент.Значение);
        Сообщить("Представление: " + Элемент.Представление);
    КонецЦикла;
    

    4. Сортировка

    Список может сам себя отсортировать:

    Список.СортироватьПоЗначению(НаправлениеСортировки.Возр);
    

    В отличие от массива, не нужно изобретать «пузырьки» и прочие алгоритмы — всё готово.


    5. Поиск

    Можно быстро проверить, есть ли число в списке:

    Найденный = Список.НайтиПоЗначению(23);
    Если Найденный <> Неопределено Тогда
        Сообщить("Нашёл: " + Найденный.Значение);
    Иначе
        Сообщить("Нет такого значения");
    КонецЕсли;
    

    6. Вставка и удаление

    Список.Вставить(0, 100); // вставили в начало
    Список.Удалить(0);       // удалили первый элемент
    

    7. Индексы

    Как и массив, список можно обходить по индексам:

    Для И = 0 По Список.Количество()-1 Цикл
        Сообщить(Список[И].Значение);
    КонецЦикла;
    

    8. Копирование

    Копия = Список.Скопировать();
    Копия[0].Значение = 999;
    

    Оригинал при этом не изменится. Удобно, когда нужно поэкспериментировать.


    9. Преобразование в массив

    Массив = Список.ВыгрузитьЗначения();
    

    Теперь у нас обычный массив для более простых задач.


    Где использовать?

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

    Домашнее задание

    1. Создайте список значений из 5 чисел. Найдите наибольшее и наименьшее.
    2. Сделайте список дат и выведите их текстовое представление («понедельник», «январь» и т.д.).
    3. Реализуйте меню выбора с историческими событиями и выведите выбранное пользователем.
  • диалоги в 1С

    диалоги в 1С

    для начинающих программистов: диалоги в 1С


    Что такое диалог?

    В 1С диалогом считается не просто сообщение, а отдельное окно, которое появляется у пользователя.

    👉 Сообщить("Привет") — это не диалог.
    👉 А вот Предупреждение("Осторожно!") или ВвестиЧисло(…)диалог, потому что у них есть собственные окна и они требуют реакции пользователя.

    Диалоги нужны для:

    • вывода информации,
    • получения ответа или данных от пользователя.

    Виды диалогов

    Предупреждение

    Простейший вариант:

    Предупреждение("Осторожно!");
    

    Программа покажет окно, остановится и будет ждать, пока пользователь его закроет.

    Можно сделать сложнее:

    Предупреждение("Важное сообщение!", 5, "Внимание!");
    
    • окно закроется через 5 секунд,
    • сверху вместо стандартного заголовка будет «Внимание!».

    Ввод числа

    Диалог, который не только что-то показывает, но и возвращает введённое значение.

    Число = 0;
    Результат = ВвестиЧисло(Число);
    
    Если Результат = Истина Тогда
        Сообщить("Вы ввели " + Строка(Число));
    Иначе
        Сообщить("Ввод отменён");
    КонецЕсли;
    
    • если нажали ОК → программа получила число,
    • если нажали Отмена → программа знает, что пользователь отказался.

    Вопрос пользователю

    Здесь можно задать варианты ответа:

    Результат = Вопрос("Продолжить работу?", РежимДиалогаВопрос.ДаНетОтмена);
    
    Если Результат = КодВозвратаДиалога.Да Тогда
        Сообщить("Отлично, идём дальше!");
    ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда
        Сообщить("Окей, останавливаемся.");
    Иначе
        Сообщить("Жаль, что вы нажали Отмена...");
    КонецЕсли;
    

    Модальность

    Все рассмотренные диалоги — модальные.
    То есть пока окно открыто — пользователь ничего другого в системе делать не может.

    Немодальные окна (когда можно работать дальше) тоже есть, но о них мы поговорим позже.


    📝 Домашнее задание

    Сделайте программу, которая спрашивает:

    «Нажмите Да, чтобы вывести числа от 1 до 10,
    Нет — чтобы вывести числа от 10 до 100,
    и ни в коем случае не нажимайте Отмена!»

    В диалоге должны быть кнопки Да / Нет / Отмена

  • Форматирование данных в 1С

    Форматирование данных в 1С

    Форматирование данных в 1С


    Зачем нужен Формат?

    Когда мы пишем код, почти всегда нужно красиво выводить данные: числа, даты, строки. Одно и то же значение можно показать по-разному.

    Например, дата 01.01.2005 может выглядеть так:

    • 01.01.2005
    • 1 января 2005 г.
    • 01.01.05

    За всё это отвечает функция Формат(). Она умеет превращать одно значение в разные текстовые варианты, управляя пробелами, нулями, разделителями и т.д.


    Числа без пробелов

    По умолчанию 1С группирует разряды:

    Сообщить(10000);     // 10 000
    

    А если пробелы не нужны:

    Сообщить(Формат(10000, "ЧГ=0")); // 10000
    

    Здесь ЧГ=0 отключает группировку разрядов.


    Лидирующие нули

    Хотим вывести 5 как 05:

    Сообщить(Формат(5, "ЧЦ=2; ЧВН="));  // 05
    
    • ЧЦ=2 — общее количество знаков.
    • ЧВН= — говорит использовать нули слева, если длина меньше.

    Собственный разделитель

    По умолчанию дробная часть отделяется точкой. Но мы можем заменить её на что угодно:

    Сообщить(Формат(25.46, "ЧРД=*"));  // 25*46
    

    Теперь точка превратилась в *.


    Формат даты

    Короткая дата:

    Сообщить(Формат('20050101', "ДЛФ=Д"));   // 01.01.2005
    

    Длинная дата:

    Сообщить(Формат('20050101', "ДЛФ=ДД"));  // 1 января 2005 г.
    

    День недели и месяц

    Сообщить(Формат('20050101', "ДФ=дддд")); // суббота
    Сообщить(Формат('20050101', "ДФ=ММММ")); // Январь
    

    Домашка

    1. Вывести число 123.45 как 123$45.
    2. Вывести число 9 как 009.
    3. Определить, какой сегодня день недели, и вывести его строкой.
    4. Определить, какой сейчас месяц, и вывести его полным названием.
  • Математика в 1С

    Математика в 1С

    Математика в 1С — полезные приёмы

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


    Округление чисел

    Цена = 100.384;
    Округленная = Окр(Цена, 1);  // 100.4
    

    Функция Окр принимает число и количество знаков после запятой.
    Правило стандартное: если следующая цифра ≥ 5, прибавляем единицу.

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

    Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как10)); // 100.3
    Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как20)); // 100.4
    

    Целая часть

    Целая = Цел(Цена);  // 100
    

    Функция Цел просто отбрасывает дробь.


    Степени и корни

    Куб = Pow(10, 3);    // 1000
    Корень = Sqrt(25);   // 5
    

    Pow — возведение в степень, Sqrt — квадратный корень.


    Минимум и максимум

    МаксЗначение = Макс(10, 20, 30); // 30
    МинЗначение  = Мин(10, 20, 30);  // 10
    

    Функции Макс и Мин принимают любое количество чисел.


    Генерация случайных чисел

    ГСЧ = Новый ГенераторСлучайныхЧисел();
    Сообщить(ГСЧ.СлучайноеЧисло(0, 2)); // от 0 до 2
    

    Можно зафиксировать последовательность:

    ГСЧ = Новый ГенераторСлучайныхЧисел(2014);
    

    Это удобно для тестов: вы всегда получите одинаковый результат.


    💡 Практика: мини-задачи

    1. Случайное число от 1 до 100, округлённое до целого.
    2. Вывести максимум из пяти случайных чисел.
    3. Проверить: если число больше 1000, вывести его квадратный корень, иначе — его куб.
    4. Написать функцию, которая принимает список чисел и возвращает сумму их округлённых значений.

    🏠 Домашнее задание

    Создать программу:

    • Генерируем 3 случайных числа (1…1000),
    • возводим каждое в 5-ю степень,
    • извлекаем квадратный корень,
    • делим на 3,
    • округляем до двух знаков (режим Окр15как10),
    • умножаем на 0.25,
    • отбрасываем дробную часть,
    • суммируем результаты.

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

  • Работа с датами в 1С

    Работа с датами в 1С

    Работа с датами — практика для новичков

    Откуда берётся дата в коде?

    1) Конструктор (надёжный способ)

    Лето = Дата(2014, 6, 1);         // Год, Месяц, День, (часы, минуты, секунды — опционально)
    Сообщить(Лето);
    

    2) Текущая дата/время

    Сегодня = ТекущаяДата();
    Сообщить(Сегодня);
    

    3) Ввод от пользователя

    ДатаПользователя = Неопределено;   // или '00010101'
    ВвестиДату(ДатаПользователя);
    ОткрытьЗначение(ДатаПользователя);
    

    Совет: строковый литерал 'YYYYMMDD' удобен для быстрых примеров,
    но для вычислений безопаснее Дата(Г,М,Д) — меньше шансов ошибиться.


    Разбор готовой даты на части

    Г = Год(Сегодня);
    М = Месяц(Сегодня);
    Д = День(Сегодня);
    Сообщить(Г + "-" + М + "-" + Д);
    

    Полезные «нормализаторы»:

    НачалоСуток   = НачалоДня(Сегодня);
    КонецСуток    = КонецДня(Сегодня);
    НачалоМесяца  = НачалоМесяца(Сегодня);
    КонецМесяца   = КонецМесяца(Сегодня);
    

    Арифметика дат: что можно и как правильно

    +/- секунды (прямо):

    Завтра = Сегодня + 24 * 60 * 60;   // сутки = 86400 секунд
    Вчера  = Сегодня - 24 * 60 * 60;
    

    Сдвиги «календарно» (надёжнее):

    ЧерезНеделю  = ДобавитьМесяц(Сегодня, 0) + 7 * 24 * 60 * 60; // неделя — ок
    ЧерезМесяц   = ДобавитьМесяц(Сегодня, 1);  // именно календарный месяц
    ГодНазад     = ДобавитьМесяц(Сегодня, -12);
    

    Почему для месяцев — через ДобавитьМесяц?
    Количество дней в месяце разное. Прибавлять «секундами» легко промахнуться.

    Разница между датами (в секундах):

    Секунд = '20140101' - '20100101';  //  разница как число секунд
    Дней   = Цел(Секунд / 86400);
    Сообщить("Прошло дней: " + Дней);
    

    Календарные функции, которые постоянно выручают

    НомерДняНедели = ДеньНедели(Сегодня);   // 1..7 (1 — понедельник)
    НомерДняГода   = ДеньГода(Сегодня);     // 1..366
    НомерНедели    = НеделяГода(Сегодня);   // ISO-нумерация
    

    Форматирование даты (красиво вывести)

    Текст = Формат(Сегодня, "ДФ='dd.MM.yyyy HH:mm'");
    Сообщить(Текст);     // например: 12.09.2025 14:35
    

    Мини-кейсы

    1) «Через сколько секунд наступит завтра 00:00?»

    Сейчас     = ТекущаяДата();
    Завтра0000 = НачалоДня(Сейчас + 24 * 60 * 60);
    СекундДо   = Завтра0000 - Сейчас;
    Сообщить(СекундДо);
    

    2) «Последний день текущего месяца»

    ПоследнийДеньМесяца = КонецДня(КонецМесяца(Сегодня));
    Сообщить(ПоследнийДеньМесяца);
    

    3) «Дата следующего месяца в тот же день (или конец месяца, если дня нет)»

    ТаЖеДатаВСледМесяце = ДобавитьМесяц(Сегодня, 1);
    Сообщить(ТаЖеДатаВСледМесяце);
    

    Частые ошибки и как не попасться

    • Складывать «секундами» месяцы/годы. Делай сдвиг месяцами через ДобавитьМесяц, год — ДобавитьМесяц(…, 12).
    • Сравнивать «сырые» даты, когда нужна только дата без времени. Нормализуй: НачалоДня(Дата1) = НачалоДня(Дата2).
    • Хранить даты строками и пытаться считать. Для вычислений — всегда тип Дата.
    • Путать локальный формат вывода с внутренним значением. Для отображения используй Формат.

    Тренировка (с краткими подсказками)

    1. Функция «ДеньНеделиСтрокой»
      Вход: дата. Выход: «понедельник»..«воскресенье».
      Подсказка: ДеньНедели() и массив со строками дней.
    2. «Какой сегодня день недели?»
      Используй функцию из п.1 + ТекущаяДата().
    3. «ДР в этом году прошёл?»
      Ввод: дата рождения.
    • Сформируй дату ДР на текущий год: Дата(Год(Сегодня), Месяц(Рождения), День(Рождения)).
    • Сравни с Сегодня.
    • Если прошёл — сообщение. Иначе — посчитай секунды до ДР.
    1. Бонус: «Сколько полных недель осталось до конца месяца?»
      Подсказка: КонецМесяца(Сегодня), разница в секундах, делим на 7*86400.
  • синтакс-помощник в 1С

    синтакс-помощник в 1С

    синтакс-помощник


    Зачем нужен синтакс-помощник?

    Когда вы только начинаете программировать, легко забыть название команды, перепутать параметры или не вспомнить пример. Конечно, можно лезть в интернет, но зачем, если в самой 1С есть встроенный справочник — синтакс-помощник?

    Это ваш «карманный справочник»:

    • показывает все команды языка,
    • объясняет параметры,
    • приводит готовые примеры.

    Пользоваться им — значит экономить время и избавляться от догадок.


    Ситуация 1. Вспоминаем, что такое массив

    Допустим, вы пишете код с массивами и вдруг забыли, какие у них есть методы.

    👉 Просто установите курсор на слово Массив и нажмите Ctrl + F1.
    Справа откроется окно справки: описание, доступные методы, примеры.


    Ситуация 2. Когда не знаешь точное название команды

    Предположим, вы помните, что команда начинается со слова «Ввести», но что именно дальше — не уверены.

    👉 Пишите в редакторе «Ввести» и жмите Ctrl + Пробел.
    Появится список всех команд на «Ввести»: ВвестиЧисло, ВвестиДату и другие.

    Выбираете подходящую — и она вставляется в код сразу со скобками.


    Ситуация 3. Подсказка параметров

    Когда вы добавили команду (например, ВвестиДату), сразу же появится подсказка с параметрами. Если закрыли её случайно — не беда:

    • курсор ставим внутрь скобок,
    • жмём Ctrl + Shift + Пробел — и подсказка возвращается.

    Ситуация 4. Полное описание команды

    Хотите больше деталей? Поставьте курсор на название команды и снова жмите Ctrl + F1.

    Откроется синтакс-помощник с:

    • обязательными и необязательными параметрами,
    • возвращаемыми значениями,
    • полезными комментариями и примерами.

    Например, у команды ВвестиДату обязательным является только первый параметр (куда сохранить результат), а сама команда возвращает Истина или Ложь в зависимости от того, ввёл ли пользователь дату.


    Содержание помощника

    На вкладке «Содержание» собраны все разделы. Здесь можно быстро перейти к любой теме — от циклов и условий до структур и коллекций.


    Домашнее задание 📝

    Используйте синтакс-помощник, чтобы изучить:

    • цикл Для,
    • цикл Пока,
    • условие Если … Тогда,
    • объект Структура.

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


    Итог

    Синтакс-помощник — это не «скучная справка», а настоящий навигатор по языку 1С.
    Профессионал всегда держит под рукой документацию, и чем раньше вы привыкнете ей пользоваться, тем быстрее станете писать грамотный и рабочий код

  • отладка программ в 1С

    отладка программ в 1С


    Что такое отладка?

    Когда мы пишем код, ошибки неизбежны. Иногда программа работает не так, как ожидалось, и нужно понять — где именно сбой.
    Для этого в 1С есть специальный инструмент — отладка.

    Отладка позволяет:

    • останавливать выполнение программы в нужный момент;
    • смотреть значения переменных «здесь и сейчас»;
    • пошагово проходить код и следить за логикой работы.

    Пример программы

    А = 23;
    Б = 42;  
    
    Сумма = А + Б;
      Сообщить(Сумма);
    Сумма = Сумма * 2;
      Сообщить(Сумма);
    

    Программа простая:

    1. Создаём две переменные (А и Б).
    2. Складываем их и выводим результат.
    3. Умножаем результат на два и снова выводим.

    Как пользоваться отладкой?

    Для этого установим курсор мыши в пятую строчку:

    И в главном меню выберем команду «Отладка»-«Точка останова».

    Если при этом появилась вот такая ошибка…

    это означает, что код который мы собираемся отлаживать ещё не сохранен в базу данных и нам следует предварительно выполнить пункт меню «Конфигурация-Обновить конфигурацию базы данных»:

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

    Теперь запустим отладку программы. Для этого через главное меню выполним
    команду «Отладка»-«Начать отладку» (или нажмём F5 на клавиатуре).

    И увидим, что компьютер дошёл до пятой строчки и замер в ожидании наших
    дальнейших действий. Об этом свидетельствует стрелка, появившаяся слева от
    пятой строки. Это стрелка указывает нам на какой команде находится компьютер
    в данный момент исполнения программы.


    Мини-эксперимент 🎯

    Возьми этот код:

    МассивЧисел = Новый Массив(5);
    МассивЧисел[0] = 10;
    МассивЧисел[1] = 5;
    МассивЧисел[2] = 450;
    МассивЧисел[3] = 654;
    МассивЧисел[4] = 34;
    
    Наименьшее = 1000000;
    
    Для Шаг = 0 По 4 Цикл
        Если МассивЧисел[Шаг] < Наименьшее Тогда
            Наименьшее = МассивЧисел[Шаг];
        КонецЕсли;
    КонецЦикла;
    
    Сообщить("Минимальное число: " + Наименьшее);
    

    🔎 Попробуй пройти его в отладчике:

    • поставь точку останова в самом начале;
    • пошагово двигайся по каждой строчке;
    • смотри, как меняется Наименьшее;
    • убедись, что в итоге программа находит число 5.

    Домашние задания

    1. Напиши программу, которая находит максимальное число в массиве. Отладь её пошагово.
    2. Сделай программу, которая считает среднее арифметическое чисел массива. Используй отладку, чтобы убедиться в правильности вычислений.
    3. Попробуй поставить несколько точек останова сразу и переходить между ними.

    Итоги

    • Отладка — это «пауза» внутри программы.
    • Она помогает понять, что происходит «под капотом» и где именно ошибка.
    • С помощью отладки можно изучать код, экспериментировать и учиться программировать эффективнее.
  • Функции и процедуры в1С. Эпизод 2.

    Функции и процедуры в1С. Эпизод 2.


    Пример: Как используется Функции и процедуры в 1С


    Пример 01.

    Функция Сумма(А, B)
        Возврат А + B;
    КонецФункции
    
    Сообщить(Сумма(5, 7)); 

    Пример 02.

    Функция ПлощадьКруга(Радиус)
        Возврат 3.14 * Радиус * Радиус;
    КонецФункции
    
    Сообщить(ПлощадьКруга(5)); 
    

    Пример 03.

    Функция Минимум(А, B)
        Если А < B Тогда
            Возврат А;
        Иначе
            Возврат B;
        КонецЕсли;
    КонецФункции
    
    Сообщить(Минимум(9, 3)); 

    Пример 04.

    Функция ВДиапазоне(Число, Мин, Макс)
        Возврат (Число >= Мин) И (Число <= Макс);
    КонецФункции
    
    Сообщить(ВДиапазоне(7, 1, 10));  Сообщить(ВДиапазоне(15, 1, 10)); 
    

    Пример 05.

    Процедура ПечатьЧисел(А, B)
        Для Шаг = А По B Цикл
            Сообщить(Шаг);
        КонецЦикла;
    КонецПроцедуры
    
    ПечатьЧисел(1, 5); 
    

    Функция в 1С — это маленькая программа внутри программы.
    Она нужна, чтобы не повторять один и тот же код много раз.

    Представь: у тебя есть ящик с кнопкой.

    • На кнопке написано имя функции (например, «КвадратЧисла»).
    • В ящик ты можешь положить какие-то значения (параметры).
    • Внутри ящика спрятаны команды, которые что-то делают.
    • Когда ты нажимаешь кнопку (вызываешь функцию) — из ящика всегда выходит результат (Возврат).

    То есть: функция всегда возвращает что-то назад — число, строку, дату и т.д.


    Пример функции: квадрат числа

    Функция КвадратЧисла(Число)
        Возврат Число * Число;
    КонецФункции
    
    Сообщить(КвадратЧисла(7)); // 49
    

    Функция без входов

    Функции могут работать и без параметров.

    Функция Привет()
        Возврат "Привет!";
    КонецФункции
    
    Сообщить(Привет()); // Привет!
    

    Процедуры — ящики без выхода

    Процедура похожа на функцию, но не возвращает результат. Она просто делает действие.

    Процедура ОписаниеЧисла(Число)
        Если Число >= 0 Тогда
            Сообщить("Положительное число");
        Иначе
            Сообщить("Отрицательное число");
        КонецЕсли;
    КонецПроцедуры
    
    ОписаниеЧисла(-3); // Отрицательное число
    

    Ключевые отличия

    • Функция всегда что-то возвращает (например, число или строку).
    • Процедура просто выполняет команды, но результат наружу не выдаёт.

    Задачи:

    1. Математика:
      Напиши функцию ПлощадьКруга(Радиус), которая возвращает площадь круга.
      👉 Подсказка: формула π * Радиус^2.
    2. Конструктор имён:
      Напиши функцию, которая принимает две строки и возвращает объединение:
    Сообщить(ФИО("Иван", "Петров")); // Иван Петров
    
    1. Счётчик:
      Напиши процедуру, которая принимает два числа (начало и конец) и выводит все числа между ними.
    ВывестиДиапазон(1, 5); // 1 2 3 4 5
    

    Итоги

    • Функция = ящик с входами и выходом.
    • Процедура = ящик только с входами.
    • Оба варианта помогают сокращать код, структурировать логику и писать программы без «копипаста».