Разработка и Конфигурация · 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С и загрузите конфигурацию базы
- 2Найдите нужный объект в дереве конфигурации, например документ
- 3Щёлкните правой кнопкой и выберите «Открыть модуль объекта» или «Модуль формы»
- 4Изучите обработчики событий: ПередЗаписью, ПриПроведении, ОбработкаПроведения
- 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С
Похожая блочная структура и простота синтаксиса; легко читается, но нет классов и наследования
Язык запросов 1С повторяет логику SQL, но оперирует объектами конфигурации, а не таблицами СУБД
Схожая динамическая типизация и высокий уровень абстракции, но 1С работает только внутри своей платформы
Когда одного встроенного языка недостаточно
Для интеграций и нестандартных задач платформа предоставляет дополнительные механизмы. HTTP-сервисы и веб-сервисы позволяют обмениваться данными с внешними системами, при этом логика обработчиков всё равно пишется на встроенном языке. Внешние компоненты по технологии Native API или COM подключают функциональность, написанную на C++ или других языках.
Расширения конфигурации позволяют дорабатывать типовые решения без изменения основной конфигурации — код расширения пишется на том же встроенном языке. Это рекомендуемый способ доработки: типовая конфигурация остаётся на поддержке и обновляется без конфликтов.
Отдельно стоит упомянуть OneScript — открытый интерпретатор языка, совместимого с синтаксисом 1С. Его используют для скриптов автоматизации: сборки, тестирования, выгрузки конфигураций. Для DevOps-практик в мире 1С это фактический стандарт.
Часто задаваемые вопросы
Можно ли писать в 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-сервисы и внешние компоненты, а данные в СУБД напрямую изменять нельзя.