Разработка и Конфигурация · 11 мин
Почему 1С — это не программирование: правда и мифы
Почему работу в 1С часто не считают программированием, чем конфигурирование отличается от разработки и что на самом деле делает 1С-программист.
Фраза «1С — это не программирование» встречается на форумах, в спорах айтишников и даже в вакансиях. За ней стоит реальное наблюдение: значительная часть работы с 1С не похожа на классическую разработку на Python, Java или C++. Пользователь кликает мышью, бухгалтер заполняет документы, внедренец настраивает типовую конфигурацию — и всё это называется «работой в 1С», хотя к написанию кода отношения не имеет.
При этом существует и другая сторона: встроенный язык 1С, запросы, СКД, расширения и интеграции требуют тех же навыков, что и любая промышленная разработка — алгоритмического мышления, понимания структур данных, отладки и тестирования. Поэтому утверждение «1С — не программирование» одновременно и верно, и ложно: всё зависит от того, о какой именно роли идёт речь.
Разберём, откуда взялся этот стереотип, чем конфигурирование отличается от разработки, какие задачи в 1С действительно являются программированием и как понять, куда расти специалисту, который хочет писать код, а не кликать по настройкам.
Откуда взялся миф «1С — это не программирование»
Главная причина — смешение ролей. Словом «1С» называют и платформу, и прикладные решения (Бухгалтерию, Управление торговлей, ЗУП), и профессию. Когда человек говорит «я работаю в 1С», он может иметь в виду ввод первичных документов, настройку прав доступа или разработку сложного обмена данными. Внешнему наблюдателю всё это выглядит одинаково — как «тыканье мышкой в жёлтой программе».
Вторая причина — визуальная парадигма платформы. Значительную часть прикладного решения в 1С можно собрать в конфигураторе без единой строки кода: объявить справочники, документы, регистры, нарисовать формы, настроить права. Платформа сама генерирует таблицы базы данных, интерфейс и стандартные команды. Со стороны это выглядит как конструктор, а не как разработка.
Третья причина — предметная область. 1С-специалист обязан понимать учёт: проводки, НДС, резервы, расчёт себестоимости. Из-за этого его часто воспринимают как «бухгалтера с компьютером», а не как инженера. В классическом ИТ-сообществе знание предметной области ценится меньше, чем знание алгоритмов, отсюда и снисходительное отношение.
Чем конфигурирование отличается от программирования
Конфигурирование — это работа в рамках возможностей, которые платформа предоставляет «из коробки». Вы добавляете справочник, ставите галочки в свойствах, выбираете типы реквизитов из списка. Логику при этом реализует сама платформа: она знает, как хранить документ, как проводить его по регистрам, как строить форму списка.
Программирование начинается там, где стандартного поведения недостаточно. Нужно проверить заполнение реквизита по нестандартному правилу — пишется обработчик события. Нужно рассчитать скидку по сложной формуле — пишется функция. Нужно получить данные из внешнего сервиса — пишется код HTTP-запроса, обработка ответа, обработка ошибок. Это уже алгоритмическая работа, ничем принципиально не отличающаяся от разработки на других языках.
Практическая граница проста: если задача решается настройкой — это конфигурирование; если требуется описать логику, которой нет в платформе, — это программирование. В реальных проектах специалист постоянно переходит эту границу туда и обратно в течение одного рабочего дня.
Конфигурирование и разработка
Настройка типовых механизмов: объекты, права, формы, типовые отчёты. Не требует кода, но ограничено возможностями платформы и конфигурации.
Обработчики событий, запросы, СКД, расширения, интеграции. Требует алгоритмического мышления, отладки и понимания архитектуры решения.
Что в 1С всё-таки является программированием
Встроенный язык 1С — полноценный язык высокого уровня с процедурами, функциями, коллекциями (массивы, структуры, таблицы значений), обработкой исключений и объектной моделью прикладных объектов. Русскоязычный синтаксис не делает его «ненастоящим»: логика построения алгоритмов идентична, а английский вариант синтаксиса тоже существует.
Язык запросов 1С — декларативный язык, близкий к SQL, с соединениями, группировками, виртуальными таблицами и итогами. Написание эффективного запроса к большой базе требует понимания индексов, планов выполнения и особенностей СУБД — это классическая компетенция backend-разработчика.
Отдельный пласт — интеграции: обмены через HTTP-сервисы, REST API, веб-сервисы, файловые обмены, очереди сообщений. Здесь 1С-разработчик решает те же задачи, что и любой интеграционный инженер: сериализация данных, идемпотентность, повторные попытки, журналирование ошибок.
Функция РассчитатьСкидку(СуммаДокумента) Экспорт
Если СуммаДокумента >= 100000 Тогда
Возврат Окр(СуммаДокумента <em> 0.1, 2);
ИначеЕсли СуммаДокумента >= 50000 Тогда
Возврат Окр(СуммаДокумента </em> 0.05, 2);
Иначе
Возврат 0;
КонецЕсли;
КонецФункцииПочему 1С-разработку недооценивают в ИТ-сообществе
Одна из причин — закрытость экосистемы. Платформа проприетарная, код привязан к конкретной конфигурации, а привычных инструментов вроде Git, CI/CD и юнит-тестов долгое время не было в стандартной поставке. Для разработчика из «открытого» мира это выглядит как технологическое отставание, хотя сейчас существуют EDT, внешние отчёты и обработки в виде файлов, практики совместной разработки через хранилище и расширения.
Вторая причина — низкий порог входа на старте. Чтобы «что-то поправить» в типовой конфигурации, не нужно глубокое образование: многие начинают с копирования чужих фрагментов кода. Такой код часто плох: запросы в циклах, обращения к базе в транзакции проведения, игнорирование блокировок. Репутацию платформы формируют именно такие примеры, хотя проблема — в культуре разработки, а не в инструменте.
Третья причина — русскоязычный синтаксис. Для части сообщества он служит маркером «несерьёзности», хотя на выразительность языка и качество алгоритмов локализация ключевых слов не влияет.
Какие навыки программирования нужны 1С-специалисту
Базовый минимум совпадает с любой разработкой: переменные, ветвления, циклы, функции, работа с коллекциями, понимание сложности алгоритмов. Поверх этого накладывается специфика платформы: объектная модель документов и регистров, транзакции и блокировки, механизмы проведения, система компоновки данных.
Для уверенной работы нужно понимать, как платформа взаимодействует с СУБД: что такое индекс, почему запрос с условием по невычисляемому полю может сканировать всю таблицу, чем управляемые блокировки отличаются от автоматических. Эти знания напрямую влияют на производительность решения в больших базах.
Наконец, важна инженерная дисциплина: читаемый код, осмысленные имена, комментарии там, где логика неочевидна, отказ от «магических чисел», тестирование доработок на копии базы перед переносом в рабочую среду.
- 1Освойте конфигуратор: объекты метаданных, формы, права — без кода.
- 2Изучите встроенный язык: процедуры, функции, коллекции, обработчики событий.
- 3Освойте язык запросов и СКД — это основа отчётов и выборок.
- 4Научитесь делать доработки через расширения, не трогая типовую конфигурацию.
- 5Освойте отладку, замеры производительности и работу с блокировками.
- 6Проверьте результат: доработка должна пережить обновление конфигурации без ручного вмешательства.
Когда осторожность важнее амбиций
Главный риск самостоятельных доработок — повреждение данных в рабочей базе. Код, который напрямую изменяет регистры, обходит проведение или массово перезаписывает документы, способен разрушить учёт так, что восстановление потребует отката к резервной копии и потери части данных.
Второй риск — блокировки. Неправильно написанная обработка может надолго заблокировать таблицы, остановив работу всех пользователей. В клиент-серверном варианте это заметно сразу: сеансы «висят», документы не проводятся.
Правило безопасной работы простое: любая доработка сначала создаётся и тестируется на копии базы, переносится в рабочую среду только после проверки, а перед обновлением конфигурации всегда делается резервная копия. Если задача затрагивает регистры бухгалтерии или расчёт зарплаты — привлекайте специалиста с опытом именно в этой подсистеме.
Как проверить результат доработки
Доработка в расширении, обновление проходит штатно
Изменены типовые модули, обновление требует ручного сравнения
Операция выполняется за приемлемое время без роста нагрузки на СУБД
Запросы в циклах, длительные блокировки, жалобы пользователей
Проведение документов и итоги регистров не изменились неожиданно
Расхождения в отчётах после работы обработки
Так программирование это или нет: итоговая граница
Честный ответ звучит так: «1С» — это не одна деятельность, а спектр. Ввод данных и настройка типовых механизмов — не программирование. Доработка логики, запросы, отчёты на СКД, интеграции и оптимизация производительности — программирование в полном смысле слова, просто в специфической экосистеме с собственным языком и предметной областью.
Для карьеры это означает практический вывод: если вас привлекает именно разработка, растите в сторону встроенного языка, запросов, архитектуры конфигураций и интеграций, а не ограничивайтесь настройкой. Рынок разделяет эти роли: «консультант-настройщик» и «разработчик» — разные позиции с разным уровнем требований и оплаты.
Что важно запомнить
Миф «1С — не программирование» рождается из смешения ролей: настройка типовых решений действительно не требует кода. Но доработка на встроенном языке, запросы, СКД и интеграции — это полноценная разработка, требующая алгоритмических навыков и инженерной дисциплины. Границу определяет не инструмент, а характер задачи.
Частые вопросы
Можно ли называть 1С-специалиста программистом?
Зависит от его задач. Если человек пишет обработчики, запросы, отчёты и интеграции — да, это разработчик. Если он только настраивает типовую конфигурацию и консультирует пользователей, корректнее называть его консультантом или специалистом по внедрению.
Пригодятся ли навыки 1С при переходе в другую разработку?
Частично. Переносятся алгоритмическое мышление, работа с запросами и понимание баз данных, транзакций и интеграций. Сам встроенный язык и объектная модель платформы за пределами экосистемы не используются, поэтому новый язык и стек придётся осваивать отдельно.
Почему синтаксис 1С на русском — это плохо?
Технически это не недостаток: на логику и качество кода язык ключевых слов не влияет, существует и английский вариант синтаксиса. Минус практический — код сложнее обсуждать в международном сообществе и переносить примеры из других языков.
Можно ли дорабатывать 1С вообще без кода?
Частично: добавить реквизиты, настроить формы, права и простые отчёты через СКД можно без программирования. Но любая нестандартная бизнес-логика — проверки, расчёты, обмены — потребует кода, поэтому серьёзные проекты без разработки не обходятся.
Что сложнее: 1С или «обычное» программирование?
Сравнивать некорректно: сложность определяется задачей. В 1С платформа берёт на себя инфраструктуру, но требует глубокого знания учёта и внутренних механизмов конфигурации. В классической разработке больше свободы, но и больше ответственности за архитектуру, инфраструктуру и развёртывание.
С чего начать, если хочу стать именно 1С-разработчиком?
Начните с конфигуратора и простых доработок на копии учебной базы: обработчики событий форм, затем запросы и СКД, далее расширения. Параллельно изучайте учётные механизмы той конфигурации, с которой работаете, — без понимания предметной области качественный код в 1С написать невозможно.