К статье
Практический материал

Разработка и Конфигурация · 12 мин

Что знает 1С-программист: полный список навыков и знаний

Что должен знать программист 1С: язык платформы, конфигуратор, запросы, СКД, обмены данными, администрирование. Реальные навыки от джуна до ведущего разработчика.

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

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

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

Что входит в базовый минимум: платформа, конфигуратор, язык

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

Встроенный язык 1С (его часто называют «язык 1С» или bsl) синтаксически напоминает смесь Pascal и Basic, но специфика в другом: язык тесно связан с объектной моделью платформы. Программист должен различать контексты выполнения — клиент и сервер, толстый и тонкий клиент, управляемые и обычные формы. Ошибки в распределении кода между клиентом и сервером — типичная болезнь начинающих: например, попытка обратиться к файловой системе сервера из клиентского контекста.

Обязательный навык — работа с отладчиком. Точки останова, просмотр значений переменных, стек вызовов, отладка фоновых заданий и веб-сервисов. Без отладки невозможно разбираться в чужом коде типовой конфигурации, а это 80% повседневной работы.

Язык запросов и СКД: главный инструмент отчётности

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

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

bsl
ВЫБРАТЬ
	Товары.Номенклатура КАК Номенклатура,
	СУММА(Товары.КоличествоОстаток) КАК Остаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Товары
СГРУППИРОВАТЬ ПО
	Товары.Номенклатура

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

Знание типовых конфигураций и механизмов учёта

Работодатели почти всегда требуют знание конкретных типовых решений: «1С:Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом», «ERP», «Комплексная автоматизация». Знать конфигурацию — значит понимать её ключевые механизмы: как формируются проводки, как работает расчёт себестоимости, как закрывается месяц, какие регистры задействованы в конкретной операции.

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

Также программист обязан понимать предметную область. Разработчик, дорабатывающий бухгалтерию, должен знать, что такое дебет, кредит, субконто, закрытие счетов. Специалист по торговле — понимать партии товаров, резервирование, взаиморасчёты. Без этого невозможно ни ставить задачи, ни проверять результат: код может быть синтаксически правильным, но ломать учёт.

Обмены данными и интеграции

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

Интеграции с внешними системами — вторая большая тема: HTTP-сервисы и HTTP-запросы, веб-сервисы (SOAP), работа с JSON и XML, обмен через файлы и FTP, подключение к API интернет-магазинов, маркетплейсов, банков и служб доставки. Программист должен понимать аутентификацию, обработку ошибок сети, идемпотентность повторных запросов и защиту от дублей при загрузке данных.

Типичные ошибки в интеграциях
01
Загрузка данных без контроля дублей — после сбоя и повторной выгрузки в базе появляются задвоенные документы и контрагенты
02
Отсутствие журналирования обменов — при ошибке невозможно понять, какие данные ушли и какие нет
03
Синхронный обмен в интерфейсе пользователя — форма «зависает» на время запроса, пользователи жалуются на тормоза
04
Передача паролей и токенов в открытом виде в коде — риск утечки при выгрузке конфигурации или передаче кода третьим лицам

Администрирование, производительность и безопасность

Даже чистый разработчик неизбежно сталкивается с задачами администрирования. Минимальный набор: публикация базы на веб-сервере, настройка прав доступа (роли, RLS), работа с хранилищем конфигурации при командной разработке, обновление платформы и конфигурации, резервное копирование. Программист обязан понимать разницу между файловым и клиент-серверным режимом работы и ограничения каждого.

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

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

Как навыки распределяются по уровням специалиста

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

УровеньЧто умеетТиповые задачи
Начинающий (junior)Конфигуратор, базовый язык, простые запросы, отчёты на СКД по образцуВнешние печатные формы, простые обработки, правка макетов, помощь пользователям
Уверенный (middle)Расширения, обмены, интеграции по API, оптимизация запросов, знание 1–2 типовых конфигурацийДоработка типовых механизмов, настройка синхронизаций, интеграция с сайтом и маркетплейсами
Опытный (senior)Архитектура решений, производительность, блокировки, командная разработка, проектирование подсистемПроектирование обменов с нуля, расследование дедлоков, ревью кода, постановка задач команде
Маршрут решения

Как выбрать направление развития

Нравится писать код и строить отчётыУглубляйтесь в СКД, оптимизацию запросов и архитектуру конфигураций
Интересны интеграции с внешними системамиОсваивайте HTTP-сервисы, JSON, очереди сообщений и механизмы обмена
Тянет к стабильности и инфраструктуреРазвивайтесь в сторону администрирования: СУБД, кластер серверов, технологический журнал
Хочется роста в управлениеДобавляйте навыки постановки задач, оценки трудозатрат и ведения проектов внедрения

Как проверить свои знания и где границы самостоятельной работы

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

Полезная практика — вести собственную библиотеку решений: типовые шаблоны запросов, обработки для анализа данных, заготовки интеграционного кода. Опытный программист редко пишет код «с нуля» — он собирает решение из проверенных фрагментов и знает, где искать описание незнакомого механизма: в синтакс-помощнике, документации к конфигурации и коде типовых модулей.

Безопасный порядок любой доработки
  1. 1
    Сформулируйте задачу в терминах учёта: какие документы, регистры и отчёты затрагиваются
  2. 2
    Сделайте копию рабочей базы и разверните тестовую среду
  3. 3
    Реализуйте изменение через расширение или внешнюю обработку, минимизируя правку типового кода
  4. 4
    Проверьте на тестовой базе: проведение документов, отчёты, права пользователей, обмены
  5. 5
    Перенесите в рабочую базу в нерабочее время, предварительно сделав резервную копию
  6. 6
    Проверьте результат на реальных данных вместе с пользователем, который ставил задачу
Итог

Что важно запомнить

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

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

Нужно ли 1С-программисту знать другие языки программирования?

Не обязательно, но полезно. Для интеграций пригодится понимание HTTP, JSON и SQL на уровне чтения запросов. Знание скриптовых языков помогает автоматизировать обслуживание баз, а основы веб-разработки — при работе с HTTP-сервисами и мобильными клиентами. Но ядром профессии остаётся платформа 1С.

Обязательно ли знать бухгалтерский учёт, чтобы писать код в 1С?

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

Что лучше изучать первым: запросы или СКД?

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

Чем расширение конфигурации лучше прямой доработки типового кода?

Расширение хранится отдельно от типовой конфигурации, поэтому обновления поставщика устанавливаются штатно, а доработки не теряются. Прямая правка типовых модулей требует ручного сопоставления при каждом обновлении. У расширений есть ограничения — не все объекты и методы можно переопределить, но начинать стоит всегда с расширения.

Как понять, что проблема в производительности запроса, а не в коде?

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

Можно ли работать 1С-программистом без сертификатов?

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