Профессия программиста 1С: что учить, где практиковаться и как расти
Содержание
Чтобы стать программистом 1С, нужны три вещи: бесплатная учебная версия платформы 1С:Предприятие 8.3, примерно 3–6 месяцев регулярной практики в конфигураторе и понимание учёта на уровне «что такое остаток, оборот и проводка». После этого реально пройти собеседование на позицию младшего разработчика или стажёра во франчайзи.
Главное заблуждение новичков — что сначала надо выучить язык, а потом разбираться в бухгалтерии. На деле работодатель проверяет обратное: умеете ли вы понять задачу бухгалтера и найти, где в типовой конфигурации лежат нужные данные. Синтаксис языка 1С простой , его осваивают за пару недель. Модель данных и регистры — за месяцы.
С чего начать путь программиста 1С: платформа и рабочее место
Что установить
Для обучения хватит обычного ноутбука с Windows и 8 ГБ памяти. Ставить сервер, PostgreSQL или Linux на старте не нужно: учиться удобнее на файловых базах.
- 📦 Учебная версия платформы 1С:Предприятие 8.3. Распространяется бесплатно для обучения, имеет ограничения, но для освоения конфигуратора их не замечаешь.
- 📚 Демобазы типовых конфигураций. Бухгалтерия предприятия 3.0, Управление торговлей 11, ЗУП 3.1 — на них видно, как пишут код в реальных продуктах.
- 🧩 Чистая база без конфигурации. Создаётся в окне запуска кнопкой
Добавить→ «Создание новой информационной базы» → «Создание информационной базы без конфигурации». В ней вы строите свою учебную конфигурацию с нуля.
Конфигуратор или EDT
Классическая среда — Конфигуратор, он входит в платформу. Вторая среда — 1С:Enterprise Development Tools (EDT) на базе Eclipse. EDT удобна для командной разработки с Git, но требовательна к памяти и сложнее для первого знакомства.
| Среда | Когда выбирать | Минусы |
|---|---|---|
| Конфигуратор | Обучение, сопровождение одной базы, большинство вакансий во франчайзи | Нет нормальной работы с Git из коробки |
| EDT | Командная разработка, продуктовые компании, крупные внедрения | Тяжёлая, долго открывает большие конфигурации |
Начинайте с конфигуратора. Почти все курсы, примеры и задачи на собеседованиях рассчитаны на него. К EDT вернётесь, когда придёте в команду, которая на ней работает.
Язык 1С и запросы: что выучить в первую очередь
Встроенный язык похож на Pascal и Basic с русскими ключевыми словами. Изучать его «от учебника» долго. Быстрее идти от задач и подтягивать синтаксис по ходу. Справочник всегда под рукой: в конфигураторе это Синтаксис-помощник (Справка → Синтаксис-помощник).
Минимум по синтаксису
- Переменные, условия
Если … Тогда … КонецЕсли, циклыДля Каждого … Из … ЦиклиПока … Цикл. - Процедуры и функции, параметры по значению (
Знач) и по ссылке. - Универсальные коллекции:
Массив,Структура,Соответствие,ТаблицаЗначений. - Директивы компиляции
&НаКлиентеи&НаСервере. Без понимания клиент-серверной модели управляемых форм дальше не продвинуться. - Обработка исключений:
Попытка … Исключение … КонецПопытки.
Язык запросов — важнее, чем кажется
Запросы — это половина реальной работы. Отчёт, проверка остатков, заполнение табличной части — всё начинается с запроса. Язык похож на SQL, но работает с объектами конфигурации и виртуальными таблицами регистров.
Пример: получить остатки товаров на текущую дату и вывести их сообщением.
&НаСервере
Процедура ПоказатьОстаткиНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
| ОстаткиТоваровОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, ) КАК ОстаткиТоваровОстатки";
Запрос.УстановитьПараметр("НаДату", ТекущаяДатаСеанса());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(СтрШаблон("%1: %2", Выборка.Номенклатура, Выборка.Остаток));
КонецЦикла;
КонецПроцедуры
Здесь ОстаткиТоваров — регистр накопления из вашей учебной конфигурации. Запросы не пишут руками с нуля: в конфигураторе есть конструктор запроса (правая кнопка мыши в модуле → «Конструктор запроса»). Сначала собирайте запрос конструктором, потом читайте получившийся текст — так язык запросов запоминается быстрее всего.
Запрос внутри цикла — классическая ошибка новичка. Если в цикле по 10 000 строкам выполнять запрос на каждой итерации, отчёт будет работать минутами. Данные получают одним запросом, а потом обходят результат.
Первые задачи начинающего программиста 1С
На стажировке и первой работе задачи повторяются. Если вы уверенно делаете хотя бы четыре из списка ниже, вы уже полезны команде.
| Задача | Что нужно знать | Примерный срок у новичка |
|---|---|---|
| Новая печатная форма | Табличный документ, макеты, области, параметры | 1–2 дня |
| Отчёт на СКД | Система компоновки данных: наборы, ресурсы, группировки, варианты | 1–3 дня |
| Внешняя обработка (загрузка из Excel, групповое изменение) | Чтение файлов, табличный документ, запись объектов | 2–4 дня |
| Новый реквизит в документе с выводом на форму | Метаданные, управляемые формы, расширения | несколько часов |
| Доработка заполнения табличной части | Запросы, события формы, клиент-серверные вызовы | 1 день |
Сроки ориентировочные и сильно зависят от конфигурации и качества постановки.
Расширения вместо правки типовой
В реальных базах типовую конфигурацию
стараются не снимать с поддержки. Доработки делают расширениями конфигурации (они появились в платформе 8.3.6): своё меню Конфигурация → Расширения конфигурации, свой набор объектов, перехват процедур типового модуля через аннотации &Перед, &После, &Вместо.
Почему это важно: базу с расширением обновлять гораздо проще, чем снятую с поддержки. Работодатели спрашивают про расширения почти на каждом собеседовании, так что освойте их сразу после основ.
СКД — главный инструмент отчётов
Система компоновки данных (СКД) — это механизм, на котором построены отчёты типовых конфигураций. Пользователь сам меняет группировки, отборы и оформление, а программист описывает только источник данных. Отчёт на СКД — первая самостоятельная задача почти у каждого стажёра.
Регистры и проведение документов: как устроена логика учёта
Это то, что отличает программиста 1С от «просто программиста». Документ сам по себе — только запись о факте. Учёт ведут регистры, а связывает их проведение.
Какие бывают регистры
- 📊 Регистр сведений — хранит значения по измерениям, часто с привязкой ко времени (например, цены номенклатуры на дату).
- 📦 Регистр накопления — остатки и обороты: товары на складе, взаиморасчёты, продажи. Бывает двух видов: остатков и оборотов.
- 🧾 Регистр бухгалтерии — проводки Дт/Кт по плану счетов, с субконто.
- 🗓️ Регистр расчёта — начисления и удержания с периодами действия, используется в зарплатных конфигурациях.
Что происходит при проведении
Когда пользователь нажимает «Провести», платформа вызывает в модуле объекта документа обработчик ОбработкаПроведения. В нём программист формирует движения — записи в регистрах. Простейший вариант для документа «Приходная накладная
» выглядит так:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрока Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрока.Номенклатура;
Движение.Количество = ТекСтрока.Количество;
КонецЦикла;
КонецПроцедуры
Такой код генерирует конструктор движений (кнопка «Конструктор движений» на вкладке «Движения» в окне документа). Сгенерируйте его, а потом перепишите сами.
Контроль остатков при расходе
Расходный документ должен проверять, хватает ли товара. Правильная схема:
- Записать движения расхода.
- Запросом к виртуальной таблице остатков проверить, не ушёл ли остаток в минус.
- Если ушёл — сообщить пользователю и установить
Отказ = Истина.
Для корректной работы при одновременном проведении нескольких документов нужна управляемая блокировка данных регистра (объект БлокировкаДанных). Это частый вопрос на собеседовании уровня middle.
Учебный проект, который стоит сделать целиком: справочники «Номенклатура» и «Склады», документы прихода и расхода, регистр остатков с контролем, отчёт на СКД по остаткам и оборотам. На нём проверяются почти все базовые навыки.
Отладка кода и поиск ошибок
Отладчик в конфигураторе запускается через меню Отладка → Начать отладку (клавиша F5). Ставите точку останова, выполняете действие в пользовательском режиме — и выполнение останавливается на нужной строке.
| Клавиша | Действие |
|---|---|
| F9 | Поставить или снять точку останова |
| F5 | Начать отладку / продолжить выполнение |
| F11 | Шаг с заходом в процедуру |
| F10 | Шаг через процедуру |
| Shift+F9 | Вычислить выражение: посмотреть значение переменной или выполнить код |
Приёмы, которые экономят время
- 🔍 Остановка по ошибке. В меню
Отладкавключите остановку по ошибке — отладчик сам встанет на строку, где возникло исключение. Особенно полезно, когда ошибка «прячется» внутриПопытка … Исключение. - ⏱️ Замер производительности. Пункт в меню
Отладкапоказывает, какие строки кода выполнялись дольше всего и сколько раз. С него начинают любую оптимизацию. - 🧪 Консоль запросов. Внешняя обработка, в которой выполняют произвольный запрос и смотрят результат. Проверяйте запрос в ней, прежде чем вставлять в модуль.
- 🌐 Отладка на сервере. В клиент-серверном варианте серверную отладку нужно отдельно разрешить в настройках сервера 1С. Это делает администратор; без этого точки останова в серверном коде не срабатывают.
Когда ошибка возникает только у пользователя, полезен журнал регистрации (Администрирование → Обслуживание → Журнал регистрации в типовых конфигурациях). Там видны время ошибки, пользователь и текст исключения.
Не отлаживайте доработки в рабочей базе. Сделайте копию (выгрузку в .dt) и работайте с ней. Ошибочный код в обработчике проведения в рабочей базе может испортить движения сотен документов.
Как растёт программист 1С: уровни, сертификаты и зарплаты
Где начинать работу
- 🏢 Франчайзи 1С. Самый частый вход: много разных клиентов, быстрое обучение на задачах. Минус — часто высокая нагрузка и задачи «вчера».
- 🏭 Штатный 1С-ник в компании. Одна база, глубокое погружение в бизнес. Подходит тем, кто любит доводить систему до ума.
- 💻 Продуктовые компании и крупные внедрения. Командная разработка, EDT, Git, ревью кода. Сюда обычно приходят уже с опытом.
Сертификаты фирмы 1С
| Сертификат | Что проверяет | Кому нужен |
|---|---|---|
| «1С:Профессионал» по платформе | Тест на знание механизмов платформы | Подтверждение базы для первого резюме |
| «1С:Профессионал» по конфигурациям | Знание типовой конфигурации (БП, ЗУП, УТ и др.) | Консультантам и разработчикам внедрения |
| «1С:Специалист» по платформе | Практический экзамен: решить задачу в конфигураторе | Разработчикам уровня middle и выше |
| «1С:Эксперт по технологическим вопросам» | Производительность, нагрузка, архитектура | Опытным разработчикам и архитекторам |
Профессионал сдают тестом, Специалиста — практической задачей, которую оценивает экзаменатор. Франчайзи ценят сертифицированных сотрудников, потому что это требование статуса партнёра. Для штатной работы сертификат — плюс, но не обязательное условие.
Ориентиры по зарплате
Цифры ориентировочные, для крупных городов России, и меняются вместе с рынком:
- 🌱 Стажёр и junior — примерно 60–100 тыс. руб. в месяц.
- 🌿 Middle (самостоятельно ведёт задачи, знает СКД, регистры, расширения) — примерно 150–250 тыс. руб.
- 🌳 Senior, ведущий разработчик (архитектура, производительность, обмены) — примерно от 250 тыс. руб. и выше.
В регионах суммы ниже, на удалённой работе разрыв сокращается. Путь от стажёра до middle при регулярной практике обычно занимает 1,5–3 года.
Что прокачивать после основ
- Обмены данными: «Конвертация данных», обмен через XML и HTTP-сервисы.
- Производительность: технологический журнал, блокировки, план запроса.
- Учёт: хотя бы базовое понимание бухгалтерии и складского учёта. Программист, который говорит с бухгалтером на одном языке, ценится выше.
- Стандарты разработки фирмы 1С и библиотека стандартных подсистем (БСП) — на ней построены все типовые конфигурации.
Частые ошибки тех, кто учится программировать в 1С
- ❌ Учить только язык без модели данных. Можно знать все операторы и не понимать, почему остаток ушёл в минус. Учите регистры параллельно с синтаксисом.
- ❌ Смотреть курсы без своей базы. Видео без практики забываются за неделю. Каждую тему повторяйте руками в учебной конфигурации.
- ❌ Писать серверный код на клиенте. В управляемых формах обращение к базе на клиенте невозможно. Разберитесь, что выполняется
&НаКлиенте, а что&НаСервере, и не делайте лишних серверных вызовов в цикле. - ❌ Бояться типовых конфигураций. Новички пишут всё сами, хотя в БСП уже есть готовые механизмы: печать, дополнительные реквизиты, файлы. Прежде чем писать своё, поищите типовое решение.
- ❌ Откладывать первую работу «до полной готовности». Полностью готовым к реальным задачам не будет никто. После учебного проекта и пары внешних обработок уже можно откликаться на стажировки.