Программирование в 1С для начинающих: с чего начать
Содержание
Чтобы начать писать код в 1С, не нужны ни купленная лицензия, ни сервер, ни знание «настоящего» программирования на C++ или Python. Нужна бесплатная учебная версия платформы и желание разобраться в объектной модели. Первую рабочую обработку начинающий пишет в день установки — а дальше всё решает практика на реальных задачах.
Распространённое заблуждение: «1С — это не программирование, а настройки мышкой». На деле у платформы есть полноценный встроенный язык, свой язык запросов и объектная модель из десятков типов. Разработчик 1С пишет код не меньше, чем веб-программист, просто инструменты и бизнес-логика другие.
Ниже — честный маршрут от нуля: что поставить, какой язык учить, как устроены метаданные, где взять первую практику и к какой сертификации двигаться.
Почему 1С — рабочий вход в разработку
Главный аргумент за старт именно с 1С — спрос. Платформа стоит в десятках тысяч компаний: бухгалтерия, зарплата, торговля, производство, документооборот. Пока бизнес ведёт учёт в 1С, ему нужны люди, которые эти базы дорабатывают, обновляют и чинят.
Второй плюс — низкий порог входа. Встроенный язык русскоязычный по синтаксису, типизация мягкая, среда разработки идёт в комплекте с платформой. Не нужно отдельно настраивать компилятор, пакетный менеджер и десяток библиотек.
Что ещё работает в плюс новичку:
- 📈 Понятный карьерный рост — от доработок типовых конфигураций к архитектуре и оптимизации нагруженных баз.
- 🧩 Готовая предметная область — учишься не «в вакууме», а на документах, регистрах и отчётах, которые видишь в живом учёте.
- 🔁 Переносимые навыки — SQL-мышление, работа с транзакциями, клиент-серверная архитектура пригодятся и за пределами 1С.
Чтобы снять романтику, вот из чего реально состоит рабочий день разработчика 1С: доработка печатных форм и отчётов, новые реквизиты и документы под процессы конкретной компании, обмены данными между базами, разбор ошибок пользователей и обновление конфигураций с переносом доработок. Чистого написания кода «с нуля» меньше, чем встраивания логики в уже существующую типовую конфигурацию — это надо принять сразу.
Если у вас уже есть бухгалтерский или учётный опыт — это серьёзное преимущество. Половина сложностей в разработке 1С не в коде, а в понимании того, что именно должна считать программа.
Что поставить, чтобы начать писать код
Для учёбы хватит одного компьютера на Windows и бесплатной учебной версии платформы — её фирма 1С распространяет легально для обучения. Учебная версия умеет почти всё, кроме работы в клиент-серверном режиме и снятия ограничений по объёму данных. Для первых месяцев этого достаточно.
Порядок установки:
- Скачайте и установите учебную версию платформы 1С:Предприятие 8.3 (в составе — платформа и конфигуратор).
- Создайте пустую файловую информационную базу: в стартовом окне нажмите
Добавить→ «Создание новой информационной базы» → «без конфигурации» для чистого старта. - Откройте базу в режиме
Конфигуратор— это и есть среда разработки.
Две среды разработки, между которыми выбирают:
- Конфигуратор — классический инструмент, встроен в платформу, его знают все. Начинать проще с него.
- 1C:Enterprise Development Tools (EDT) — среда на базе Eclipse, ближе к привычкам «большой» разработки: git, рефакторинг, сравнение. Переходить на неё имеет смысл позже.
Из литературы для старта обычно советуют практическое пособие разработчика (Радченко, Хрусталёва) — оно построено как сквозной учебный проект, который вы собираете с нуля. Книга платная, но окупается: это самый быстрый способ пройти путь «пустая база → работающая конфигурация».
Встроенный язык: синтаксис и типы данных
Встроенный язык 1С — процедурно-объектный. Код живёт не в отдельных файлах, а в модулях: модуль объекта, модуль формы, общие модули, модуль сеанса. Каждый модуль привязан к конкретному месту приложения.
Базовые конструкции узнаются с первого взгляда:
Процедура ПоказатьПриветствие()
Имя = "Коллега";
Сообщить("Привет, " + Имя + "!");
КонецПроцедуры
Типы данных делятся на три группы:
- Примитивные —
Число,Строка,Дата,Булево,Неопределено. - Ссылочные — ссылки на элементы справочников, документы и другие объекты базы.
- Универсальные коллекции —
Массив,Структура,Соответствие,СписокЗначений,ТаблицаЗначений.
Отдельно стоит понять с самого начала: код выполняется на клиенте или на сервере, и это не одно и то же. Перед процедурами ставят директивы компиляции &НаКлиенте и &НаСервере. На клиенте — работа с формой и пользователем, на сервере — обращение к базе данных.
Самая частая ошибка новичка — попытка прочитать данные из базы в клиентской процедуре. Чтение и запись объектов идут только на сервере. Это не каприз платформы, а следствие архитектуры: клиент не держит прямого соединения с СУБД.
Перебор коллекции делают так, чтобы не трогать границу изменяемого набора внутри цикла:
Для Каждого Строка Из Таблица Цикл
Сообщить(Строка.Наименование);
КонецЦикла;
Склейку числа со строкой всегда оформляйте через Формат() или СтрШаблон(), иначе получите либо ошибку, либо нечитаемый вывод с лишними разрядами.
Операции, которые могут сорваться (запись объекта, обращение к внешнему ресурсу), оборачивают в перехват исключений:
Попытка
Объект.Записать();
Исключение
Сообщить("Не удалось записать: " + ОписаниеОшибки());
КонецПопытки;
Повторно используемый код выносят в общие модули. У каждого модуля в свойствах задаётся, где он доступен — на клиенте, на сервере или в обоих контекстах. Это не формальность: именно так в 1С раскладывают логику между клиентом и сервером и избегают лишних серверных вызовов, которые тормозят интерфейс.
Объектная модель: метаданные как каркас конфигурации
Это ключевой раздел, который отличает 1С от обычного языка. Вы не создаёте таблицы в базе руками — вы добавляете объекты метаданных в дереве конфигурации, а платформа сама строит под них структуру хранения.
Основные типы объектов:
| Объект | Для чего | Пример |
|---|---|---|
| Справочник | Условно-постоянные списки | Номенклатура, Контрагенты |
| Документ | События хозяйственной жизни | Поступление товаров |
| Регистр накопления | Движения и остатки | Товары на складах |
| Регистр сведений | Периодические данные | Цены номенклатуры |
| Отчёт | Вывод данных пользователю | Остатки на складе |
| Обработка | Служебные действия над данными | Загрузка прайса |
Логика проста: документ при проведении формирует движения по регистрам, а регистры хранят итоги, по которым потом строятся отчёты. Поймёте эту связку «документ → регистр → отчёт» — поймёте половину типовых конфигураций.
Каждый объект метаданных несёт свои модули, формы и реквизиты. Поведение описывается в обработчиках событий: ОбработкаПроведения у документа, ПриЗаписи у объекта, события формы при открытии и записи.
Язык запросов: как доставать данные пачками
Перебирать справочник построчно в цикле — путь к медленной программе. Данные из базы берут языком запросов. Синтаксически он похож на SQL, но на русском и заточен под объектную модель 1С.
Запрос выполняется только на сервере. Минимальный каркас:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Наименование);
КонецЦикла;
Отдельно освойте работу с виртуальными таблицами регистров — например, таблицей остатков. Именно они дают быстрый ответ «сколько товара на складе на дату», без ручного суммирования движений.
Следующий шаг — соединения таблиц (ЛЕВОЕ СОЕДИНЕНИЕ), группировки с итогами и временные таблицы через пакетные запросы. На этом уровне уже решаются типовые задачи вроде «остатки с ценами» или «продажи по контрагентам за период». Параллельно держите в голове производительность: лишние соединения и запрос в цикле — две главные причины медленных отчётов у новичков.
Поверх языка запросов стоит система компоновки данных (СКД) — механизм, которым строят большинство отчётов. Через конструктор СКД отчёт собирается почти без кода: пишете запрос, настраиваете поля, группировки и отборы, а платформа сама рисует таблицу и даёт пользователю настройки. Учить СКД стоит сразу после базового языка запросов — без неё не обойтись ни на одной реальной работе.
Первая практика: пишем внешнюю обработку
Теория закрепляется только на практике. Самый безопасный полигон для новичка — внешняя обработка (файл .epf). Она не меняет саму конфигурацию, запускается в режиме «Предприятие» отдельным файлом, её легко переписывать и показывать на собеседовании.
Сделаем обработку, которая выводит список номенклатуры:
- В конфигураторе выберите
Файл→Новый→ «Внешняя обработка». - Задайте имя, например
СписокТоваров. - Добавьте форму обработки через команду создания основной формы.
- На форму положите команду с кнопкой и реквизит-табличное поле для результата.
- В обработчике команды напишите запрос из предыдущего раздела и заполните табличное поле.
- Сохраните файл
.epfи откройте его в режиме «Предприятие» через меню открытия внешних обработок.
Соберите папку «мои обработки» с первого дня. Десяток решённых мелких задач — загрузка данных из Excel, массовая смена реквизита, простой отчёт — ценятся на собеседовании выше, чем прочитанный учебник.
Когда внешние обработки станут привычными, переходите к доработке конфигурации в учебной базе: добавьте свой справочник, документ и регистр, свяжите их проведением. Это и есть реальная работа 1С-программиста в миниатюре.
Отдельно потренируйте отладчик: точки останова, пошаговое выполнение, просмотр значений переменных через табло. Умение быстро находить причину ошибки отличает специалиста от того, кто правит код наугад.
С первых недель приучайтесь хранить свои наработки под контролем версий. В EDT git встроен, из конфигуратора код выгружают в файлы и коммитят отдельно. Даже на учебных задачах это полезная привычка: видно историю правок, не страшно экспериментировать, легко откатиться к рабочему варианту.
Куда расти и как подтвердить уровень
Через несколько месяцев практики встаёт вопрос подтверждения квалификации. У 1С есть собственная линейка сертификатов, и работодатели на неё смотрят:
- 1С:Профессионал — базовый уровень, проверяет знание конкретной конфигурации или платформы. С него обычно начинают.
- 1С:Специалист — практический экзамен: нужно решить задачу разработки за отведённое время. Это уже весомая строчка в резюме.
- 1С:Специалист-консультант — для тех, кто сочетает разработку с постановкой учёта.
- 1С:Эксперт по технологическим вопросам — высшая ступень, про производительность и нагруженные системы.
Карьерный маршрут обычно такой: доработки типовых конфигураций → самостоятельные подсистемы → архитектура и интеграции → оптимизация и высокие нагрузки. Параллельно растёт и доход.
Про деньги ориентировочно (сильно зависит от региона, удалёнки и уровня): джуниор — примерно 60–90 тыс. руб., middle с сертификатом «Специалист» — ориентировочно 120–180 тыс., senior и архитекторы — от 200 тыс. и выше. Цифры примерные, рынок подвижен, но порядок такой.
Не гонитесь за сертификатом раньше практики. Сначала решайте реальные задачи, потом подтверждайте уровень экзаменом — иначе сертификат есть, а работать руками не получается.