Найти в Дзене
FanDzen

Азы программирования 1С: что нужно знать новичку

Если Вы только открыли конфигуратор 1С, то первое впечатление может быть слегка ошеломляющим. Кнопки, вкладки, меню — всё пестрит, и непонятно, с чего начинать. Давайте разберёмся пошагово: что за что отвечает, где писать код и как вывести на экран своё первое «Привет, мир!». Интерфейс конфигуратора выглядит классически для Windows-приложений. Сверху — меню: Файл, Правка, Конфигурация, Отладка, Администрирование, Сервис, Окна, Справка. Ниже — панели инструментов. Самые полезные кнопки для старта: Чтобы попасть в саму конфигурацию, нужно нажать Конфигурация → Открыть конфигурацию. Появится дерево объектов, где и происходит разработка. Если база пустая, веток будет мало, но в реальных проектах там десятки и сотни объектов. Меню «Конфигурация» даёт и другие команды: закрыть, сохранить, обновить конфигурацию, а также сравнить или объединить её с файлом. Две последние опции — самые востребованные в работе. Перед тем как писать код, лучше настроить рабочее пространство. Путь: Сервис → Параме
Оглавление

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

Думаю, что не нужно объяснять какой у меня любимый сериал
Думаю, что не нужно объяснять какой у меня любимый сериал

Окно конфигуратора: что где находится

Интерфейс конфигуратора выглядит классически для Windows-приложений. Сверху — меню: Файл, Правка, Конфигурация, Отладка, Администрирование, Сервис, Окна, Справка. Ниже — панели инструментов.

Самые полезные кнопки для старта:

  • создать и открыть файл;
  • значок «i» в жёлтом кружке — показывает информацию о версии 1С и конфигурации, в которой сейчас работаете. Эта кнопка часто нужна программисту или техподдержке;
  • справа — «Синтаксис-помощник», который сильно выручает новичка.

Где писать код

Чтобы попасть в саму конфигурацию, нужно нажать Конфигурация → Открыть конфигурацию. Появится дерево объектов, где и происходит разработка. Если база пустая, веток будет мало, но в реальных проектах там десятки и сотни объектов.

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

Настройки конфигуратора

Перед тем как писать код, лучше настроить рабочее пространство. Путь: Сервис → Параметры.

Главные моменты:

  • во вкладке «Тексты» снимите галочку «Перетаскивание текста», чтобы случайно не уронить кусок кода;
  • отключите «Курсор после конца строки» — меньше проблем с лишними пробелами;
  • во вкладке «Модули» подправьте цвета: текущий идентификатор серым, выбранный — оранжевым;
  • шрифт лучше увеличить до 11–12, глаза скажут спасибо;
  • включите автозамену «с подсказкой», чтобы команды подставлялись автоматически;
  • во вкладке «Группировка» активируйте все галочки — код будет компактнее.

Программирование в 1С: что это вообще

Язык 1С — это набор команд (операторов), функций и процедур. Код хранится в модулях. Модуль — это просто место для программы. Например, можно открыть модуль управляемого приложения или модуль объекта.

Давайте сразу к практике.

Первая программа на 1С

В модуле напишем:

Сообщить("Привет, мир!");

Оператор Сообщить выводит сообщение пользователю. Текст берём в двойные кавычки, после строки ставим точку с запятой.

Дальше нужно:

  1. Сохранить изменения.
  2. Обновить конфигурацию базы данных (кнопка F7).
  3. Запустить 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

Отличие процедуры от функции

  • Процедура — просто выполняет действия.
  • Функция — возвращает значение, с которым можно работать дальше.

Обычно:

  • Процедуры используют для вывода сообщений, записи в базу, изменения данных.
  • Функции — для вычислений и получения результата.

Зачем это нужно

  1. Код становится короче и понятнее.
  2. Можно один раз написать функцию, а потом переиспользовать её в разных местах.
  3. Если нужно что-то поменять, правишь только в одном месте.

Массивы

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

Создание массива

МассивЧисел = Новый Массив;
МассивЧисел.Добавить(10);
МассивЧисел.Добавить(20);
МассивЧисел.Добавить(30);

Теперь в массиве три элемента: 10, 20, 30.

Доступ по индексу

У каждого элемента есть номер (индекс). Счёт начинается с 0.

Сообщить(МассивЧисел[0]); // выведет 10
Сообщить(МассивЧисел[2]); // выведет 30

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

Обычно делают через цикл:

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

Таблица значений

Таблица значений — это как мини-база данных внутри программы. У неё есть строки и колонки.

Создание таблицы

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("ФИО");
Таблица.Колонки.Добавить("Зарплата");

Добавление строк

Строка = Таблица.Добавить();
Строка.ФИО = "Иванов";
Строка.Зарплата = 50000;
Строка = Таблица.Добавить();
Строка.ФИО = "Петров";
Строка.Зарплата = 60000;

Перебор строк таблицы

Для Каждого Строка Из Таблица Цикл
Сообщить(Строка.ФИО + ": " + Строка.Зарплата);
КонецЦикла;

Результат:
Иванов: 50000
Петров: 60000

Разница между массивом и таблицей

  • Массив — простой список (подходит для хранения однотипных данных).
  • Таблица значений — структура «построчно» с колонками (удобно хранить записи, похожие на Excel).

Где это реально применяется

  • Массивы часто используют для временного хранения простых наборов данных.
  • Таблицы значений — при обработке документов, формировании отчётов, работе с подборками из базы.