Разработка и Конфигурация · 10 мин
На чём пишут 1С-программисты: языки и инструменты
Разбираем, на каких языках пишут 1С-программисты: встроенный язык 1С, запросы, внешние компоненты, интеграции и инструменты разработчика.
Основной инструмент 1С-программиста — встроенный язык платформы «1С:Предприятие», который часто называют просто «язык 1С» или «код на встроенном языке». Это предметно-ориентированный язык, созданный специально для описания бизнес-логики: проведения документов, расчёта зарплаты, формирования отчётов. Он не похож на языки общего назначения вроде Python или C#, потому что оперирует не абстрактными структурами, а объектами учёта — справочниками, документами, регистрами.
При этом профессия не ограничивается одним языком. На практике разработчик 1С ежедневно работает с языком запросов (диалектом SQL), механизмом СКД для отчётов, а при интеграциях — с веб-сервисами, JSON, HTTP-запросами и внешними компонентами на C++ или .NET. Полный стек зависит от задач компании: где-то достаточно конфигуратора, а где-то требуется связка с сайтом, складским оборудованием или банковскими системами.
Ниже разберём каждый инструмент: что именно пишут на нём, когда он нужен и с чего начинать изучение.
Встроенный язык 1С — основа профессии
Встроенный язык — это то, что имеют в виду, когда говорят «программировать в 1С». Код пишется в конфигураторе внутри модулей: модулей объектов, форм, общих модулей, модулей менеджеров. Типичная задача — обработчик события, например «ПриЗаписи» документа, где разработчик проверяет заполнение реквизитов, рассчитывает суммы и формирует движения по регистрам.
Характерная особенность — двуязычный синтаксис. Один и тот же код можно писать на русском (Если ... Тогда ... КонецЕсли;) или на английском (If ... Then ... EndIf;). В типовых конфигурациях и большинстве российских проектов используется русский синтаксис, английский чаще встречается в международных разработках. Компилятор воспринимает оба варианта и даже их смешение, хотя смешивать стили в одном проекте считается дурным тоном.
Язык не требует ручного управления памятью и не содержит указателей — это снижает порог входа. Зато он жёстко привязан к объектной модели платформы: нельзя «просто написать функцию», нужно понимать, что такое регистр сведений, виртуальная таблица, менеджер записи. Поэтому обучение идёт не от синтаксиса, а от предметной области.
Язык запросов 1С и работа с данными
Второй обязательный язык — язык запросов 1С. Он похож на SQL, но работает поверх объектной модели платформы: вместо физических таблиц базы данных разработчик обращается к «Справочник.Номенклатура» или «РегистрНакопления.Продажи.Обороты». Платформа сама транслирует запрос в диалект конкретной СУБД — MS SQL Server, PostgreSQL, Oracle или IBM Db2.
Запросы используются повсюду: в отчётах, в динамических списках, при подборе данных для обработок, в механизмах проведения. Грамотно написанный запрос — главный инструмент оптимизации: выборка одним запросом с соединениями работает на порядки быстрее, чем перебор данных в цикле с обращением к базе на каждой итерации.
Типичная ошибка новичков — получать выборку и внутри цикла обращаться к реквизитам через точку, что порождает десятки неявных запросов к базе. Признак проблемы: отчёт или проведение документа «тормозит» пропорционально объёму данных. Проверяется это замером производительности в конфигураторе.
СКД: на чём делают отчёты
Система компоновки данных (СКД) — отдельный механизм платформы для построения отчётов без ручного программирования интерфейса. Разработчик описывает источник данных (запрос или набор данных-объект), ресурсы, группировки и настройки, а платформа сама строит форму отчёта, отборы и расшифровки.
Строго говоря, СКД — не язык программирования, а декларативный механизм: вы «настраиваете» отчёт, а не пишете его. Но в сложных случаях приходится дополнять его кодом на встроенном языке — например, программно формировать настройки или обрабатывать результат компоновки. Поэтому вакансии часто требуют «уверенное владение СКД» отдельной строкой.
Альтернатива СКД — старый способ: запрос плюс табличный документ, заполняемый вручную из кода. Он ещё встречается в унаследованных конфигурациях и оправдан для печатных форм со сложной структурой, но для аналитических отчётов почти всегда проигрывает СКД по гибкости и скорости разработки.
Расширения, внешние обработки и печатные формы
Не всякая доработка требует изменения конфигурации. Для типовых решений на поддержке принято использовать расширения конфигурации — механизм, позволяющий добавить свои процедуры, формы и роли поверх типового кода, не снимая его с поддержки. Это тот же встроенный язык, но с ограничениями: нельзя менять состав реквизитов типовых объектов произвольно, часть методов недоступна.
Внешние обработки и отчёты — файлы .epf и .erf, которые подключаются к базе без изменения конфигурации. На них обычно делают разовые загрузки данных, сервисные утилиты, дополнительные печатные формы. Печатная форма — это макет табличного документа плюс код заполнения, никаких отдельных языков здесь нет.
Куда помещать доработку
Подходит для глубокой переработки под нестандартные процессы. Ограничение: усложняет обновление типового решения.
Оптимально для добавления отчётов, обработчиков и печатных форм к типовой конфигурации. Ограничение: не всё можно переопределить.
Для разовых операций, загрузок и дополнительных печатных форм. Ограничение: не может содержать собственных объектов метаданных.
Интеграции: HTTP, JSON, веб-сервисы и SQL
Современный 1С-программист регулярно выходит за пределы платформы. Обмен с сайтом, маркетплейсами, банками и CRM чаще всего строится на HTTP-запросах и формате JSON — платформа имеет встроенные объекты HTTPСоединение, HTTPЗапрос и средства чтения/записи JSON, поэтому сам код остаётся на встроенном языке, но разработчику нужно понимать REST-подход, форматы авторизации и структуру API внешней системы.
Встречаются и классические веб-сервисы на SOAP, файловые обмены через XML и CSV, а также прямые подключения к внешним базам данных. Для последних полезно знание «чистого» SQL: платформа позволяет выполнять запросы к внешним источникам данных, и там уже работают диалекты конкретных СУБД, а не язык запросов 1С.
При проектировании интеграции важно сразу закладывать обработку ошибок: таймауты, повторные отправки, журналирование обменов. Обмен, который «иногда молча не выгружает заказы», — типичный результат кода без контроля ответов внешней системы.
- 1Получите документацию API внешней системы и тестовый доступ
- 2Проверьте запросы внешним инструментом (например, Postman), прежде чем писать код в 1С
- 3Реализуйте отправку запроса через HTTPСоединение с обработкой кодов ответа
- 4Добавьте журналирование: что отправлено, что получено, когда
- 5Протестируйте на ошибочных сценариях: недоступность сервиса, неверный токен, пустой ответ
Внешние компоненты: где нужны C++, C# и Java
Когда возможностей платформы не хватает — работа со сканерами штрих-кодов, кассовым оборудованием, криптографией, специфическими протоколами — применяют внешние компоненты по технологии Native API или COM. Их пишут на C++, C# или Java, а из 1С компонента вызывается как объект с методами.
Разработка внешних компонент — отдельная ниша, которой занимается меньшинство 1С-программистов. Чаще компоненту берут готовую (от поставщика оборудования или из состава типовой конфигурации) и только подключают. Но понимание механизма подключения и регистрации компонент в базе нужно любому разработчику, работающему с торговым оборудованием.
Отдельно стоит EDT (1C:Enterprise Development Tools) — среда разработки на базе Eclipse, альтернатива классическому конфигуратору. Язык остаётся тем же встроенным, но меняется процесс: контроль версий через Git, статический анализ кода, командная разработка. Крупные проекты всё чаще требуют именно EDT.
Что учить и в каком порядке
Рациональная последовательность для входа в профессию выглядит так: сначала объектная модель платформы (справочники, документы, регистры), затем встроенный язык в модулях объектов и форм, далее язык запросов и СКД, после этого — расширения и механизмы интеграции. Такой порядок соответствует реальному распределению задач в большинстве вакансий.
Знание других языков — конкурентное преимущество, но не стартовая точка. SQL пригодится для интеграций и диагностики производительности, основы JavaScript и HTML — для работы с веб-клиентом и HTML-публикациями, C# или C++ — только если вы целитесь в разработку компонент. Пытаться учить их до освоения платформы — частая стратегическая ошибка.
Что важно запомнить
Ядро профессии — встроенный язык 1С, язык запросов и СКД. Интеграции требуют понимания HTTP и JSON, внешние компоненты пишутся на C++/C#/Java, но это смежная ниша. Учиться стоит от объектной модели платформы, а не от синтаксиса.
Частые вопросы
1С — это вообще настоящий язык программирования?
Да. Встроенный язык 1С — полноценный язык с переменными, циклами, функциями, обработкой исключений и объектной моделью. Его отличие от языков общего назначения в предметной направленности: он заточен под учётные задачи и существует только внутри платформы «1С:Предприятие».
Нужно ли знать английский язык 1С-программисту?
Для чтения документации и разработки — желательно: значительная часть технических материалов и описаний API внешних сервисов написана на английском. Сам код в российских проектах обычно пишется на русском синтаксисе, поэтому английский нужен как вспомогательный навык, а не как требование к написанию кода.
Можно ли писать для 1С на Python или JavaScript?
Напрямую внутри платформы — нет, бизнес-логика пишется только на встроенном языке. Но Python или JavaScript могут использоваться во внешних системах, с которыми 1С обменивается данными: например, сервис на Python принимает выгрузку из 1С и обрабатывает её. В этом случае 1С-разработчик отвечает только за свою сторону обмена.
Что спрашивают на собеседовании 1С-программиста?
Чаще всего — язык запросов (соединения, виртуальные таблицы, пакетные запросы), механизмы платформы (проведение, регистры, блокировки), СКД и практические задачи по доработке типовых конфигураций. Вопросы про другие языки программирования поднимаются редко и только если вакансия связана с интеграциями или разработкой компонент.
Чем конфигуратор отличается от EDT и что выбрать новичку?
Конфигуратор — классическая среда разработки, встроенная в платформу: быстрый старт, минимум настройки. EDT — среда на базе Eclipse с поддержкой Git и статического анализа, ориентированная на командную разработку. Новичку проще начать с конфигуратора, а к EDT переходить, когда появляется работа в команде или требование работодателя.
Сколько времени нужно, чтобы начать писать на 1С?
Простые доработки — обработчики, печатные формы, несложные отчёты — реально освоить за несколько месяцев регулярной практики на учебной базе. Уверенное владение запросами, СКД и механизмами проведения, достаточное для коммерческой разработки, обычно требует от полугода до года работы с реальными задачами.