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