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

· 9 мин

Содержание

Чтобы начать писать код в 1С, не нужны ни купленная лицензия, ни сервер, ни знание «настоящего» программирования на C++ или Python. Нужна бесплатная учебная версия платформы и желание разобраться в объектной модели. Первую рабочую обработку начинающий пишет в день установки — а дальше всё решает практика на реальных задачах.

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

Ниже — честный маршрут от нуля: что поставить, какой язык учить, как устроены метаданные, где взять первую практику и к какой сертификации двигаться.

Почему 1С — рабочий вход в разработку

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

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

Что ещё работает в плюс новичку:

  • 📈 Понятный карьерный рост — от доработок типовых конфигураций к архитектуре и оптимизации нагруженных баз.
  • 🧩 Готовая предметная область — учишься не «в вакууме», а на документах, регистрах и отчётах, которые видишь в живом учёте.
  • 🔁 Переносимые навыки — SQL-мышление, работа с транзакциями, клиент-серверная архитектура пригодятся и за пределами 1С.

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

Если у вас уже есть бухгалтерский или учётный опыт — это серьёзное преимущество. Половина сложностей в разработке 1С не в коде, а в понимании того, что именно должна считать программа.

Что поставить, чтобы начать писать код

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

Порядок установки:

  1. Скачайте и установите учебную версию платформы 1С:Предприятие 8.3 (в составе — платформа и конфигуратор).
  2. Создайте пустую файловую информационную базу: в стартовом окне нажмите Добавить → «Создание новой информационной базы» → «без конфигурации» для чистого старта.
  3. Откройте базу в режиме Конфигуратор — это и есть среда разработки.

Две среды разработки, между которыми выбирают:

  • Конфигуратор — классический инструмент, встроен в платформу, его знают все. Начинать проще с него.
  • 1C:Enterprise Development Tools (EDT) — среда на базе Eclipse, ближе к привычкам «большой» разработки: git, рефакторинг, сравнение. Переходить на неё имеет смысл позже.
Что нужно, чтобы начать учиться
Выполнено: 0 / 5

Из литературы для старта обычно советуют практическое пособие разработчика (Радченко, Хрусталёва) — оно построено как сквозной учебный проект, который вы собираете с нуля. Книга платная, но окупается: это самый быстрый способ пройти путь «пустая база → работающая конфигурация».

Встроенный язык: синтаксис и типы данных

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

Базовые конструкции узнаются с первого взгляда:

Процедура ПоказатьПриветствие()
    Имя = "Коллега";
    Сообщить("Привет, " + Имя + "!");
КонецПроцедуры

Типы данных делятся на три группы:

  • Примитивные — Число, Строка, Дата, Булево, Неопределено.
  • Ссылочные — ссылки на элементы справочников, документы и другие объекты базы.
  • Универсальные коллекции — Массив, Структура, Соответствие, СписокЗначений, ТаблицаЗначений.

Отдельно стоит понять с самого начала: код выполняется на клиенте или на сервере, и это не одно и то же. Перед процедурами ставят директивы компиляции &НаКлиенте и &НаСервере. На клиенте — работа с формой и пользователем, на сервере — обращение к базе данных.

Самая частая ошибка новичка — попытка прочитать данные из базы в клиентской процедуре. Чтение и запись объектов идут только на сервере. Это не каприз платформы, а следствие архитектуры: клиент не держит прямого соединения с СУБД.

Перебор коллекции делают так, чтобы не трогать границу изменяемого набора внутри цикла:

Для Каждого Строка Из Таблица Цикл
    Сообщить(Строка.Наименование);
КонецЦикла;

Склейку числа со строкой всегда оформляйте через Формат() или СтрШаблон(), иначе получите либо ошибку, либо нечитаемый вывод с лишними разрядами.

Операции, которые могут сорваться (запись объекта, обращение к внешнему ресурсу), оборачивают в перехват исключений:

Попытка
    Объект.Записать();
Исключение
    Сообщить("Не удалось записать: " + ОписаниеОшибки());
КонецПопытки;

Повторно используемый код выносят в общие модули. У каждого модуля в свойствах задаётся, где он доступен — на клиенте, на сервере или в обоих контекстах. Это не формальность: именно так в 1С раскладывают логику между клиентом и сервером и избегают лишних серверных вызовов, которые тормозят интерфейс.

Объектная модель: метаданные как каркас конфигурации

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

Основные типы объектов:

ОбъектДля чегоПример
СправочникУсловно-постоянные спискиНоменклатура, Контрагенты
ДокументСобытия хозяйственной жизниПоступление товаров
Регистр накопленияДвижения и остаткиТовары на складах
Регистр сведенийПериодические данныеЦены номенклатуры
ОтчётВывод данных пользователюОстатки на складе
ОбработкаСлужебные действия над даннымиЗагрузка прайса

Логика проста: документ при проведении формирует движения по регистрам, а регистры хранят итоги, по которым потом строятся отчёты. Поймёте эту связку «документ → регистр → отчёт» — поймёте половину типовых конфигураций.

