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

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

На какой программе и языке написан 1С

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

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

Коротко: ядро платформы 1С:Предприятие написано преимущественно на C++, а прикладные конфигурации (1С:Бухгалтерия, 1С:Управление торговлей и другие) разрабатываются на встроенном языке 1С в фирменной среде разработки — Конфигураторе или 1C:Enterprise Development Tools (EDT) на базе Eclipse.

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

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

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

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

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

Отдельные компоненты экосистемы используют и другие технологии. Например, 1C:Enterprise Development Tools построена на платформе Eclipse и написана на Java, а веб-клиент работает в браузере на HTML и JavaScript, которые генерируются платформой автоматически из описания форм конфигурации.

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

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

Прикладная логика в 1С пишется на встроенном языке программирования, который часто называют «язык 1С» или по аналогии «1С-script». Это высокоуровневый предметно-ориентированный язык с синтаксисом, допускающим как русские, так и английские ключевые слова. Классический пример процедуры выглядит так:

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

Язык не требует ручного управления памятью и компиляции в машинный код: код интерпретируется платформой. Разработчик работает не с таблицами базы данных напрямую, а с объектами метаданных — справочниками, документами, регистрами. Платформа сама преобразует операции в SQL-запросы к СУБД.

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

В какой среде разрабатывают на 1С

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

Альтернатива — 1C:Enterprise Development Tools (EDT), среда на базе Eclipse. Она ориентирована на крупные проекты: поддерживает системы контроля версий (Git), командную разработку, расширенный анализ кода. EDT пишется на Java и распространяется фирмой «1С» как отдельный продукт.

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

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

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

1C:EDT

Подходит для крупных проектов и команд. Git из коробки, проверки качества кода, но требует отдельной установки и более мощного компьютера.

Где хранятся данные: СУБД и режимы работы

Данные 1С хранятся не в коде, а в базе данных. Существует два режима. Файловый — вся база находится в одном файле с расширением .1CD, подходит для небольших компаний. Клиент-серверный — платформа работает через сервер 1С:Предприятия, а данные размещаются в промышленной СУБД.

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

Файл 1Cv8.1CD в каталогеФайловая база

Работа без сервера 1С, обычно до нескольких одновременных пользователей

Строка подключения с Srvr и RefКлиент-серверный режим

Данные в MS SQL, PostgreSQL, Oracle или Db2

Каталоги с XML-файлами конфигурацииВыгрузка в файлы / EDT-проект

Исходники конфигурации для контроля версий

Как посмотреть код конфигурации самостоятельно

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

Как открыть код конфигурации
  1. 1
    Запустите ярлык 1С и выберите базу, но вместо режима «Предприятие» нажмите «Конфигуратор»
  2. 2
    Дождитесь загрузки и откройте меню «Конфигурация» → «Открыть конфигурацию»
  3. 3
    В дереве метаданных выберите объект (например, документ) и откройте его модуль объекта или модуль формы
  4. 4
    Изучайте код на встроенном языке. Не нажимайте «Обновить конфигурацию базы данных», если не планируете изменений

Частые заблуждения о технологиях 1С

Распространённое заблуждение — что 1С написана на Delphi, C# или «на 1С». На самом деле встроенный язык исполняется платформой, а сама платформа — нативное приложение на C++. Другое заблуждение — что данные хранятся в Access или FoxPro: это относится к очень старым версиям 1С:Предприятие 7.7 (DBF-формат), современные версии работают с полноценными СУБД.

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

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

Для старта достаточно освоить встроенный язык, язык запросов и объектную модель конфигурации. Знание C++ или Java не требуется — эти языки нужны только разработчикам самой платформы или авторов внешних компонентов. Полезны базовые знания SQL для понимания, как запросы 1С преобразуются платформой, и общие навыки работы с Git при разработке в EDT.

Итог

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

Платформа 1С:Предприятие написана на C++, среда EDT — на Java (Eclipse). Прикладные конфигурации создаются на встроенном языке 1С в Конфигураторе или EDT. Данные хранятся в файловой базе 1CD или в СУБД: MS SQL, PostgreSQL, Oracle, Db2.

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

1С написана на C# или .NET?

Нет. Ядро платформы — нативный код на C++, а не управляемый код .NET. C# может использоваться только во внешних интеграционных решениях, которые обращаются к 1С извне, но не является языком самой платформы.

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

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

Чем встроенный язык 1С отличается от обычных языков программирования?

Он предметно-ориентированный: работает с объектами учёта (документы, справочники, регистры), исполняется только внутри платформы и не требует ручной работы с базой данных, памятью и компиляцией.

На чём была написана старая 1С:Предприятие 7.7?

Платформа версии 7.7 также была нативным приложением, а данные в файловом режиме хранились в таблицах формата DBF. Современная линейка 1С:Предприятие 8 использует собственный формат файловой базы 1CD и клиент-серверные СУБД.

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

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