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

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

На чём написана 1С:Бухгалтерия

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

1С:Бухгалтерия — это прикладная конфигурация, которая работает на технологической платформе «1С:Предприятие 8». Поэтому вопрос «на чём написана 1С:Бухгалтерия» имеет многослойный ответ: сама платформа написана на C++, прикладная логика конфигурации — на встроенном языке 1С, а запросы к данным — на собственном языке запросов, похожем на SQL.

Такое разделение важно понимать практически: чтобы доработать отчёт или документ, вам не нужен C++ — достаточно встроенного языка 1С и конфигуратора. Зато если нужна интеграция с нестандартным оборудованием или внешний сервис, придётся выходить за пределы платформы и использовать внешние компоненты, HTTP-запросы или файловый обмен.

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

Три уровня технологий: платформа, конфигурация, данные

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

Каждый слой использует свои средства разработки. Платформа написана на C++ с применением компонентных технологий. Конфигурация полностью создаётся в конфигураторе на встроенном языке и на языке запросов. Данные хранятся либо в файловом формате 1Cv8.1CD, либо в СУБД — Microsoft SQL Server, PostgreSQL, Oracle или IBM DB2.

Практический вывод: «язык 1С:Бухгалтерии» — это всегда встроенный язык 1С. Всё, что видит и дорабатывает программист 1С, написано именно на нём.

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

Встроенный язык 1С — интерпретируемый язык с динамической типизацией. Его отличительная черта — двуязычный синтаксис: одни и те же операторы можно писать по-русски («Если», «Для Каждого», «Процедура») или по-английски (If, For Each, Procedure). Типовая бухгалтерия написана преимущественно на русском синтаксисе.

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

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

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

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

Ядро платформы «1С:Предприятие 8» реализовано на C++ с использованием COM-подобной компонентной модели. Это обеспечивает кроссплатформенность: сервер 1С работает под Windows и Linux, клиенты — под Windows, Linux и macOS, плюс есть веб-клиент и мобильная платформа.

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

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

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

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

Внешние компоненты и интеграции

Когда возможностей встроенного языка не хватает — например, нужна работа со сканером штрих-кодов, криптография или особый протокол обмена — используются внешние компоненты. Они разрабатываются на C++ по технологии Native API и подключаются к конфигурации как отдельные библиотеки (DLL или so).

Для интеграции с другими системами применяются средства самой платформы: HTTP-запросы и HTTP-сервисы, веб-сервисы (SOAP), файловый обмен через XML/JSON, механизмы EnterpriseData и планы обмена. Весь этот код также пишется на встроенном языке 1С, без сторонних языков программирования.

Сравнение вариантов доработки

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

Подходит для 95% задач: отчёты, печатные формы, обработки, доработка документов. Ограничение — только внутри платформы.

Внешняя компонента на C++

Нужна для нестандартного оборудования и низкоуровневых операций. Требует знания C++ и Native API, сложнее в сопровождении.

HTTP/файловый обмен

Оптимален для интеграции с сайтами, банками и другими учётными системами без изменения типовой конфигурации.

Что нужно, чтобы самостоятельно посмотреть и изменить код

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

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

Как посмотреть код конфигурации
  1. 1
    Запустите базу в режиме «Конфигуратор» под пользователем с полными правами.
  2. 2
    Откройте «Конфигурация — Открыть конфигурацию» и дождитесь построения дерева объектов.
  3. 3
    Найдите нужный объект, например документ «Поступление товаров и услуг», и откройте его модуль объекта.
  4. 4
    Изучите обработчики событий: ОбработкаПроведения, ПередЗаписью, ПриЗаписи.
  5. 5
    Для поиска по всему коду используйте «Правка — Глобальный поиск» (Ctrl+Shift+F).

Распространённые ошибки при доработке

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

Вторая ошибка — изменения в рабочей базе без копии. Даже безобидная правка модуля может нарушить проведение документов. Всегда проверяйте доработку на копии базы и делайте выгрузку (файл .dt) перед любыми изменениями.

Третья ошибка — попытка решить задачу внешними средствами (SQL, сторонние скрипты), когда штатный механизм платформы справляется быстрее и безопаснее. Сначала проверьте возможности СКД, расширений и типовых подсистем БСП, на которых построена бухгалтерия.

Типичные ошибки
01
Прямая правка типового кода вместо расширения — потеря изменений при обновлении.
02
Работа без резервной копии — риск необратимой порчи рабочей базы.
03
Прямые SQL-запросы на запись — нарушение целостности данных и потеря поддержки.
04
Игнорирование типовых механизмов БСП — лишний код там, где есть готовое решение.

FAQ: частые вопросы о языках 1С

Можно ли писать код для 1С:Бухгалтерии на Python или C#?

Внутри конфигурации — нет, только встроенный язык 1С. Python или C# могут применяться снаружи: например, внешний сервис на Python обменивается с 1С через HTTP-сервисы или файлы, а 1С остаётся на своём языке.

Правда ли, что 1С пишется на русском языке?

Да, у встроенного языка русскоязычный синтаксис: операторы, функции и ключевые слова пишутся по-русски. Есть и полный англоязычный эквивалент, их можно смешивать, но типовые конфигурации используют русский вариант.

Нужно ли знать SQL для работы с 1С?

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

Можно ли посмотреть исходный код платформы 1С?

Нет, исходный код платформы закрыт — это коммерческая разработка фирмы «1С» на C++. Открыт для просмотра и изменения только код конфигурации: модули, формы, макеты, запросы.

Что такое расширение конфигурации и зачем оно нужно?

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

Сложно ли научиться встроенному языку 1С бухгалтеру?

Базовый уровень — чтение кода, простые обработки, настройка отчётов через СКД — осваивается без опыта программирования, так как язык предметно-ориентированный и русскоязычный. Серьёзные доработки проведения и учётных механизмов лучше доверять разработчику.

Итог

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

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