Разработка и Конфигурация · 10 мин
Какой язык использует 1С и что нужно знать разработчику
Разбираем, на каком языке написана 1С и на каком языке пишут в 1С: встроенный язык платформы, запросы, внешние компоненты и с чего начать изучение.
Платформа 1С:Предприятие использует собственный встроенный язык программирования, который часто называют просто «язык 1С» или «язык конфигурирования». Это высокоуровневый предметно-ориентированный язык, созданный специально для описания бизнес-логики: проведения документов, расчёта остатков, формирования отчётов и работы с объектами учёта. Сама платформа (движок, который исполняет код) написана на C++, но прикладной разработчик с этим языком почти не соприкасается.
Ключевая особенность встроенного языка — двуязычный синтаксис. Ключевые слова и встроенные функции можно писать как на русском (Если ... Тогда ... КонецЕсли;), так и на английском (If ... Then ... EndIf;), причём оба варианта равнозначны и могут смешиваться в одном модуле. В российских конфигурациях традиционно используется русский синтаксис.
Кроме основного языка, в экосистеме 1С есть несколько смежных «языков»: язык запросов для выборки данных из базы, язык выражений компоновки данных для отчётов на СКД и механизм внешних компонент для интеграции с кодом на других языках. Ниже разберём каждый из них и объясним, что реально нужно изучать.
Что представляет собой встроенный язык 1С
Встроенный язык 1С — это интерпретируемый язык, который исполняется внутри платформы, а не компилируется в машинный код напрямую. Код хранится в модулях: модулях объектов, форм, общих модулях, модулях менеджеров и т.д. Каждый модуль привязан к контексту — например, модуль документа «видит» реквизиты и табличные части этого документа.
По синтаксису язык напоминает Pascal и BASIC: блочная структура с явными окончаниями (КонецЕсли, КонецЦикла, КонецПроцедуры), отсутствие фигурных скобок, регистронезависимость. Типизация динамическая — тип переменной определяется в момент присваивания значения.
Язык предметно-ориентированный: в него встроены понятия предметной области — Справочники, Документы, РегистрыСведений, Перечисления. Разработчик не создаёт классы для описания накладной, а работает с готовыми объектами метаданных, которые платформа сама связывает с таблицами базы данных.
Процедура ПриЗаписи(Отказ)
Если СуммаДокумента > 100000 Тогда
Сообщить("Крупная сумма — требуется проверка");
КонецЕсли;
КонецПроцедуры
Русский и английский синтаксис: в чём разница
Оба варианта синтаксиса полностью эквивалентны — это один и тот же язык с двумя наборами ключевых слов. Платформа одинаково исполняет НайтиПоНомеру() и FindByNumber(). Выбор варианта никак не влияет на производительность или возможности.
На практике в типовых российских конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, ЗУП) код написан на русском синтаксисе. Если вы дорабатываете типовое решение, логично придерживаться того же стиля, чтобы код читался единообразно. В международных проектах и в некоторых фирмах-франчайзи принят английский вариант.
Язык запросов 1С и его отличия от SQL
Вторая половина повседневной работы разработчика 1С — язык запросов. Он декларативный и похож на SQL, но работает не с таблицами базы данных напрямую, а с объектами метаданных: ВЫБРАТЬ Номенклатура.Наименование ИЗ Справочник.Номенклатура. Платформа сама преобразует запрос в SQL для конкретной СУБД (MS SQL Server, PostgreSQL, Oracle или файловый вариант).
Язык запросов 1С не поддерживает изменение данных — только выборку. Все операции записи выполняются через объектную модель встроенного языка: получить объект, изменить реквизиты, вызвать Записать(). Это осознанное ограничение, которое гарантирует срабатывание бизнес-логики в обработчиках событий.
Дополнительные возможности языка запросов: виртуальные таблицы регистров (остатки, обороты, срезы), временные таблицы и пакетные запросы, итоги и группировки, соединения и подзапросы. Для отчётов запросы обычно оборачиваются в схему компоновки данных (СКД), где действует ещё и собственный язык выражений для вычисляемых полей.
На каком языке написана сама платформа 1С
Ядро платформы 1С:Предприятие написано на C++. Это касается исполняемых файлов сервера, клиентских приложений и веб-компонентов. Прикладной разработчик не имеет доступа к исходному коду платформы и не может его изменить — расширять функциональность можно только через встроенный язык, расширения конфигурации или внешние компоненты.
Типовые конфигурации (прикладные решения) полностью написаны на встроенном языке 1С. Их исходный код открыт в конфигураторе для лицензированных пользователей, и его можно дорабатывать — либо напрямую (с потерей полной поддержки обновлений), либо через механизм расширений, который рекомендуется как более безопасный.
Какие ещё языки встречаются в экосистеме 1С
Когда возможностей встроенного языка не хватает, используются смежные технологии. Знать их все не обязательно, но понимать границы применения полезно.
| Язык / технология | Где применяется в 1С | Кому нужен |
|---|---|---|
| Встроенный язык 1С | Вся бизнес-логика конфигураций | Обязателен всем разработчикам |
| Язык запросов | Выборки данных, отчёты, СКД | Обязателен всем разработчикам |
| SQL (диалект СУБД) | Прямые запросы к базе, администрирование | Администраторам и интеграторам |
| C++ / C# / Java | Внешние компоненты по технологии Native API / COM | Для нестандартных задач (оборудование, криптография) |
| HTTP, REST, JSON, XML | Обмен с внешними системами и веб-сервисами | Интеграторам |
Прямой доступ к базе данных средствами SQL возможен, но официально не рекомендуется для записи: при обходе объектной модели не срабатывают обработчики событий, можно нарушить целостность данных и лишиться поддержки. Чтение через прямые запросы иногда применяют для тяжёлой аналитики, но это зона ответственности администратора.
С чего начать изучение языка 1С
Порог входа в язык 1С ниже, чем в языки общего назначения: не нужно разбираться с указателями, управлением памятью и сборкой проектов. Однако вместо этого требуется понимать предметную область — как устроены справочники, документы, регистры и проведение.
- 1Установите учебную версию платформы и откройте конфигуратор
- 2Изучите типовые объекты: справочники, документы, регистры сведений и накопления
- 3Освойте базовый синтаксис: процедуры, функции, условия, циклы, работа с коллекциями
- 4Перейдите к языку запросов и виртуальным таблицам регистров
- 5Изучите СКД и создайте первый отчёт без кода вывода
- 6Разберитесь с расширениями конфигурации как безопасным способом доработок
Опыт программирования на других языках ускоряет освоение синтаксиса, но не заменяет понимания учётных механизмов. Самая частая проблема новичков — попытка решать задачи «в лоб» кодом там, где в платформе уже есть готовый механизм (например, писать ручной расчёт остатков вместо запроса к виртуальной таблице регистра).
Проверка понимания: как оценить свой уровень
Чтобы понять, что базовые темы освоены, проверьте себя по нескольким контрольным точкам. Это поможет выявить пробелы до выхода на реальные задачи.
Как проверить результат
Код компактный, движения формируются через набор записей
Остатки считаются вручную перебором таблиц
Один запрос возвращает нужные данные без постобработки
Данные выбираются несколькими запросами и склеиваются в цикле
Отборы и группировки настраиваются пользователем без доработки кода
Отчёт жёстко запрограммирован, любое изменение требует правки модуля
Часто задаваемые вопросы
1С — это тоже самое, что 1C или OneC?
Да, речь об одной платформе. В англоязычной среде встроенный язык иногда обозначают как 1C script или BSL (1C:Enterprise script). Независимо от названия имеется в виду встроенный язык платформы 1С:Предприятие.
Нужно ли знать C++ или SQL, чтобы программировать в 1С?
C++ не нужен — он используется только внутри самой платформы и во внешних компонентах. Знание SQL помогает понимать, как запросы 1С преобразуются для СУБД, и полезно при оптимизации, но для прикладной разработки достаточно языка запросов 1С.
Почему в 1С код пишут на русском языке?
Платформа изначально создавалась для русскоязычных учётных специалистов, поэтому синтаксис локализован. Это снижает порог входа для людей без классического программистского образования. Английский вариант синтаксиса существует и полностью равнозначен.
Можно ли писать для 1С на Python или JavaScript?
Напрямую внутри конфигурации — нет, исполняется только встроенный язык. Внешние системы на Python, JS и других языках могут взаимодействовать с 1С через HTTP-сервисы, веб-сервисы, файловый обмен или OData-интерфейс, который платформа публикует автоматически.
Что такое расширение конфигурации и на каком оно языке?
Расширение — это механизм доработки типовой конфигурации без изменения её основного кода. Пишется расширение на том же встроенном языке 1С, но хранится отдельно и накладывается на конфигурацию при запуске, что упрощает последующие обновления.
Сложно ли перейти в 1С-разработку с другого языка?
Синтаксис осваивается быстро — за несколько недель практики. Основное время уходит на изучение объектной модели платформы, механизмов проведения, регистров и типовых конфигураций. Программистскую базу (алгоритмы, отладка, работа с данными) переучивать не придётся.
Что важно запомнить
Прикладная разработка в 1С ведётся на собственном встроенном языке с русским или английским синтаксисом, дополненном языком запросов и СКД. Платформа написана на C++, но это не касается разработчика. Изучение стоит начинать с объектов метаданных и базового синтаксиса, а доработки типовых решений выполнять через расширения.