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

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

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

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

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

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

Кроме встроенного языка, разработчик 1С постоянно работает с языком запросов 1С — он похож на SQL, но адаптирован под объектную модель платформы. Также внутри системы есть язык выражений компоновки данных для отчётов на СКД. Внешние языки (C#, JavaScript, Python) применяются лишь для интеграций, расширений и внешних компонент, но не для основной логики конфигурации.

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

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

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

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

Как выглядит синтаксис: пример кода

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

&НаСервере

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

ИтоговаяСумма = 0;

Для Каждого СтрокаТовара Из ДокументОбъект.Товары Цикл

СтрокаТовара.Сумма = СтрокаТовара.Количество * СтрокаТовара.Цена;

ИтоговаяСумма = ИтоговаяСумма + СтрокаТовара.Сумма;

КонецЦикла;

ДокументОбъект.СуммаДокумента = ИтоговаяСумма;

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

Здесь видны ключевые черты языка: операторы пишутся по-русски, каждый оператор завершается точкой с запятой, блоки выделяются словами «Цикл … КонецЦикла», «Если … КонецЕсли». Точка с запятой обязательна — её пропуск является самой частой синтаксической ошибкой новичков.

Строковые литералы заключаются в двойные кавычки, даты — в одинарные (например, '20260115'). Комментарии начинаются с двойного слеша //. Встроенные функции имеют русские названия: СокрЛП(), СтрДлина(), Найти(), Формат() — полный список доступен в синтакс-помощнике конфигуратора.

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

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

ВЫБРАТЬ

Продажи.Номенклатура КАК Номенклатура,

СУММА(Продажи.Количество) КАК Количество

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи

СГРУППИРОВАТЬ ПО

Продажи.Номенклатура

Ограничение языка запросов: он предназначен только для чтения данных. Изменение данных выполняется объектными методами — Записать(), УстановитьПометкуУдаления() — либо наборами записей регистров. Попытка «обновить таблицу запросом», как в SQL, в 1С не сработает.

Где пишется код: конфигуратор и EDT

Основная среда разработки — конфигуратор «1С:Предприятия». В нём есть редактор модулей с подсветкой синтаксиса, контекстная подсказка, синтакс-помощник и отладчик. Проверка модуля выполняется через меню «Конфигурация — Проверка конфигурации» или сочетанием клавиш в редакторе модуля.

Альтернатива — 1C:Enterprise Development Tools (EDT), среда на базе Eclipse. Она лучше подходит для крупных командных проектов, поддерживает системы контроля версий и более строгую статическую проверку кода. Синтаксис языка в обеих средах одинаковый, отличается только инструментарий.

Как написать и проверить первую процедуру
  1. 1
    Откройте конфигуратор и создайте общий модуль или откройте модуль формы
  2. 2
    Напишите процедуру с директивой компиляции, например &НаСервере
  3. 3
    Выполните синтаксическую проверку модуля — ошибки появятся в окне сообщений
  4. 4
    Запустите отладку (F5) и вызовите процедуру из пользовательского режима
  5. 5
    Проверьте результат через точку останова и табло значений переменных

Используются ли другие языки программирования в 1С

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

Где какой язык применяется

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

Вся бизнес-логика конфигурации: проведение, расчёты, обработки. Заменить его другим языком внутри платформы нельзя

Язык запросов 1С

Чтение данных для отчётов и обработок. Только выборка, без изменения данных

OneScript

Скрипты автоматизации: обновления, CI/CD, пакетные операции. Работает вне платформы

C++, C#, Python

Внешние компоненты и интеграционные сервисы. Не используются для кода конфигурации

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

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

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

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

Типичные ошибки новичков
01
Пропуск точки с запятой в конце оператора — модуль не проходит синтаксическую проверку
02
Обращение к базе данных из клиентского контекста — ошибка вызова серверных методов с клиента
03
Изменение данных запросом вместо объектных методов — в 1С это невозможно, запросы только читают
04
Смешение русского и английского синтаксиса в одном модуле — код трудно читать и сопровождать
05
Игнорирование директив &НаКлиенте и &НаСервере — процедура компилируется не в том контексте

Частые вопросы о языке программирования 1С

1С написана на каком языке программирования?

Сама платформа (ядро) разработана фирмой «1С» преимущественно на C++. Но прикладные решения — конфигурации — пишутся на встроенном языке 1С, и пользователю платформы доступен только он.

Можно ли писать в 1С на английском синтаксисе?

Да, у всех операторов и встроенных функций есть английские синонимы: If, For Each, EndDo, Message. Конфигуратор позволяет работать с обоими вариантами, но в российских проектах стандартом де-факто является русский синтаксис.

Похож ли язык 1С на Python или Pascal?

По структуре язык ближе к Паскалю и Бейсику: явное завершение блоков словами (КонецЕсли, КонецЦикла), процедурный стиль. С Python его роднит разве что слабая типизация, но отступы и объектная модель совершенно другие.

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

Чистый SQL не требуется — платформа сама формирует запросы к СУБД. Но понимание логики SQL (соединения, группировки, условия) сильно помогает освоить язык запросов 1С, который построен на тех же принципах.

Подходит ли 1С как первый язык программирования?

Да, если цель — карьера в автоматизации учёта. Синтаксис прост, среда разработки единая, результат виден сразу. Но если планируется переход в другие области разработки, стоит учитывать, что язык 1С уникален и за пределами экосистемы не применяется.

Итог

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

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