Разработка и Конфигурация · 9 мин
На чем написан 1С: язык платформы, ядра и конфигураций
Разбираемся, на чем написан 1С: из чего состоит платформа, на каком языке написано ядро, что такое встроенный язык 1С и какие технологии используются в веб-клиенте.
Вопрос «на чем написан 1С» имеет два разных ответа, потому что под «1С» обычно понимают сразу две вещи: саму технологическую платформу «1С:Предприятие» и прикладные решения (конфигурации) вроде «Бухгалтерии» или «Управления торговлей», которые работают поверх нее. Платформа и конфигурация написаны по-разному, и путать их — частая ошибка новичков.
Ядро платформы «1С:Предприятие» разработано преимущественно на C++ — это компилируемый код, который обеспечивает работу сервера приложений, клиентских приложений, механизмов доступа к данным и исполнения встроенного языка. Пользовательский интерфейс веб-клиента и части тонкого клиента используют веб-технологии: JavaScript, HTML и CSS.
Прикладные конфигурации пишутся не на C++ и не на «внешнем» языке программирования, а на встроенном языке 1С — интерпретируемом языке с русским и английским синтаксисом, который исполняется платформой. Именно с ним работают 1С-разработчики при доработке типовых решений.
Из чего состоит система 1С и почему важно различать слои
Архитектура «1С:Предприятия» трехуровневая: клиентское приложение (толстый, тонкий или веб-клиент), сервер 1С (или файловый режим для небольших баз) и система управления базами данных. Каждый уровень реализован своими средствами, поэтому ответ на вопрос о языке зависит от того, о каком слое идет речь.
Платформа — это «двигатель»: она хранит метаданные конфигурации, исполняет код встроенного языка, формирует запросы к СУБД и рисует интерфейс. Конфигурация — это описание прикладной логики: справочники, документы, регистры, отчеты и алгоритмы на встроенном языке. Дорабатывая «Бухгалтерию», вы не меняете код платформы — вы меняете конфигурацию.
На каком языке написано ядро платформы
Исполняемый код платформы — сервер приложений, клиентские программы, компоненты доступа к данным — написан преимущественно на C++. Это объясняет требования к производительности: платформа обрабатывает запросы сотен одновременных пользователей, компилирует модули встроенного языка в промежуточный код и управляет транзакциями.
Исходный код платформы закрыт: фирма «1С» не публикует его, и доработать ядро обычным способом нельзя. Расширить возможности платформы можно только через документированные механизмы: внешние компоненты по технологии Native API или COM, расширения конфигурации и внешние обработки.
Для разработчиков внешних компонент доступен C++ (Native API), а также возможна интеграция через COM-объекты на Windows. Это путь для задач, которых нет во встроенном языке: работа со специфическим оборудованием, криптография, нестандартные протоколы.
Встроенный язык 1С: на чем пишут конфигурации
Встроенный язык 1С — это интерпретируемый язык высокого уровня, по возможностям близкий к скриптовым языкам общего назначения, но заточенный под предметную область учета: в нем есть встроенные типы «Документ», «Справочник», «Запрос», «РегистрСведений» и тому подобное. Синтаксис доступен на русском и на английском, варианты можно смешивать, хотя на практике так делать не принято.
Код пишется в модулях: модулях объектов, модулей форм, общих модулях, модулях менеджеров. Редактором служит конфигуратор или среда 1C:Enterprise Development Tools (EDT), построенная на базе Eclipse. EDT добавляет привычные разработчикам вещи: систему контроля версий через Git, статический анализ и более удобную навигацию по коду.
Пример простейшего кода на встроенном языке:
Функция ПолучитьОстатокТовара(Товар) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ЕСТЬNULL(СУММА(Остатки.Количество), 0) КАК Остаток
|ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Товар) КАК Остатки";
Запрос.УстановитьПараметр("Товар", Товар);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.Остаток;
КонецФункции
Отдельно существует язык запросов 1С — декларативный язык с синтаксисом, похожим на SQL, но работающий с объектами метаданных, а не с физическими таблицами. Платформа транслирует такие запросы в SQL конкретной СУБД.
Если вы знаете любой процедурный язык — Pascal, BASIC, JavaScript, — встроенный язык 1С осваивается быстро. Основная сложность не в синтаксисе, а в понимании объектной модели: как устроены регистры, проведение документов и механизм запросов.
Веб-клиент, мобильная платформа и внешние технологии
Веб-клиент 1С работает в браузере без установки платформы: интерфейс формируется с помощью HTML, CSS и JavaScript, а обмен с сервером идет через веб-сервисы. Поэтому при диагностике проблем веб-клиента полезны инструменты разработчика браузера — там видны сетевые запросы и ошибки JavaScript.
Мобильная платформа — отдельный продукт: приложения собираются под Android и iOS, но прикладная логика по-прежнему пишется на встроенном языке 1С в мобильной конфигурации. Сборка выполняется через специальный сборщик мобильных приложений.
Для интеграций 1С поддерживает стандартные протоколы и форматы: HTTP-сервисы и REST, веб-сервисы SOAP, XML, JSON, работу с файлами. Это позволяет связывать 1С с сайтами, CRM и внешними системами без правки ядра.
Сервер, клиенты, исполнение встроенного языка
Прикладная логика, проведение, отчеты
Транслируется платформой в диалект выбранной СУБД
Отображение интерфейса в браузере
Внешние компоненты для нестандартных задач
Где хранятся данные и какую роль играет СУБД
Сама 1С не хранит данные «в себе». В клиент-серверном режиме используется внешняя СУБД: Microsoft SQL Server, PostgreSQL (включая сборки, адаптированные под 1С), Oracle Database или IBM Db2. В файловом режиме база хранится в одном файле формата 1Cv8.1CD — это собственный формат платформы, подходящий для небольших баз с ограниченным числом пользователей.
Важно понимать: разработчик конфигурации не пишет SQL напрямую в обычных сценариях — платформа сама генерирует запросы. Но администратору знание СУБД необходимо: резервное копирование, обслуживание индексов и анализ блокировок выполняются средствами СУБД.
Что учить, если вы хотите разрабатывать под 1С
Стартовый минимум для 1С-разработчика: встроенный язык, язык запросов, объектная модель (справочники, документы, регистры), работа в конфигураторе и основы типовой конфигурации, с которой предстоит работать. Знание C++ не требуется — оно нужно только для узкой ниши внешних компонентов.
Полезные смежные навыки: основы SQL для понимания, что делает платформа с запросами; JavaScript и HTTP для интеграций и расширения веб-функций; Git при работе через EDT. Для администраторов приоритет смещается к СУБД, кластеру серверов 1С и лицензированию.
- 1Установите учебную версию платформы и конфигуратор
- 2Изучите встроенный язык: переменные, циклы, функции, модули
- 3Освойте основные объекты: справочники, документы, регистры сведений и накопления
- 4Научитесь писать запросы и строить отчеты на СКД
- 5Попробуйте простую доработку через расширение конфигурации, не меняя типовой код
- 6Проверьте результат на копии базы, прежде чем переносить в рабочую среду
Частые вопросы
1С написана на русском языке программирования?
Нет. «Русский синтаксис» есть только у встроенного языка, на котором пишут конфигурации. Сама платформа скомпилирована из кода на C++, который не имеет «русской» версии.
Нужно ли знать C++, чтобы работать 1С-программистом?
Нет. Подавляющее большинство задач решается на встроенном языке 1С и языке запросов. C++ требуется только для разработки внешних компонент по Native API — это редкая специализация.
Можно ли писать для 1С на Python или C#?
Напрямую внутри конфигурации — нет, исполняется только встроенный язык. Но внешние приложения на Python, C# или любом другом языке могут обмениваться данными с 1С через HTTP-сервисы, веб-сервисы или файлы, и это стандартная практика интеграций.
Чем EDT отличается от конфигуратора?
Конфигуратор — классическая среда разработки, входящая в платформу. EDT (1C:Enterprise Development Tools) — отдельная среда на базе Eclipse с поддержкой Git, расширенным анализом кода и командной работой. Язык и объекты в обоих случаях одинаковые.
На каком языке пишутся запросы в 1С?
На встроенном языке запросов 1С — он похож на SQL, но оперирует именами объектов метаданных (документов, регистров), а не физических таблиц. Платформа сама преобразует его в SQL под используемую СУБД.
Можно ли посмотреть исходный код платформы 1С?
Нет, исходный код платформы закрыт. Открыт для просмотра и доработки только код конфигураций — типовые решения поставляются с открытым кодом модулей (за исключением отдельных защищенных фрагментов).
Что важно запомнить
Платформа 1С написана преимущественно на C++ и имеет закрытый код; прикладные решения пишутся на встроенном языке 1С с русским или английским синтаксисом; веб-клиент использует HTML, CSS и JavaScript; данные хранятся во внешней СУБД. Для работы 1С-разработчиком учите встроенный язык, язык запросов и объектную модель — C++ не нужен.