Профессия программиста 1С: что учить, где практиковаться и как расти

· 10 мин

Содержание

Чтобы стать программистом 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 с русскими ключевыми словами. Изучать его «от учебника» долго. Быстрее идти от задач и подтягивать синтаксис по ходу. Справочник всегда под рукой: в конфигураторе это Синтаксис-помощник (Справка → Синтаксис-помощник).

Минимум по синтаксису

  1. Переменные, условия Если … Тогда … КонецЕсли, циклы Для Каждого … Из … Цикл и Пока … Цикл.
  2. Процедуры и функции, параметры по значению (Знач) и по ссылке.
  3. Универсальные коллекции: Массив, Структура, Соответствие, ТаблицаЗначений.
  4. Директивы компиляции &НаКлиенте и &НаСервере. Без понимания клиент-серверной модели управляемых форм дальше не продвинуться.
  5. Обработка исключений: Попытка … Исключение … КонецПопытки.

Язык запросов — важнее, чем кажется

Запросы — это половина реальной работы. Отчёт, проверка остатков, заполнение табличной части — всё начинается с запроса. Язык похож на SQL, но работает с объектами конфигурации и виртуальными таблицами регистров.

Пример: получить остатки товаров на текущую дату и вывести их сообщением.

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

	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Сообщить(СтрШаблон("%1: %2", Выборка.Номенклатура, Выборка.Остаток));
	КонецЦикла;
КонецПроцедуры

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

Запрос внутри цикла — классическая ошибка новичка. Если в цикле по 10 000 строкам выполнять запрос на каждой итерации, отчёт будет работать минутами. Данные получают одним запросом, а потом обходят результат.

Первые задачи начинающего программиста 1С

На стажировке и первой работе задачи повторяются. Если вы уверенно делаете хотя бы четыре из списка ниже, вы уже полезны команде.

ЗадачаЧто нужно знатьПримерный срок у новичка
Новая печатная формаТабличный документ, макеты, области, параметры1–2 дня
Отчёт на СКДСистема компоновки данных: наборы, ресурсы, группировки, варианты1–3 дня
Внешняя обработка (загрузка из Excel, групповое изменение)Чтение файлов, табличный документ, запись объектов2–4 дня
Новый реквизит в документе с выводом на формуМетаданные, управляемые формы, расширениянесколько часов
Доработка заполнения табличной частиЗапросы, события формы, клиент-серверные вызовы1 день

Сроки ориентировочные и сильно зависят от конфигурации и качества постановки.

Расширения вместо правки типовой

В реальных базах типовую конфигурацию стараются не снимать с поддержки. Доработки делают расширениями конфигурации (они появились в платформе 8.3.6): своё меню Конфигурация → Расширения конфигурации, свой набор объектов, перехват процедур типового модуля через аннотации &Перед, &После, &Вместо.

Почему это важно: базу с расширением обновлять гораздо проще, чем снятую с поддержки. Работодатели спрашивают про расширения почти на каждом собеседовании, так что освойте их сразу после основ.

СКД — главный инструмент отчётов

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

Регистры и проведение документов: как устроена логика учёта

Это то, что отличает программиста 1С от «просто программиста». Документ сам по себе — только запись о факте. Учёт ведут регистры, а связывает их проведение.

Какие бывают регистры

  • 📊 Регистр сведений — хранит значения по измерениям, часто с привязкой ко времени (например, цены номенклатуры на дату).
  • 📦 Регистр накопления — остатки и обороты: товары на складе, взаиморасчёты, продажи. Бывает двух видов: остатков и оборотов.
  • 🧾 Регистр бухгалтерии — проводки Дт/Кт по плану счетов, с субконто.
  • 🗓️ Регистр расчёта — начисления и удержания с периодами действия, используется в зарплатных конфигурациях.

Что происходит при проведении

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

Процедура ОбработкаПроведения(Отказ, Режим)
	Движения.ОстаткиТоваров.Записывать = Истина;
	Для Каждого ТекСтрока Из Товары Цикл
		Движение = Движения.ОстаткиТоваров.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Номенклатура = ТекСтрока.Номенклатура;
		Движение.Количество = ТекСтрока.Количество;
	КонецЦикла;
КонецПроцедуры

Такой код генерирует конструктор движений (кнопка «Конструктор движений» на вкладке «Движения» в окне документа). Сгенерируйте его, а потом перепишите сами.

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

Расходный документ должен проверять, хватает ли товара. Правильная схема:

  1. Записать движения расхода.
  2. Запросом к виртуальной таблице остатков проверить, не ушёл ли остаток в минус.
  3. Если ушёл — сообщить пользователю и установить Отказ = Истина.

Для корректной работы при одновременном проведении нескольких документов нужна управляемая блокировка данных регистра (объект БлокировкаДанных). Это частый вопрос на собеседовании уровня 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 года.

Что прокачивать после основ

  1. Обмены данными: «Конвертация данных», обмен через XML и HTTP-сервисы.
  2. Производительность: технологический журнал, блокировки, план запроса.
  3. Учёт: хотя бы базовое понимание бухгалтерии и складского учёта. Программист, который говорит с бухгалтером на одном языке, ценится выше.
  4. Стандарты разработки фирмы 1С и библиотека стандартных подсистем (БСП) — на ней построены все типовые конфигурации.

Частые ошибки тех, кто учится программировать в 1С

  • ❌ Учить только язык без модели данных. Можно знать все операторы и не понимать, почему остаток ушёл в минус. Учите регистры параллельно с синтаксисом.
  • ❌ Смотреть курсы без своей базы. Видео без практики забываются за неделю. Каждую тему повторяйте руками в учебной конфигурации.
  • ❌ Писать серверный код на клиенте. В управляемых формах обращение к базе на клиенте невозможно. Разберитесь, что выполняется &НаКлиенте, а что &НаСервере, и не делайте лишних серверных вызовов в цикле.
  • ❌ Бояться типовых конфигураций. Новички пишут всё сами, хотя в БСП уже есть готовые механизмы: печать, дополнительные реквизиты, файлы. Прежде чем писать своё, поищите типовое решение.
  • ❌ Откладывать первую работу «до полной готовности». Полностью готовым к реальным задачам не будет никто. После учебного проекта и пары внешних обработок уже можно откликаться на стажировки.

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

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