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

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

Почему 1С — это не программирование: правда и мифы

Почему работу в 1С часто не считают программированием, чем конфигурирование отличается от разработки и что на самом деле делает 1С-программист.

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

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

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

Откуда взялся миф «1С — это не программирование»

Главная причина — смешение ролей. Словом «1С» называют и платформу, и прикладные решения (Бухгалтерию, Управление торговлей, ЗУП), и профессию. Когда человек говорит «я работаю в 1С», он может иметь в виду ввод первичных документов, настройку прав доступа или разработку сложного обмена данными. Внешнему наблюдателю всё это выглядит одинаково — как «тыканье мышкой в жёлтой программе».

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

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

Чем конфигурирование отличается от программирования

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

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

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

Конфигурирование и разработка

Конфигурирование

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

Программирование в 1С

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

Что в 1С всё-таки является программированием

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

Язык запросов 1С — декларативный язык, близкий к SQL, с соединениями, группировками, виртуальными таблицами и итогами. Написание эффективного запроса к большой базе требует понимания индексов, планов выполнения и особенностей СУБД — это классическая компетенция backend-разработчика.

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

bsl
Функция РассчитатьСкидку(СуммаДокумента) Экспорт
	Если СуммаДокумента >= 100000 Тогда
		Возврат Окр(СуммаДокумента <em> 0.1, 2);
	ИначеЕсли СуммаДокумента >= 50000 Тогда
		Возврат Окр(СуммаДокумента </em> 0.05, 2);
	Иначе
		Возврат 0;
	КонецЕсли;
КонецФункции

Почему 1С-разработку недооценивают в ИТ-сообществе

Одна из причин — закрытость экосистемы. Платформа проприетарная, код привязан к конкретной конфигурации, а привычных инструментов вроде Git, CI/CD и юнит-тестов долгое время не было в стандартной поставке. Для разработчика из «открытого» мира это выглядит как технологическое отставание, хотя сейчас существуют EDT, внешние отчёты и обработки в виде файлов, практики совместной разработки через хранилище и расширения.

Вторая причина — низкий порог входа на старте. Чтобы «что-то поправить» в типовой конфигурации, не нужно глубокое образование: многие начинают с копирования чужих фрагментов кода. Такой код часто плох: запросы в циклах, обращения к базе в транзакции проведения, игнорирование блокировок. Репутацию платформы формируют именно такие примеры, хотя проблема — в культуре разработки, а не в инструменте.

Третья причина — русскоязычный синтаксис. Для части сообщества он служит маркером «несерьёзности», хотя на выразительность языка и качество алгоритмов локализация ключевых слов не влияет.

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

Какие навыки программирования нужны 1С-специалисту

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

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

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

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

Когда осторожность важнее амбиций

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

Второй риск — блокировки. Неправильно написанная обработка может надолго заблокировать таблицы, остановив работу всех пользователей. В клиент-серверном варианте это заметно сразу: сеансы «висят», документы не проводятся.

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

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

Как проверить результат доработки

Обновление конфигурации
Норма

Доработка в расширении, обновление проходит штатно

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

Изменены типовые модули, обновление требует ручного сравнения

Производительность
Норма

Операция выполняется за приемлемое время без роста нагрузки на СУБД

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

Запросы в циклах, длительные блокировки, жалобы пользователей

Целостность данных
Норма

Проведение документов и итоги регистров не изменились неожиданно

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

Расхождения в отчётах после работы обработки

Так программирование это или нет: итоговая граница

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

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

Итог

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

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

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

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

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

Пригодятся ли навыки 1С при переходе в другую разработку?

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

Почему синтаксис 1С на русском — это плохо?

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

Можно ли дорабатывать 1С вообще без кода?

Частично: добавить реквизиты, настроить формы, права и простые отчёты через СКД можно без программирования. Но любая нестандартная бизнес-логика — проверки, расчёты, обмены — потребует кода, поэтому серьёзные проекты без разработки не обходятся.

Что сложнее: 1С или «обычное» программирование?

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

С чего начать, если хочу стать именно 1С-разработчиком?

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