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

Разработка и Конфигурация · 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, но работает не с физическими таблицами базы данных, а с логическими объектами конфигурации. Разработчик пишет «ВЫБРАТЬ ... ИЗ Документ.РеализацияТоваров», а платформа сама транслирует это в запросы к СУБД. Поддерживаются соединения, группировки, итоги, иерархия, временные таблицы и пакетные запросы.

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

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

Типичные ошибки
01
Запросы в цикле вместо одного запроса с соединениями — кратное падение производительности
02
Использование ПОЛНОГО соединения там, где достаточно ЛЕВОГО — лишние строки и ошибки в итогах
03
Игнорирование виртуальных таблиц регистров (Остатки, Обороты) и чтение всей таблицы движений
04
Смешивание русского и английского синтаксиса в одном модуле — трудности сопровождения

Конфигуратор и EDT: в каких средах пишут код

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

1C:Enterprise Development Tools (EDT) — альтернативная среда на базе Eclipse. Она ориентирована на командную разработку крупных проектов: встроенная интеграция с Git, статический анализ кода, работа с несколькими конфигурациями одновременно. EDT бесплатна для лицензированных пользователей, но требовательнее к ресурсам и имеет более крутую кривую входа.

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

Сравнение сред разработки

Конфигуратор

Подходит для индивидуальной разработки и доработки типовых; ограничение — слабая поддержка командной работы и версионирования

1C:EDT

Подходит для командных проектов с 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 в расширениях веб-интерфейса.

Расширения и доработка типовых конфигураций

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

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

Маршрут решения

Как выбрать способ доработки

Нужно добавить отчёт, обработку, печатную форму или немного логикиИспользуйте расширение конфигурации — обновления останутся простыми
Требуется глубокая переработка документооборота или учётных механизмовОцените доработку основной конфигурации с фиксацией изменений для обновлений
Нужна интеграция с внешней системойПишите HTTP-сервис или обмен через XML/JSON на встроенном языке, без внешних компонентов, если хватает штатных средств

Что учить и в каком порядке

Рациональная последовательность освоения: сначала встроенный язык и объектная модель (справочники, документы, регистры), затем язык запросов, после этого СКД и управляемые формы. Дальше — механизмы обмена, расширения и основы работы с СУБД. Такой порядок даёт работоспособный навык уже на раннем этапе: связка «встроенный язык + запросы» закрывает большинство задач доработки.

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

Порядок освоения стека 1С
  1. 1
    Изучите встроенный язык и объекты конфигурации: справочники, документы, регистры
  2. 2
    Освойте язык запросов: соединения, итоги, временные таблицы
  3. 3
    Научитесь строить отчёты на СКД и работать с управляемыми формами
  4. 4
    Разберитесь в контекстах клиент/сервер и отладке
  5. 5
    Изучите расширения конфигурации и механизмы обмена (XML, JSON, HTTP)
  6. 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, форматы обмена) понадобятся там, где есть интеграции, высокие нагрузки или нестандартное оборудование.