Разработка и Конфигурация · 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Откройте конфигуратор и создайте общий модуль или откройте модуль формы
- 2Напишите процедуру с директивой компиляции, например &НаСервере
- 3Выполните синтаксическую проверку модуля — ошибки появятся в окне сообщений
- 4Запустите отладку (F5) и вызовите процедуру из пользовательского режима
- 5Проверьте результат через точку останова и табло значений переменных
Используются ли другие языки программирования в 1С
Для основной логики конфигурации — нет, только встроенный язык. Однако вокруг платформы существует экосистема, где применяются другие языки. Внешние компоненты по технологии Native API пишут на C++, веб-сервисы и интеграции — на любом языке со стороны внешней системы, а скрипты администрирования кластера и пакетные операции часто автоматизируют через OneScript — открытый интерпретатор, синтаксис которого повторяет встроенный язык 1С.
Где какой язык применяется
Вся бизнес-логика конфигурации: проведение, расчёты, обработки. Заменить его другим языком внутри платформы нельзя
Чтение данных для отчётов и обработок. Только выборка, без изменения данных
Скрипты автоматизации: обновления, CI/CD, пакетные операции. Работает вне платформы
Внешние компоненты и интеграционные сервисы. Не используются для кода конфигурации
Если вы знаете Python или C#, перенести навыки частично получится: концепции переменных, циклов, функций и исключений в 1С узнаваемы. Но объектная модель платформы уникальна — её придётся изучать отдельно, независимо от предыдущего опыта.
Сложно ли выучить язык 1С и с чего начать
Сам синтаксис осваивается быстро — это один из самых простых языков для входа, особенно для русскоязычного новичка. Основная сложность не в языке, а в платформе: нужно понимать, как устроены регистры, проведение документов, механизмы блокировок, управляемые формы и клиент-серверное взаимодействие.
Рабочий путь обучения: сначала простые процедуры в общих модулях и обработках, затем движения документов по регистрам, затем запросы и отчёты на СКД. Практиковаться безопаснее всего на учебной или демонстрационной базе — эксперименты с кодом в рабочей базе могут испортить учётные данные.
Частые вопросы о языке программирования 1С
1С написана на каком языке программирования?
Сама платформа (ядро) разработана фирмой «1С» преимущественно на C++. Но прикладные решения — конфигурации — пишутся на встроенном языке 1С, и пользователю платформы доступен только он.
Можно ли писать в 1С на английском синтаксисе?
Да, у всех операторов и встроенных функций есть английские синонимы: If, For Each, EndDo, Message. Конфигуратор позволяет работать с обоими вариантами, но в российских проектах стандартом де-факто является русский синтаксис.
Похож ли язык 1С на Python или Pascal?
По структуре язык ближе к Паскалю и Бейсику: явное завершение блоков словами (КонецЕсли, КонецЦикла), процедурный стиль. С Python его роднит разве что слабая типизация, но отступы и объектная модель совершенно другие.
Нужно ли знать SQL для работы с 1С?
Чистый SQL не требуется — платформа сама формирует запросы к СУБД. Но понимание логики SQL (соединения, группировки, условия) сильно помогает освоить язык запросов 1С, который построен на тех же принципах.
Подходит ли 1С как первый язык программирования?
Да, если цель — карьера в автоматизации учёта. Синтаксис прост, среда разработки единая, результат виден сразу. Но если планируется переход в другие области разработки, стоит учитывать, что язык 1С уникален и за пределами экосистемы не применяется.
Что важно запомнить
В 1С используется собственный встроенный язык с русским и английским синтаксисом, плюс язык запросов для чтения данных. Код пишется в модулях конфигуратора или EDT, исполняется на клиенте или сервере. Внешние языки нужны только для интеграций и компонент, а тестировать код следует на копии базы.