Разработка и Конфигурация · 9 мин
На чем программируют 1С-программисты
Разбираем, на каких языках и в каких средах работают 1С-программисты: встроенный язык 1С, запросы, внешние компоненты, интеграции и выбор инструментов под задачу.
Основной инструмент 1С-программиста — встроенный язык платформы «1С:Предприятие», который часто называют «языком 1С» или «встроенным языком». Он похож на смесь BASIC и Pascal, поддерживает русский и английский синтаксис и заточен под бизнес-логику: документы, справочники, регистры, проведение и отчёты. Весь код пишется в конфигураторе — штатной среде разработки платформы.
Кроме встроенного языка, в работе постоянно используется язык запросов 1С — декларативный язык, похожий на SQL, для выборки данных из базы. Без него не пишется ни один отчёт и ни одна обработка, работающая с большими объёмами данных. Дополнительно применяется язык выражений системы компоновки данных (СКД) — именно на нём строится большинство современных отчётов.
Реальные проекты редко ограничиваются одной платформой. Для интеграций с внешними системами 1С-разработчику приходится понимать SQL-диалекты (MS SQL Server, PostgreSQL), форматы обмена (XML, JSON), веб-технологии (HTTP, REST, SOAP) и иногда писать вспомогательный код на Python, C# или JavaScript. Поэтому ответ «на чём программируют» зависит от задачи: автоматизация учёта — это встроенный язык и запросы, интеграция — плюс внешние технологии.
Встроенный язык платформы — основа работы
Встроенный язык 1С — высокоуровневый предметно-ориентированный язык. В нём нет классического ООП с наследованием: вместо классов разработчик оперирует объектами конфигурации — справочниками, документами, регистрами сведений и накопления. Типичный код выглядит как последовательность манипуляций с этими объектами: создание документа, заполнение табличной части, проведение, запись в регистры.
Ключевая особенность — двуязычие синтаксиса. Один и тот же оператор можно написать по-русски («Если ... Тогда») или по-английски («If ... Then»), и платформа одинаково поймёт оба варианта. В типовых конфигурациях и корпоративной разработке принят русский синтаксис, английский чаще встречается в международных проектах и примере кода из документации.
Код размещается в модулях: модулях объектов, форм, общих модулях, модулях менеджеров. Важно понимать контекст исполнения — клиент или сервер. Директивы компиляции (&НаКлиенте, &НаСервере, &НаСервереБезКонтекста) определяют, где выполнится процедура, и ошибка в выборе контекста — одна из самых частых причин неработающего кода у начинающих.
Язык запросов и СКД: работа с данными
Язык запросов 1С напоминает SQL, но работает не с физическими таблицами базы данных, а с логическими объектами конфигурации. Разработчик пишет «ВЫБРАТЬ ... ИЗ Документ.РеализацияТоваров», а платформа сама транслирует это в запросы к СУБД. Поддерживаются соединения, группировки, итоги, иерархия, временные таблицы и пакетные запросы.
Типичная ошибка новичков — выбирать данные запросом, а потом обходить результат в цикле и дозапрашивать детали по каждой строке. Это порождает проблему «запросов в цикле» и резко просаживает производительность. Правильный подход — один запрос с соединениями, который забирает всё необходимое за одно обращение к базе.
СКД (система компоновки данных) — надстройка, позволяющая строить отчёты декларативно: разработчик описывает запрос и настройки, а пользователь сам меняет отборы, группировки и поля без доработки кода. В современных типовых конфигурациях почти все отчёты сделаны на СКД, поэтому без её освоения полноценная разработка отчётности невозможна.
Конфигуратор и EDT: в каких средах пишут код
Конфигуратор — штатная среда разработки, входящая в поставку платформы. В нём редактируют структуру метаданных, модули, формы, макеты и выполняют отладку. Для большинства задач доработки типовых конфигураций конфигуратора достаточно, и именно его использует большинство 1С-программистов.
1C:Enterprise Development Tools (EDT) — альтернативная среда на базе Eclipse. Она ориентирована на командную разработку крупных проектов: встроенная интеграция с Git, статический анализ кода, работа с несколькими конфигурациями одновременно. EDT бесплатна для лицензированных пользователей, но требовательнее к ресурсам и имеет более крутую кривую входа.
Выбор среды зависит от масштаба. Для доработки одной базы и коротких задач удобнее конфигуратор. Для проекта с несколькими разработчиками, код-ревью и версионированием практически обязателен EDT в связке с Git.
Сравнение сред разработки
Подходит для индивидуальной разработки и доработки типовых; ограничение — слабая поддержка командной работы и версионирования
Подходит для командных проектов с Git и код-ревью; ограничение — выше порог входа и требования к железу
Внешние языки и технологии в проектах 1С
Когда возможностей платформы не хватает, подключают внешние инструменты. Самый распространённый сценарий — прямая работа с СУБД: административные выборки, анализ блокировок и оптимизация выполняются на SQL (T-SQL для MS SQL Server, PL/pgSQL для PostgreSQL). Важно: изменять данные напрямую в СУБД в обход платформы нельзя — это нарушает целостность и лишает поддержки.
Для интеграций используют HTTP-сервисы, веб-сервисы (SOAP), форматы XML и JSON, а также брокеры сообщений вроде RabbitMQ и Kafka. Код обмена пишется на встроенном языке, но понимание REST-принципов, кодов ответов HTTP и структуры JSON обязательно.
Внешние компоненты по технологии Native API пишут на C++ — так подключают торговое оборудование, сканеры, специфические драйверы. Вспомогательные скрипты для выгрузок, конвертации данных и автоматизации рутины нередко делают на Python или PowerShell. Для мобильных и веб-клиентских доработок встречается JavaScript в расширениях веб-интерфейса.
Расширения и доработка типовых конфигураций
Современный подход к доработке типовых решений — расширения конфигурации. Код пишется на том же встроенном языке, но в отдельном слое, который накладывается на типовую конфигурацию без изменения её модулей. Это позволяет обновлять типовое решение без потери доработок.
В расширениях действуют ограничения: нельзя менять состав объектов произвольно, часть методов недоступна для заимствования, есть рамки по изменению ролей и подписок. Поэтому перед началом работы оценивают, решается ли задача расширением; если нет — конфигурацию снимают с полной поддержки, что усложняет дальнейшие обновления.
Как выбрать способ доработки
Что учить и в каком порядке
Рациональная последовательность освоения: сначала встроенный язык и объектная модель (справочники, документы, регистры), затем язык запросов, после этого СКД и управляемые формы. Дальше — механизмы обмена, расширения и основы работы с СУБД. Такой порядок даёт работоспособный навык уже на раннем этапе: связка «встроенный язык + запросы» закрывает большинство задач доработки.
Проверка результата обучения проста: вы должны уметь написать обработку, которая выбирает данные запросом, обходит результат и создаёт документы с проведением, плюс отчёт на СКД с настраиваемыми отборами. Если эти две задачи выполняются уверенно — базовый стек 1С-разработчика освоен.
- 1Изучите встроенный язык и объекты конфигурации: справочники, документы, регистры
- 2Освойте язык запросов: соединения, итоги, временные таблицы
- 3Научитесь строить отчёты на СКД и работать с управляемыми формами
- 4Разберитесь в контекстах клиент/сервер и отладке
- 5Изучите расширения конфигурации и механизмы обмена (XML, JSON, HTTP)
- 6Добавьте основы SQL и Git для командной работы
Отдельно стоит упомянуть инструменты качества: сонар-плагины и проверки EDT (стандарты разработки фирмы «1С»), системы хранения конфигураций и Git. Они не являются языками, но в профессиональной разработке используются ежедневно и часто входят в требования вакансий.
Что важно запомнить
Ядро профессии — встроенный язык платформы и язык запросов; отчёты строятся на СКД, код пишется в конфигураторе или EDT, а SQL, HTTP и внешние языки подключаются по мере необходимости для интеграций и оптимизации.
Частые вопросы
Нужно ли знать другие языки программирования, чтобы стать 1С-разработчиком?
Нет, стартовать можно с нуля: встроенный язык и язык запросов осваиваются самостоятельно. Однако базовое понимание SQL и принципов клиент-серверной работы заметно ускоряет рост и расширяет круг доступных задач.
Правда ли, что в 1С код пишут на русском языке?
Да, синтаксис поддерживает русские ключевые слова, и в типовых конфигурациях используется именно русский вариант. Английский синтаксис тоже доступен, и платформа понимает оба, но смешивать их в одном проекте не принято.
Чем язык запросов 1С отличается от SQL?
Запросы 1С работают с объектами конфигурации, а не с физическими таблицами, и не поддерживают изменение данных — только выборку. За синтаксисом скрывается трансляция в SQL конкретной СУБД, которую выполняет платформа.
Можно ли писать для 1С на Python или C#?
Напрямую модули конфигурации на этих языках не пишутся. Python и C# применяются для вспомогательных сервисов, интеграций и внешних компонент (последние — чаще на C++ по технологии Native API), которые взаимодействуют с 1С через HTTP, файлы обмена или COM.
Что выбрать для изучения: конфигуратор или EDT?
Начинать проще с конфигуратора — он входит в платформу и требует минимальной настройки. EDT имеет смысл осваивать, когда появляется командная разработка, Git и необходимость статического анализа кода.
Достаточно ли встроенного языка для работы на внедрениях?
Для большинства задач доработки и поддержки — да, в связке с запросами и СКД. Внешние технологии (SQL, HTTP, форматы обмена) понадобятся там, где есть интеграции, высокие нагрузки или нестандартное оборудование.