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

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

Какой язык используется в 1С: разбираем встроенный язык платформы

Какой язык используется в 1С: встроенный язык платформы, его синтаксис, русские и английские варианты, сходство с другими языками и с чего начать изучение.

В платформе 1С:Предприятие используется собственный встроенный язык программирования — часто его называют «язык 1С», «встроенный язык» или по старинке «язык 7.7/8.x». Это не C++, не Java и не Python, а самостоятельный высокоуровневый язык, созданный специально для описания бизнес-логики: проведения документов, расчёта итогов, формирования отчётов и обработки данных.

Главная особенность языка — возможность писать код на русском языке. Ключевые слова, имена встроенных функций и методов объектов имеют русские синонимы: «Если», «Тогда», «КонецЕсли», «Сообщить», «Запрос». При этом существует и английский вариант синтаксиса (If, Then, EndIf, Message), и оба варианта можно смешивать в одном модуле, хотя на практике так делать не принято.

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

Что представляет собой встроенный язык 1С

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

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

По стилю язык напоминает смесь BASIC и Pascal: блочная структура с явными окончаниями (КонецЕсли, КонецЦикла, КонецПроцедуры), отсутствие фигурных скобок, регистронезависимость. Точка с запятой в конце оператора обязательна — это частая причина синтаксических ошибок у новичков.

Русский и английский синтаксис: что выбрать

Платформа поддерживает два варианта синтаксиса: русский и английский. В конфигураторе есть настройка «Вариант встроенного языка», которая определяет, какой вариант используется по умолчанию в модулях. Типовые российские конфигурации (Бухгалтерия, Зарплата и управление персоналом, Управление торговлей) написаны на русском синтаксисе.

Английский вариант чаще встречается в международных проектах и у разработчиков, пришедших из других языков. Технически разницы нет: компилятор воспринимает оба варианта одинаково, производительность не отличается. Выбор — вопрос читаемости и единообразия проекта.

Практическое правило простое: придерживайтесь варианта, принятого в вашей конфигурации. Смешение «Если» и «If» в соседних процедурах затрудняет чтение и сопровождение кода, хотя платформа это позволяет.

Устройство кода: модули, процедуры и контекст

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

Важное понятие — контекст исполнения. Код может выполняться на сервере, на толстом или тонком клиенте, в веб-клиенте. Директивы компиляции (&НаСервере, &НаКлиенте, &НаСервереБезКонтекста) определяют, где будет исполняться процедура. Неправильное размещение кода — типичная причина ошибок вида «метод не обнаружен» в тонком клиенте.

Структура простой процедуры выглядит так:

&НаСервере

Процедура РассчитатьСкидку(СуммаДокумента)

Если СуммаДокумента > 100000 Тогда

Скидка = СуммаДокумента * 0.1;

Иначе

Скидка = 0;

КонецЕсли;

Сообщить("Скидка: " + Скидка);

КонецПроцедуры

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

Язык запросов 1С и его связь с SQL

Вторая половина повседневной работы — язык запросов. Синтаксически он похож на SQL: есть ВЫБРАТЬ (SELECT), ИЗ (FROM), ГДЕ (WHERE), СГРУППИРОВАТЬ ПО (GROUP BY), соединения таблиц. Однако работает он не с физическими таблицами СУБД, а с объектами метаданных: документами, справочниками, регистрами накопления и сведений.

Платформа транслирует запрос 1С в SQL конкретной СУБД (MS SQL Server, PostgreSQL, Oracle, IBM Db2 или файловый вариант). Поэтому прямой доступ к базе средствами SQL для изменения данных запрещён: это нарушает целостность и лицензионные условия, а служебные механизмы платформы перестанут корректно работать.

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

На что похож язык 1С и легко ли его выучить

По синтаксической структуре встроенный язык ближе всего к BASIC и Pascal: процедурный стиль, явные окончания блоков, простые конструкции. Объектно-ориентированные возможности ограничены: нельзя создавать собственные классы с наследованием, но есть обширная библиотека встроенных типов — массивы, структуры, соответствия, таблицы значений.

Для человека с опытом программирования освоение занимает считанные недели: синтаксис простой, сложность — в понимании предметной области и объектной модели платформы. Для новичка без опыта язык 1С считается одним из самых доступных входов в программирование именно из-за русского синтаксиса и наглядной связи кода с бизнес-объектами.

Основная кривая обучения проходит не через язык, а через платформу: регистры, проведение документов, управляемые формы, механизмы блокировок. Именно эти концепции определяют квалификацию разработчика 1С, а не знание синтаксиса.

С чем сравнить язык 1С

BASIC / Pascal

Похожая блочная структура и простота синтаксиса; легко читается, но нет классов и наследования

SQL

Язык запросов 1С повторяет логику SQL, но оперирует объектами конфигурации, а не таблицами СУБД

Python

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

Когда одного встроенного языка недостаточно

Для интеграций и нестандартных задач платформа предоставляет дополнительные механизмы. HTTP-сервисы и веб-сервисы позволяют обмениваться данными с внешними системами, при этом логика обработчиков всё равно пишется на встроенном языке. Внешние компоненты по технологии Native API или COM подключают функциональность, написанную на C++ или других языках.

Расширения конфигурации позволяют дорабатывать типовые решения без изменения основной конфигурации — код расширения пишется на том же встроенном языке. Это рекомендуемый способ доработки: типовая конфигурация остаётся на поддержке и обновляется без конфликтов.

Отдельно стоит упомянуть OneScript — открытый интерпретатор языка, совместимого с синтаксисом 1С. Его используют для скриптов автоматизации: сборки, тестирования, выгрузки конфигураций. Для DevOps-практик в мире 1С это фактический стандарт.

Типичные ошибки начинающих
01
Пропуск точки с запятой в конце оператора — синтаксическая ошибка модуля
02
Смешение русского и английского синтаксиса в одном проекте — код трудно читать и сопровождать
03
Выполнение запросов в цикле вместо одного запроса с соединениями — резкое падение производительности
04
Игнорирование директив &НаСервере/&НаКлиенте — ошибки «метод не обнаружен» в тонком и веб-клиенте
05
Прямая правка данных в СУБД в обход платформы — повреждение целостности базы

Часто задаваемые вопросы

Можно ли писать в 1С на C# или Python?

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

Почему в 1С код на русском — это нормально?

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

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

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

С чего начать изучение языка 1С?

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

Отличается ли язык в версиях платформы 8.2, 8.3 и старше?

Ядро языка едино, но новые версии платформы добавляют объекты, методы и возможности: например, асинхронные механизмы, расширенную работу с JSON и HTTP. Код, написанный под старшие версии, может не работать на младших релизах платформы.

Что такое OneScript и зачем он нужен?

OneScript — независимый интерпретатор языка с синтаксисом, совместимым с 1С. Он работает вне платформы и применяется для автоматизации: скриптов сборки, тестирования, выгрузки конфигураций в хранилище исходного кода. Для прикладной разработки внутри базы он не используется.

Итог

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

В 1С используется собственный встроенный язык с русским и английским синтаксисом плюс язык запросов, похожий на SQL. Код размещается в модулях объектов и исполняется в контексте клиента или сервера. Для интеграций применяются HTTP-сервисы и внешние компоненты, а данные в СУБД напрямую изменять нельзя.