Разработка и Конфигурация · 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». Это высокоуровневый предметно-ориентированный язык с синтаксисом, допускающим как русские, так и английские ключевые слова. Классический пример процедуры выглядит так:
Процедура РассчитатьСкидку(СуммаДокумента) Экспорт
Если СуммаДокумента > 100000 Тогда
Скидка = СуммаДокумента * 0.1;
Иначе
Скидка = 0;
КонецЕсли;
КонецПроцедурыЯзык не требует ручного управления памятью и компиляции в машинный код: код интерпретируется платформой. Разработчик работает не с таблицами базы данных напрямую, а с объектами метаданных — справочниками, документами, регистрами. Платформа сама преобразует операции в SQL-запросы к СУБД.
Кроме встроенного языка, в конфигурациях используется язык запросов 1С — декларативный язык, похожий на SQL, но работающий с объектами конфигурации. Он применяется для выборки данных в отчётах и обработках.
В какой среде разрабатывают на 1С
Основной инструмент разработки — Конфигуратор, встроенный в поставку платформы. Он открывается из того же ярлыка, что и пользовательский режим, но с параметром «Конфигуратор». В нём редактируют структуру метаданных, модули кода, формы, макеты печатных документов и права доступа.
Альтернатива — 1C:Enterprise Development Tools (EDT), среда на базе Eclipse. Она ориентирована на крупные проекты: поддерживает системы контроля версий (Git), командную разработку, расширенный анализ кода. EDT пишется на Java и распространяется фирмой «1С» как отдельный продукт.
Конфигуратор или EDT
Подходит для небольших доработок и типовых внедрений. Входит в поставку платформы, быстрый старт, но слабая поддержка командной разработки.
Подходит для крупных проектов и команд. Git из коробки, проверки качества кода, но требует отдельной установки и более мощного компьютера.
Где хранятся данные: СУБД и режимы работы
Данные 1С хранятся не в коде, а в базе данных. Существует два режима. Файловый — вся база находится в одном файле с расширением .1CD, подходит для небольших компаний. Клиент-серверный — платформа работает через сервер 1С:Предприятия, а данные размещаются в промышленной СУБД.
Поддерживаемые СУБД для клиент-серверного режима: Microsoft SQL Server, PostgreSQL (включая сборки, адаптированные под 1С), Oracle Database и IBM Db2. Выбор СУБД влияет на производительность и стоимость лицензий, но не на язык разработки конфигурации — прикладной код остаётся тем же.
Работа без сервера 1С, обычно до нескольких одновременных пользователей
Данные в MS SQL, PostgreSQL, Oracle или Db2
Исходники конфигурации для контроля версий
Как посмотреть код конфигурации самостоятельно
Если конфигурация не защищена, её код можно изучить без специальных инструментов. Порядок действий стандартный и безопасен для данных, если не сохранять изменения.
- 1Запустите ярлык 1С и выберите базу, но вместо режима «Предприятие» нажмите «Конфигуратор»
- 2Дождитесь загрузки и откройте меню «Конфигурация» → «Открыть конфигурацию»
- 3В дереве метаданных выберите объект (например, документ) и откройте его модуль объекта или модуль формы
- 4Изучайте код на встроенном языке. Не нажимайте «Обновить конфигурацию базы данных», если не планируете изменений
Частые заблуждения о технологиях 1С
Распространённое заблуждение — что 1С написана на Delphi, C# или «на 1С». На самом деле встроенный язык исполняется платформой, а сама платформа — нативное приложение на C++. Другое заблуждение — что данные хранятся в Access или FoxPro: это относится к очень старым версиям 1С:Предприятие 7.7 (DBF-формат), современные версии работают с полноценными СУБД.
Что учить, чтобы разрабатывать в 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 полезно для диагностики производительности и понимания работы СУБД, но не является обязательным для прикладной разработки.