Разработка и Конфигурация · 12 мин
Что знает 1С-программист: полный список навыков и знаний
Что должен знать программист 1С: язык платформы, конфигуратор, запросы, СКД, обмены данными, администрирование. Реальные навыки от джуна до ведущего разработчика.
1С-программист — это разработчик, который работает внутри экосистемы платформы «1С:Предприятие» и отвечает за то, чтобы учётная система компании соответствовала реальным бизнес-процессам. Его работа сильно отличается от классической разработки на Python или Java: здесь важнее не алгоритмы, а глубокое понимание учётных механизмов — проводок, остатков, регистров, закрытия периода.
Профессия делится на два больших направления. Первое — разработка: доработка конфигураций, создание отчётов, интеграции, написание обработок. Второе — сопровождение: обновления типовых конфигураций, исправление ошибок учёта, помощь пользователям. Хороший специалист обычно совмещает оба направления, потому что без понимания учёта невозможно качественно доработать конфигурацию.
Ниже разобрано, какие конкретно знания и навыки составляют профессиональный инструментарий 1С-программиста — от базового уровня до уверенного ведущего разработчика.
Что входит в базовый минимум: платформа, конфигуратор, язык
Фундамент профессии — уверенная работа в конфигураторе. Программист должен знать структуру метаданных: справочники, документы, регистры сведений и накопления, перечисления, планы счетов, отчёты и обработки. Он понимает, чем регистр сведений отличается от регистра накопления, зачем нужны измерения, ресурсы и реквизиты, как работает проведение документа и что такое движения по регистрам.
Встроенный язык 1С (его часто называют «язык 1С» или bsl) синтаксически напоминает смесь Pascal и Basic, но специфика в другом: язык тесно связан с объектной моделью платформы. Программист должен различать контексты выполнения — клиент и сервер, толстый и тонкий клиент, управляемые и обычные формы. Ошибки в распределении кода между клиентом и сервером — типичная болезнь начинающих: например, попытка обратиться к файловой системе сервера из клиентского контекста.
Обязательный навык — работа с отладчиком. Точки останова, просмотр значений переменных, стек вызовов, отладка фоновых заданий и веб-сервисов. Без отладки невозможно разбираться в чужом коде типовой конфигурации, а это 80% повседневной работы.
Язык запросов и СКД: главный инструмент отчётности
Язык запросов 1С похож на SQL, но работает поверх объектной модели платформы и имеет свои особенности: виртуальные таблицы регистров (Остатки, Обороты, СрезПоследних), параметры виртуальных таблиц, пакетные запросы, временные таблицы. Программист обязан понимать, как строится запрос к остаткам на дату, почему соединение с виртуальной таблицей без параметров — это почти всегда ошибка производительности, и когда выгоднее использовать временные таблицы вместо вложенных запросов.
СКД (система компоновки данных) — механизм построения отчётов без программирования интерфейса. Уверенное владение СКД означает: умение настроить наборы данных, связи между ними, ресурсы, вычисляемые поля, параметры периода, группировки и варианты отчёта. Пользователь должен получить отчёт, который можно перенастроить без привлечения программиста.
ВЫБРАТЬ
Товары.Номенклатура КАК Номенклатура,
СУММА(Товары.КоличествоОстаток) КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Товары
СГРУППИРОВАТЬ ПО
Товары.НоменклатураЧастая ошибка новичков — собирать данные циклами и обходами выборок там, где задача решается одним запросом. Это не только медленнее, но и создаёт лишнюю нагрузку на сервер СУБД. Признак зрелости разработчика — он сначала думает, как получить данные запросом, и только потом пишет код обработки результата.
Знание типовых конфигураций и механизмов учёта
Работодатели почти всегда требуют знание конкретных типовых решений: «1С:Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом», «ERP», «Комплексная автоматизация». Знать конфигурацию — значит понимать её ключевые механизмы: как формируются проводки, как работает расчёт себестоимости, как закрывается месяц, какие регистры задействованы в конкретной операции.
Отдельная компетенция — доработка типовых конфигураций без нарушения обновляемости. Современный подход — использование расширений конфигурации вместо прямого изменения типового кода. Программист должен знать возможности и ограничения расширений: что можно переопределить через аннотации &ИзменениеИКонтроль и &Вместо, где расширение бессильно и придётся снимать объекты с поддержки.
Также программист обязан понимать предметную область. Разработчик, дорабатывающий бухгалтерию, должен знать, что такое дебет, кредит, субконто, закрытие счетов. Специалист по торговле — понимать партии товаров, резервирование, взаиморасчёты. Без этого невозможно ни ставить задачи, ни проверять результат: код может быть синтаксически правильным, но ломать учёт.
Обмены данными и интеграции
Практически ни одна внедрённая система не живёт изолированно. Программист 1С должен уметь настраивать и дорабатывать обмены: типовая синхронизация между конфигурациями (например, УТ и БП), планы обмена, регистрация изменений, разрешение коллизий. Для нестандартных задач используются правила конвертации данных — отдельный навык, который ценится на рынке.
Интеграции с внешними системами — вторая большая тема: HTTP-сервисы и HTTP-запросы, веб-сервисы (SOAP), работа с JSON и XML, обмен через файлы и FTP, подключение к API интернет-магазинов, маркетплейсов, банков и служб доставки. Программист должен понимать аутентификацию, обработку ошибок сети, идемпотентность повторных запросов и защиту от дублей при загрузке данных.
Администрирование, производительность и безопасность
Даже чистый разработчик неизбежно сталкивается с задачами администрирования. Минимальный набор: публикация базы на веб-сервере, настройка прав доступа (роли, RLS), работа с хранилищем конфигурации при командной разработке, обновление платформы и конфигурации, резервное копирование. Программист обязан понимать разницу между файловым и клиент-серверным режимом работы и ограничения каждого.
Производительность — отдельная зона ответственности. Нужно уметь читать технологический журнал, находить длительные запросы и взаимоблокировки, понимать, как индексы влияют на скорость выборок, почему нельзя делать запросы в цикле и чем опасны управляемые блокировки при высокой конкуренции пользователей. Навык анализа замеров производительности отличает опытного специалиста от начинающего.
Вопросы безопасности тоже входят в круг знаний: разграничение прав на уровне записей, безопасный режим выполнения кода внешних обработок, защита от выполнения произвольного кода, корректное хранение паролей в базе. Особенно это важно, когда обработки пишутся для пользователей с ограниченными правами.
Как навыки распределяются по уровням специалиста
Один и тот же набор тем на разных уровнях означает разную глубину. Начинающий разработчик пишет простые обработки и отчёты по готовому шаблону, ведущий — проектирует архитектуру подсистемы и отвечает за производительность при сотнях одновременных пользователей.
| Уровень | Что умеет | Типовые задачи |
|---|---|---|
| Начинающий (junior) | Конфигуратор, базовый язык, простые запросы, отчёты на СКД по образцу | Внешние печатные формы, простые обработки, правка макетов, помощь пользователям |
| Уверенный (middle) | Расширения, обмены, интеграции по API, оптимизация запросов, знание 1–2 типовых конфигураций | Доработка типовых механизмов, настройка синхронизаций, интеграция с сайтом и маркетплейсами |
| Опытный (senior) | Архитектура решений, производительность, блокировки, командная разработка, проектирование подсистем | Проектирование обменов с нуля, расследование дедлоков, ревью кода, постановка задач команде |
Как выбрать направление развития
Как проверить свои знания и где границы самостоятельной работы
Практический критерий готовности к самостоятельной работе — способность решить задачу полного цикла: получить требование от пользователя, найти место доработки в типовой конфигурации, реализовать через расширение, проверить на копии базы, перенести в рабочую и убедиться, что учётные данные не пострадали. Если на любом из этих шагов нужна постоянная помощь — эта тема и есть ближайшая точка роста.
Полезная практика — вести собственную библиотеку решений: типовые шаблоны запросов, обработки для анализа данных, заготовки интеграционного кода. Опытный программист редко пишет код «с нуля» — он собирает решение из проверенных фрагментов и знает, где искать описание незнакомого механизма: в синтакс-помощнике, документации к конфигурации и коде типовых модулей.
- 1Сформулируйте задачу в терминах учёта: какие документы, регистры и отчёты затрагиваются
- 2Сделайте копию рабочей базы и разверните тестовую среду
- 3Реализуйте изменение через расширение или внешнюю обработку, минимизируя правку типового кода
- 4Проверьте на тестовой базе: проведение документов, отчёты, права пользователей, обмены
- 5Перенесите в рабочую базу в нерабочее время, предварительно сделав резервную копию
- 6Проверьте результат на реальных данных вместе с пользователем, который ставил задачу
Что важно запомнить
1С-программист — это разработчик плюс специалист по учёту. Ядро профессии: конфигуратор и встроенный язык, запросы и СКД, знание типовых конфигураций и механизмов учёта, обмены и интеграции, основы администрирования и производительности. Рост идёт через глубину понимания учёта и умение дорабатывать типовые решения без потери обновляемости.
Частые вопросы
Нужно ли 1С-программисту знать другие языки программирования?
Не обязательно, но полезно. Для интеграций пригодится понимание HTTP, JSON и SQL на уровне чтения запросов. Знание скриптовых языков помогает автоматизировать обслуживание баз, а основы веб-разработки — при работе с HTTP-сервисами и мобильными клиентами. Но ядром профессии остаётся платформа 1С.
Обязательно ли знать бухгалтерский учёт, чтобы писать код в 1С?
Для простых обработок — нет, для полноценной работы — да. Без понимания проводок, остатков и закрытия периода невозможно проверить правильность доработки: код может выполняться без ошибок, но формировать неверные данные учёта. Минимум — разбираться в предметной области той конфигурации, с которой работаете.
Что лучше изучать первым: запросы или СКД?
Сначала язык запросов: СКД построена поверх него, и без понимания выборок, соединений и виртуальных таблиц отчёты будут получаться только по шаблону. После уверенной работы с запросами СКД осваивается заметно быстрее.
Чем расширение конфигурации лучше прямой доработки типового кода?
Расширение хранится отдельно от типовой конфигурации, поэтому обновления поставщика устанавливаются штатно, а доработки не теряются. Прямая правка типовых модулей требует ручного сопоставления при каждом обновлении. У расширений есть ограничения — не все объекты и методы можно переопределить, но начинать стоит всегда с расширения.
Как понять, что проблема в производительности запроса, а не в коде?
Признаки медленного запроса: длительное выполнение отчёта или проведения даже на копии базы, рост времени отклика с увеличением объёма данных. Проверяется замером производительности в конфигураторе и анализом плана запроса на стороне СУБД. Типичные причины — запросы в цикле, соединения с виртуальными таблицами без параметров, отсутствие подходящих индексов.
Можно ли работать 1С-программистом без сертификатов?
Да, сертификаты не являются обязательным требованием большинства работодателей — решают практические навыки и знание типовых конфигураций. При этом подготовка к сертификации по платформе полезна как систематизация знаний, а сами сертификаты иногда требуются франчайзи для партнёрского статуса.