Разработка и Конфигурация · 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: процедуры, функции, условные операторы «Если…Тогда…КонецЕсли», циклы. Уникальная особенность — двуязычие: все операторы и встроенные функции существуют в русском и английском вариантах, и их можно смешивать, хотя на практике в типовых решениях используется русский синтаксис.
Язык исполняется интерпретатором платформы, компиляции в машинный код не происходит. Код размещается в модулях: модулях объектов, форм, общих модулях, модулях менеджеров. Типизация мягкая, работа с памятью автоматическая — это снижает порог входа, но требует внимательности: ошибки типов выявляются только в момент выполнения.
Процедура РассчитатьСкидку(СуммаДокумента) Экспорт
Если СуммаДокумента > 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С
Подходит для всей прикладной логики: документы, отчёты, обмены. Ограничение — нет прямого доступа к железу и низкоуровневым API.
Для оборудования и ресурсоёмких задач. Требуют навыков C++ и сборки под каждую платформу.
Для интеграции с сайтами, CRM, мобильными приложениями без установки дополнительного ПО на стороне 1С.
Что учить, чтобы разрабатывать в 1С
Начинающему разработчику 1С не нужен C++ — ядро платформы дорабатывать нельзя и не требуется. Практический минимум: встроенный язык 1С, язык запросов, система компоновки данных для отчётов, понимание объектной модели (справочники, документы, регистры накопления и сведений). Дальше — механизмы расширений конфигураций, позволяющие дорабатывать типовые решения без изменения самой конфигурации поставщика.
Полезный порядок освоения: сначала простые обработки и отчёты на учебной конфигурации, затем доработки через расширения, затем подсистемы обмена данными. Проверять результат удобно на копии рабочей базы: любые эксперименты с кодом выполняйте только на копии, никогда — сразу в продуктивной базе.
- 1Установите платформу и учебную версию конфигурации или пустую базу
- 2Изучите структуру метаданных в конфигураторе: справочники, документы, регистры
- 3Напишите первую обработку на встроенном языке и отладьте её
- 4Освойте язык запросов и построение отчёта на СКД
- 5Научитесь дорабатывать типовую конфигурацию через расширение, не меняя её код
Частые ошибки и ограничения
Распространённое заблуждение — что 1С «написана на русском языке программирования» и поэтому является простой или учебной системой. На практике встроенный язык — полноценный инструмент со своей экосистемой, а платформа решает задачи уровня крупных предприятий. Вторая ошибка — попытка править типовую конфигурацию напрямую вместо использования расширений: это усложняет обновления и приводит к конфликтам при выходе новых релизов.
Ещё одна ловушка — смешение синтаксиса запросов 1С и чистого SQL при работе в консоли СУБД: запрос, корректный в конфигураторе, не выполнится напрямую в Management Studio, и наоборот. Наконец, не стоит забывать, что код на встроенном языке исполняется в контексте клиента или сервера — директивы «&НаКлиенте» и «&НаСервере» определяют, где доступны те или иные объекты, и игнорирование этого вызывает ошибки выполнения.
Что важно запомнить
Платформа 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 не требуется.