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

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

На чем написан 1С: язык платформы и встроенный язык разработки

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

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

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

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

Из чего состоит платформа 1С:Предприятие

1С:Предприятие — это не одна программа, а многослойная система. Нижний слой — технологическая платформа: исполняемые файлы сервера, клиентских приложений и веб-компонентов. Этот слой разработан фирмой «1С» на C++ и поставляется в скомпилированном виде — исходный код платформы закрыт и недоступен пользователям.

Верхний слой — прикладная конфигурация: описание структур данных, форм, отчетов и алгоритмов на встроенном языке. Именно этот слой видят и дорабатывают программисты 1С. Платформа интерпретирует код конфигурации, обеспечивает работу с СУБД, интерфейс, права доступа и транзакции.

Такое разделение дает ключевое преимущество: одна и та же конфигурация работает на Windows, Linux и macOS, в клиент-серверном и файловом варианте, без переписывания прикладного кода. Платформа сама адаптирует исполнение под окружение.

Ядро на C++: что это означает на практике

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

Для пользователя и разработчика конфигураций язык ядра почти не имеет практического значения: напрямую с C++-кодом платформы работать нельзя. Однако есть косвенные следствия:

  • обновления платформы выпускает только фирма «1С» — исправить ошибку ядра самостоятельно невозможно;
  • производительность встроенного языка ограничена интерпретацией — тяжелые вычисления выносят во внешние компоненты;
  • платформа версии 8.3 поддерживает 32- и 64-разрядные режимы, что влияет на выбор разрядности сервера и клиентов.

Встроенный язык 1С: главный инструмент разработчика

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

Ключевые особенности языка:

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

Язык не является самостоятельным: программа на нем не запустится вне платформы 1С. Это принципиальное отличие от универсальных языков вроде Python или Java — встроенный язык существует только внутри экосистемы 1С:Предприятие.

bsl
Процедура РассчитатьСкидку(СуммаДокумента) Экспорт
	Если СуммаДокумента > 100000 Тогда
		Возврат СуммаДокумента * 0.1;
	Иначе
		Возврат 0;
	КонецЕсли;
КонецПроцедуры

Язык запросов 1С и работа с базами данных

Для выборки данных в 1С используется собственный язык запросов, внешне похожий на SQL, но работающий с объектами конфигурации (справочниками, документами, регистрами), а не с физическими таблицами СУБД. Платформа сама транслирует запрос в диалект конкретной базы данных.

Поддерживаемые СУБД для клиент-серверного режима: Microsoft SQL Server, PostgreSQL (включая российские сборки), Oracle Database и IBM DB2. В файловом режиме платформа использует собственный формат файловой базы.

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

Интеграции и расширение возможностей

Когда возможностей встроенного языка не хватает, используются механизмы выхода за пределы платформы:

  • Внешние компоненты — библиотеки по технологии Native API или COM, которые пишут на C++ или других компилируемых языках для тяжелых вычислений и работы с оборудованием;
  • HTTP-сервисы и веб-сервисы — платформа умеет и публиковать, и вызывать REST/SOAP-интерфейсы;
  • COM-соединение — на Windows позволяет управлять одной базой 1С из другой программы;
  • Расширения конфигурации — механизм доработки типовых решений без изменения основной конфигурации, написанный на том же встроенном языке.

Способы расширения функциональности

Встроенный язык

Подходит для 95% задач учета и автоматизации; ограничение — скорость тяжелых вычислений и невозможность низкоуровневой работы с ОС.

Внешние компоненты (Native API)

Подходят для криптографии, работы с оборудованием, математики; требуют навыков C++ и поддержки отдельных сборок под каждую ОС.

Интеграция через HTTP

Подходит для связи с сайтами, CRM и мобильными приложениями; требует продумывания авторизации и обработки ошибок сети.

Что нужно знать, чтобы писать под 1С

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

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

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

Как проверить, с чем вы работаете

Если нужно понять, какие технологии задействованы в конкретной базе, начните с простых проверок: откройте «О программе» и посмотрите версию платформы и режим совместимости, в конфигураторе проверьте наличие расширений и внешних компонент, а строку подключения к серверу 1С уточните у администратора — по ней видно, файловый или клиент-серверный вариант используется и какая СУБД задействована.

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

Как проверить окружение

Версия платформы
Норма

Отображается в окне «О программе», совместима с конфигурацией

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

Ошибка несовместимости версий при запуске

Режим работы базы
Норма

Файловый или клиент-серверный вариант известен и задокументирован

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

Неизвестно, где физически хранятся данные

Внешние компоненты
Норма

Список компонент известен, есть сборки под все используемые ОС

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

Ошибки «компонента не найдена» на части рабочих мест

Итог

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

Платформа 1С:Предприятие написана на C++ и поставляется в закрытом скомпилированном виде. Прикладные решения создаются на встроенном языке с русским или английским синтаксисом, данные выбираются собственным языком запросов, а для выхода за пределы платформы используются внешние компоненты и интеграционные механизмы.

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

Можно ли посмотреть исходный код платформы 1С?

Нет. Исходный код ядра платформы закрыт и принадлежит фирме «1С». Пользователям доступен только код прикладных конфигураций, поставляемых в открытом виде, и собственных разработок.

Почему в 1С используют русский синтаксис языка?

Русский синтаксис снижает порог входа для специалистов без программистского образования — бухгалтеров и аналитиков. Английский вариант синтаксиса существует параллельно, и оба варианта технически равнозначны.

Можно ли писать для 1С на Python или C#?

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

Что такое 1C:EDT и чем он отличается от конфигуратора?

EDT — среда разработки на базе Eclipse, ориентированная на командные проекты, контроль версий и статический анализ кода. Язык тот же — встроенный язык 1С; отличаются инструменты и процесс разработки.

Правда ли, что 1С работает только на Windows?

Нет. Платформа 8.3 поддерживает Windows и Linux для сервера и клиентов, а также macOS для клиентской части. Веб-клиент работает в браузере вообще без установки платформы.

Нужно ли знать SQL для работы с 1С?

Для разработки конфигураций достаточно языка запросов 1С. Знание SQL полезно администраторам для диагностики производительности СУБД, но изменять данные напрямую через SQL нельзя.