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

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

На чём написана программа 1С: языки платформы и конфигураций

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

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

Такое разделение принципиально: разработчик конфигурации никогда не работает с C++, а пользователь программы вообще не видит кода. Платформа выступает средой исполнения, а конфигурация — «программой внутри программы». Именно поэтому одно и то же типовое решение работает и на Windows, и на Linux, и в веб-браузере — за переносимость отвечает ядро платформы.

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

Из чего состоит система 1С: платформа, конфигурация, данные

Архитектура 1С трёхуровневая. Нижний уровень — платформа: исполняемые файлы сервера, толстого и тонкого клиента, веб-клиента. Средний уровень — конфигурация: описание структуры данных (справочники, документы, регистры) и алгоритмов на встроенном языке. Верхний уровень — сами данные, которые хранятся в СУБД: Microsoft SQL Server, PostgreSQL, Oracle, IBM Db2 или файловом варианте базы.

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

На каком языке написана сама платформа

Ядро платформы «1С:Предприятие» реализовано на C++. Это видно по требованиям к разработке внешних компонент по технологии Native API, по составу дистрибутива и по кроссплатформенности: единая кодовая база компилируется под Windows, Linux и macOS. Для отдельных элементов используются и другие средства — например, веб-клиент работает в браузере на HTML и JavaScript, а мобильная платформа имеет собственную реализацию под Android и iOS.

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

Встроенный язык 1С: на чём пишут конфигурации

Весь прикладной код конфигураций пишется на встроенном языке 1С — его ещё называют «язык 1С» или по-английски 1C Script. Синтаксис напоминает Pascal и BASIC: процедуры, функции, условные операторы «Если…Тогда…КонецЕсли», циклы. Уникальная особенность — двуязычие: все операторы и встроенные функции существуют в русском и английском вариантах, и их можно смешивать, хотя на практике в типовых решениях используется русский синтаксис.

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

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

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

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

Отдельный компонент — язык запросов 1С. Он похож на SQL: конструкции «ВЫБРАТЬ… ИЗ… ГДЕ», соединения таблиц, группировки, итоги. Но это не чистый SQL: запрос оперирует объектами конфигурации (справочниками, документами, регистрами), а платформа сама транслирует его в диалект конкретной СУБД. Поэтому один и тот же запрос работает и на MS SQL, и на PostgreSQL без переписывания.

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

Внешние компоненты и интеграции: когда встроенного языка мало

Когда возможностей встроенного языка недостаточно — например, нужна работа со специфическим оборудованием, криптография или высокопроизводительные вычисления — используются внешние компоненты. Их разрабатывают на C++ по технологии Native API, либо подключают COM-объекты и сборки .NET (в Windows-окружении). Для интеграции с другими системами применяются веб-сервисы, HTTP-сервисы, REST API и обмены через файлы.

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

Чем расширять возможности 1С

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

Подходит для всей прикладной логики: документы, отчёты, обмены. Ограничение — нет прямого доступа к железу и низкоуровневым API.

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

Для оборудования и ресурсоёмких задач. Требуют навыков C++ и сборки под каждую платформу.

HTTP/веб-сервисы

Для интеграции с сайтами, CRM, мобильными приложениями без установки дополнительного ПО на стороне 1С.

Что учить, чтобы разрабатывать в 1С

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

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

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

Частые ошибки и ограничения

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

Ещё одна ловушка — смешение синтаксиса запросов 1С и чистого SQL при работе в консоли СУБД: запрос, корректный в конфигураторе, не выполнится напрямую в Management Studio, и наоборот. Наконец, не стоит забывать, что код на встроенном языке исполняется в контексте клиента или сервера — директивы «&НаКлиенте» и «&НаСервере» определяют, где доступны те или иные объекты, и игнорирование этого вызывает ошибки выполнения.

Типичные ошибки
01
Доработка типовой конфигурации напрямую вместо расширения — обновления становятся ручными и рискованными
02
Прямая запись в таблицы СУБД в обход платформы — нарушение целостности данных и потеря поддержки
03
Код без разделения на клиентский и серверный контекст — ошибки выполнения в тонком и веб-клиенте
04
Эксперименты с кодом сразу в рабочей базе — риск повредить учётные данные
Итог

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

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

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

1С — это язык программирования или программа?

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

Нужно ли знать C++, чтобы работать программистом 1С?

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

Почему код 1С написан по-русски — это обязательно?

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

Можно ли писать запросы к базе 1С на обычном SQL?

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

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

Конфигуратор — классическая среда разработки, входящая в поставку платформы. 1C:EDT — среда на базе Eclipse с поддержкой Git, удобная для командной разработки и больших проектов. Язык и объекты в обоих случаях одинаковые, отличается инструментарий.

На чём написан веб-клиент 1С?

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