Каждый объект метаданных несёт свои модули, формы и реквизиты. Поведение описывается в обработчиках событий: ОбработкаПроведения у документа, ПриЗаписи у объекта, события формы при открытии и записи.

Проверьте себя
Где выполняется чтение данных из информационной базы?
Что формирует документ при проведении?
Какой объект хранит остатки товаров?

Язык запросов: как доставать данные пачками

Перебирать справочник построчно в цикле — путь к медленной программе. Данные из базы берут языком запросов. Синтаксически он похож на SQL, но на русском и заточен под объектную модель 1С.

Запрос выполняется только на сервере. Минимальный каркас:

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Номенклатура.Наименование КАК Наименование,
    |   Номенклатура.Артикул КАК Артикул
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |   НЕ Номенклатура.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование);
КонецЦикла;

Отдельно освойте работу с виртуальными таблицами регистров — например, таблицей остатков. Именно они дают быстрый ответ «сколько товара на складе на дату», без ручного суммирования движений.

Следующий шаг — соединения таблиц (ЛЕВОЕ СОЕДИНЕНИЕ), группировки с итогами и временные таблицы через пакетные запросы. На этом уровне уже решаются типовые задачи вроде «остатки с ценами» или «продажи по контрагентам за период». Параллельно держите в голове производительность: лишние соединения и запрос в цикле — две главные причины медленных отчётов у новичков.

Поверх языка запросов стоит система компоновки данных (СКД) — механизм, которым строят большинство отчётов. Через конструктор СКД отчёт собирается почти без кода: пишете запрос, настраиваете поля, группировки и отборы, а платформа сама рисует таблицу и даёт пользователю настройки. Учить СКД стоит сразу после базового языка запросов — без неё не обойтись ни на одной реальной работе.

Первая практика: пишем внешнюю обработку

Теория закрепляется только на практике. Самый безопасный полигон для новичка — внешняя обработка (файл .epf). Она не меняет саму конфигурацию, запускается в режиме «Предприятие» отдельным файлом, её легко переписывать и показывать на собеседовании.

Сделаем обработку, которая выводит список номенклатуры:

  1. В конфигураторе выберите Файл → Новый → «Внешняя обработка».
  2. Задайте имя, например СписокТоваров.
  3. Добавьте форму обработки через команду создания основной формы.
  4. На форму положите команду с кнопкой и реквизит-табличное поле для результата.
  5. В обработчике команды напишите запрос из предыдущего раздела и заполните табличное поле.
  6. Сохраните файл .epf и откройте его в режиме «Предприятие» через меню открытия внешних обработок.

Соберите папку «мои обработки» с первого дня. Десяток решённых мелких задач — загрузка данных из Excel, массовая смена реквизита, простой отчёт — ценятся на собеседовании выше, чем прочитанный учебник.

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

Отдельно потренируйте отладчик: точки останова, пошаговое выполнение, просмотр значений переменных через табло. Умение быстро находить причину ошибки отличает специалиста от того, кто правит код наугад.

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

Куда расти и как подтвердить уровень

Через несколько месяцев практики встаёт вопрос подтверждения квалификации. У 1С есть собственная линейка сертификатов, и работодатели на неё смотрят:

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

Карьерный маршрут обычно такой: доработки типовых конфигураций → самостоятельные подсистемы → архитектура и интеграции → оптимизация и высокие нагрузки. Параллельно растёт и доход.

Про деньги ориентировочно (сильно зависит от региона, удалёнки и уровня): джуниор — примерно 60–90 тыс. руб., middle с сертификатом «Специалист» — ориентировочно 120–180 тыс., senior и архитекторы — от 200 тыс. и выше. Цифры примерные, рынок подвижен, но порядок такой.

Не гонитесь за сертификатом раньше практики. Сначала решайте реальные задачи, потом подтверждайте уровень экзаменом — иначе сертификат есть, а работать руками не получается.

Частые вопросы

Нужно ли знать бухгалтерию, чтобы программировать в 1С?
Глубоко — нет, но базовое понимание учёта сильно помогает. Разработчик дорабатывает учётную систему, и чем лучше он понимает, что считает документ и регистр, тем меньше переделок.
Можно ли учиться без покупки лицензии?
Да. Учебная версия платформы распространяется легально и бесплатно, её возможностей хватает на всё обучение. Ограничения касаются объёма данных и клиент-серверного режима, но для учёбы это не мешает.
Конфигуратор или EDT — что выбрать новичку?
Начинайте с конфигуратора: он встроен в платформу, по нему больше учебных материалов и его знают все работодатели. EDT осваивайте позже, когда появится потребность в git и командной разработке.
Сколько времени нужно до первой работы?
При регулярных занятиях — ориентировочно от четырёх до восьми месяцев до уровня джуниора. Решающий фактор не время, а количество самостоятельно решённых задач, а не прочитанных страниц.
Обязательно ли учить язык запросов и СКД?
Да. Без запросов невозможно эффективно работать с данными, а без СКД — строить отчёты. Это не опциональные темы, а ядро повседневной работы 1С-программиста.