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

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

Почему 1С-программистов не считают программистами

Разбираем, почему 1С-программистов не считают «настоящими» программистами: причины предубеждения, чем отличается разработка на 1С и как оценивать компетенции специалиста.

В профессиональных сообществах регулярно возникает спор: является ли 1С-разработчик «настоящим» программистом. Скептики указывают на встроенный язык, заточенный под одну платформу, визуальные конструкторы и готовые объекты метаданных, которые якобы «пишут код за специалиста». Сторонники 1С возражают: типовые задачи учёта требуют глубокого понимания предметной области, оптимизации запросов и архитектуры, а это ничуть не проще классической разработки.

Истоки предубеждения лежат не столько в технологиях, сколько в истории рынка. Платформа 1С массово распространилась в России и странах СНГ, порог входа в профессию долгое время был низким, а значительная часть работы сводилась к доработке типовых конфигураций без глубоких изменений. Отсюда устойчивый образ «кнопконажимателя», который обновляет конфигурации и правит печатные формы.

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

Откуда взялся стереотип о «ненастоящих» программистах

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

Второй фактор — визуальная разработка. Конфигуратор позволяет создавать справочники, документы и регистры через диалоговые окна, не написав ни строки кода. Для программиста, привыкшего к C++ или Java, это выглядит как «конструктор», хотя за визуальным описанием объектов стоит вполне реальная логика проведения, блокировок и транзакций.

Третий фактор — закрытость экосистемы. Встроенный язык 1С не используется нигде, кроме платформы, поэтому со стороны он выглядит «игрушечным». Русскоязычный синтаксис усиливает предвзятость: в индустрии, где английский — стандарт, код вида «Если Условие Тогда» воспринимается как упрощение для новичков.

Порог входаНизкий для базовых доработок

Много специалистов работает на уровне поддержки типовых конфигураций

Визуальный конфигураторОбъекты создаются без кода

Со стороны выглядит как конструктор, а не разработка

Закрытая платформаЯзык применим только в 1С

Навыки не переносятся напрямую в другие экосистемы

Русский синтаксисКлючевые слова на русском

Воспринимается как упрощение, хотя семантика полноценная

Чем разработка на 1С отличается от классического программирования

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

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

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

В каких задачах 1С-разработчик реально программирует

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

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

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

Уровни работы 1С-специалиста

Поддержка типовой конфигурации

Обновления, мелкие доработки, печатные формы. Программирования минимум, именно этот уровень чаще всего видят со стороны

Доработка и отчёты

Собственные запросы, СКД, расширения. Требуется понимание модели данных и языка запросов

Проектирование и интеграции

Собственные подсистемы, обмены, оптимизация под нагрузкой. Полноценная инженерная работа

Почему предметная область важнее синтаксиса

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

Именно поэтому переход «из 1С в нормальное программирование» и обратно встречается в обе стороны. Разработчик с сильной алгоритмической базой осваивает платформу быстро, но без погружения в учёт остаётся исполнителем простых доработок. И наоборот: знание учёта без инженерных навыков даёт специалиста, который пишет работающий, но неподдерживаемый код.

Как оценить реальный уровень 1С-разработчика

Формальный признак «умеет обновлять конфигурацию» ничего не говорит о квалификации. Содержательные вопросы проверяют другое: как специалист объясняет устройство регистров и виртуальных таблиц, умеет ли читать запрос и находить в нём причины медленной работы, понимает ли разницу между изменением типовой конфигурации и доработкой через расширение.

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

Контрольные точки

Как проверить компетенцию

Работа с типовыми конфигурациями
Норма

Использует расширения, сохраняет поддержку

Тревожный признак

Правит типовые модули напрямую, обновления «ломаются»

Запросы
Норма

Временные таблицы, пакетные запросы, понимает план запроса

Тревожный признак

Запросы в цикле, выборка всей таблицы с фильтрацией в коде

Архитектура
Норма

Обосновывает выбор регистров, измерений, периодичности

Тревожный признак

Копирует чужие решения без понимания последствий

Код
Норма

Структурированные модули, обработка ошибок, комментарии по делу

Тревожный признак

Копипаст, глобальные переменные, код без обработки исключений

Типичные ошибки, которые подпитывают стереотип

Часть репутационных проблем профессия создала себе сама. Модификация типовых конфигураций «в лоб» приводит к невозможности штатного обновления, и клиент годами сидит на устаревшем релизе. Запросы в цикле и обращения к базе из формы делают программу непригодной при росте объёма данных. Отсутствие обработки ошибок в обменах приводит к потере или дублированию данных.

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

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

Как развиваться, чтобы выйти за рамки стереотипа

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

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

Порядок профессионального роста
  1. 1
    Закрепите базу: язык, запросы, СКД, расширения — без правки типовых модулей
  2. 2
    Освойте оптимизацию: план запроса, временные таблицы, блокировки, технологический журнал
  3. 3
    Добавьте интеграции: HTTP-сервисы, JSON, обмены с внешними системами
  4. 4
    Изучите смежные области: SQL, администрирование кластера, основы архитектуры
  5. 5
    Проверяйте результат на реальных объёмах данных, а не только на тестовой базе
Итог

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

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

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

Можно ли после 1С перейти в классическую разработку?

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

Правда ли, что язык 1С — «не язык программирования»?

Нет. Встроенный язык 1С — полноценный язык с типами данных, коллекциями, исключениями, модульной структурой и событийной моделью. Его ограничение — применимость только внутри платформы, но это свойство экосистемы, а не признак «ненастоящести».

Почему в 1С код можно писать по-русски?

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

Что важнее для 1С-разработчика: знать язык или знать учёт?

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

Как отличить хорошего 1С-разработчика при найме?

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

Правда ли, что 1С-разработчики зарабатывают меньше других программистов?

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