Если Вы только открыли конфигуратор 1С, то первое впечатление может быть слегка ошеломляющим. Кнопки, вкладки, меню — всё пестрит, и непонятно, с чего начинать. Давайте разберёмся пошагово: что за что отвечает, где писать код и как вывести на экран своё первое «Привет, мир!».
Окно конфигуратора: что где находится
Интерфейс конфигуратора выглядит классически для Windows-приложений. Сверху — меню: Файл, Правка, Конфигурация, Отладка, Администрирование, Сервис, Окна, Справка. Ниже — панели инструментов.
Самые полезные кнопки для старта:
- создать и открыть файл;
- значок «i» в жёлтом кружке — показывает информацию о версии 1С и конфигурации, в которой сейчас работаете. Эта кнопка часто нужна программисту или техподдержке;
- справа — «Синтаксис-помощник», который сильно выручает новичка.
Где писать код
Чтобы попасть в саму конфигурацию, нужно нажать Конфигурация → Открыть конфигурацию. Появится дерево объектов, где и происходит разработка. Если база пустая, веток будет мало, но в реальных проектах там десятки и сотни объектов.
Меню «Конфигурация» даёт и другие команды: закрыть, сохранить, обновить конфигурацию, а также сравнить или объединить её с файлом. Две последние опции — самые востребованные в работе.
Настройки конфигуратора
Перед тем как писать код, лучше настроить рабочее пространство. Путь: Сервис → Параметры.
Главные моменты:
- во вкладке «Тексты» снимите галочку «Перетаскивание текста», чтобы случайно не уронить кусок кода;
- отключите «Курсор после конца строки» — меньше проблем с лишними пробелами;
- во вкладке «Модули» подправьте цвета: текущий идентификатор серым, выбранный — оранжевым;
- шрифт лучше увеличить до 11–12, глаза скажут спасибо;
- включите автозамену «с подсказкой», чтобы команды подставлялись автоматически;
- во вкладке «Группировка» активируйте все галочки — код будет компактнее.
Программирование в 1С: что это вообще
Язык 1С — это набор команд (операторов), функций и процедур. Код хранится в модулях. Модуль — это просто место для программы. Например, можно открыть модуль управляемого приложения или модуль объекта.
Давайте сразу к практике.
Первая программа на 1С
В модуле напишем:
Сообщить("Привет, мир!");
Оператор Сообщить выводит сообщение пользователю. Текст берём в двойные кавычки, после строки ставим точку с запятой.
Дальше нужно:
- Сохранить изменения.
- Обновить конфигурацию базы данных (кнопка F7).
- Запустить 1С:Предприятие (F5 или Ctrl+F5).
Внизу появится заветное сообщение: Привет, мир!
Операторы
Операторы — это команды, встроенные в язык. «Сообщить» — как раз один из них. С их помощью мы строим программу.
Переменные: что это и зачем
Переменная — это хранилище данных. Представьте картонные коробки с наклейками. В одну положили число 50 (зарплата Иванова), в другую 100 (зарплата Петрова).
ЗарплатаИванова = 50;
ЗарплатаПетрова = 100;
Результат = ЗарплатаИванова + ЗарплатаПетрова;
Сообщить(Результат);
При запуске увидим:
- «Привет, мир!»
- «150»
Значения сложились, и программа вывела результат.
Условный оператор "ЕСЛИ"
В программировании часто нужно проверять какое-то условие: больше ли число, равно ли значение, совпадают ли данные. Для этого в 1С есть оператор ЕСЛИ.
Самый простой пример:
Если ЗарплатаИванова > ЗарплатаПетрова Тогда
Сообщить("У Иванова больше");
КонецЕсли;
Логика простая: если условие внутри скобок верно, выполняется команда после слова Тогда. Если нет — программа просто идёт дальше.
Полная конструкция
На практике почти всегда используется разветвлённая форма:
Если ЗарплатаИванова > ЗарплатаПетрова Тогда
Сообщить("У Иванова больше");
ИначеЕсли ЗарплатаИванова < ЗарплатаПетрова Тогда
Сообщить("У Иванова меньше");
Иначе
Сообщить("Зарплаты равны");
КонецЕсли;
То есть у нас три сценария: больше, меньше или равно. 1С проверяет условия сверху вниз и останавливается на первом сработавшем варианте.
Булев тип и логические операции
Чтобы условие можно было проверить, оно должно давать результат Истина или Ложь. Это называется булев тип (Boolean).
Например:
- 50 > 100 → Ложь
- 100 = 100 → Истина
Виды сравнений в 1С:
- = (равно)
- <> (не равно)
- > (больше)
- < (меньше)
- >= (больше или равно)
- <= (меньше или равно)
Сложные условия
Иногда нужно проверить сразу несколько условий. Для этого есть логические операторы:
- И — истина, только если оба условия верны.
- ИЛИ — истина, если хотя бы одно условие верно.
- НЕ — инвертирует результат (Истина превращается в Ложь и наоборот).
Пример:
Если (ЗарплатаИванова > 10) И (ЗарплатаПетрова > 10) Тогда
Сообщить("Обе зарплаты больше 10");
КонецЕсли;
Зачем всё это
Условные операторы и логические выражения — это основа любой программы. Благодаря им код принимает решения: что выводить пользователю, какие данные считать, как обрабатывать ошибки.
Без понимания этой логики дальше двигаться будет сложно, поэтому лучше сразу много практиковаться: придумывать простые условия, комбинировать "И", "ИЛИ", "НЕ", смотреть, что получится.
Циклы в 1С: делаем одно и то же много раз
Представьте: у вас список сотрудников, и каждому нужно посчитать зарплату. Писать одно и то же сто раз вручную — безумие. Для этого и нужны циклы.
Цикл "ПОКА"
Выполняется до тех пор, пока условие истинно.
Счётчик = 1;
Пока Счётчик <= 5 Цикл
Сообщить("Счётчик = " + Счётчик);
Счётчик = Счётчик + 1;
КонецЦикла;
Что произойдёт:
- Программа выведет числа от 1 до 5.
- На каждом шаге к счётчику прибавляется единица.
- Как только счётчик станет больше 5 — цикл остановится.
Это основной вариант, когда заранее неизвестно, сколько раз придётся повторять действие.
Цикл "ДЛЯ"
Более короткая форма, если количество повторов известно заранее.
Для Счётчик = 1 По 5 Цикл
Сообщить("Счётчик = " + Счётчик);
КонецЦикла;
Здесь результат будет тот же: вывод от 1 до 5. Только запись компактнее.
Цикл "ДЛЯ КАЖДОГО"
Очень удобен для перебора элементов коллекций (списков, массивов, таблиц).
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(10);
МассивЧисел.Добавить(20);
МассивЧисел.Добавить(30);
Для Каждого Число Из МассивЧисел Цикл
Сообщить("Элемент: " + Число);
КонецЦикла;
На экране появятся три строки:
Элемент: 10
Элемент: 20
Элемент: 30
Управление циклами
Иногда нужно прервать цикл раньше времени. Для этого есть команды:
- Прервать — немедленно выйти из цикла.
- Продолжить — перейти к следующему шагу, пропустив текущий.
Пример:
Для Счётчик = 1 По 5 Цикл
Если Счётчик = 3 Тогда
Продолжить; // пропустим тройку
КонецЕсли;
Если Счётчик = 5 Тогда
Прервать; // остановимся на четвёрке
КонецЕсли;
Сообщить("Счётчик = " + Счётчик);
КонецЦикла;
Результат:
Счётчик = 1
Счётчик = 2
Счётчик = 4
- ПОКА — для повторов, пока условие выполняется.
- ДЛЯ — для фиксированного числа повторов.
- ДЛЯ КАЖДОГО — для перебора элементов коллекций.
С циклами можно обрабатывать любые данные: от простых списков до больших таблиц. Это уже настоящий инструмент автоматизации.
Процедуры и функции в 1С
Когда программа растёт, писать всё в одном месте становится невозможно. Чтобы не превращать код в кашу, его делят на отдельные блоки. В 1С это делается через процедуры и функции.
Процедура
Процедура выполняет действия, но ничего не возвращает.
Процедура Поприветствовать(Имя)
Сообщить("Привет, " + Имя + "!");
КонецПроцедуры
Теперь в коде можно вызывать её сколько угодно раз:
Поприветствовать("Иван");
Поприветствовать("Мария");
На экране появится:
Привет, Иван!
Привет, Мария!
То есть вместо того чтобы копировать одну и ту же строку много раз, мы написали её один раз и вызываем по имени.
Функция
Функция делает почти то же самое, но возвращает результат.
Функция Сложить(Число1, Число2)
Возврат Число1 + Число2;
КонецФункции
Теперь можно использовать её в выражениях:
Результат = Сложить(5, 7);
Сообщить("Сумма = " + Результат);
Результат:
Сумма = 12
Отличие процедуры от функции
- Процедура — просто выполняет действия.
- Функция — возвращает значение, с которым можно работать дальше.
Обычно:
- Процедуры используют для вывода сообщений, записи в базу, изменения данных.
- Функции — для вычислений и получения результата.
Зачем это нужно
- Код становится короче и понятнее.
- Можно один раз написать функцию, а потом переиспользовать её в разных местах.
- Если нужно что-то поменять, правишь только в одном месте.
Массивы
Массив — это список элементов. Очень удобен, когда нужно хранить несколько значений подряд.
Создание массива
МассивЧисел = Новый Массив;
МассивЧисел.Добавить(10);
МассивЧисел.Добавить(20);
МассивЧисел.Добавить(30);
Теперь в массиве три элемента: 10, 20, 30.
Доступ по индексу
У каждого элемента есть номер (индекс). Счёт начинается с 0.
Сообщить(МассивЧисел[0]); // выведет 10
Сообщить(МассивЧисел[2]); // выведет 30
Перебор массива
Обычно делают через цикл:
Для Каждого Число Из МассивЧисел Цикл
Сообщить("Элемент: " + Число);
КонецЦикла;
Таблица значений
Таблица значений — это как мини-база данных внутри программы. У неё есть строки и колонки.
Создание таблицы
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("ФИО");
Таблица.Колонки.Добавить("Зарплата");
Добавление строк
Строка = Таблица.Добавить();
Строка.ФИО = "Иванов";
Строка.Зарплата = 50000;
Строка = Таблица.Добавить();
Строка.ФИО = "Петров";
Строка.Зарплата = 60000;
Перебор строк таблицы
Для Каждого Строка Из Таблица Цикл
Сообщить(Строка.ФИО + ": " + Строка.Зарплата);
КонецЦикла;
Результат:
Иванов: 50000
Петров: 60000
Разница между массивом и таблицей
- Массив — простой список (подходит для хранения однотипных данных).
- Таблица значений — структура «построчно» с колонками (удобно хранить записи, похожие на Excel).
Где это реально применяется
- Массивы часто используют для временного хранения простых наборов данных.
- Таблицы значений — при обработке документов, формировании отчётов, работе с подборками из базы.