Разработка и Конфигурация · 12 мин
Программист 1С: какой язык программирования используется в 1С
Разбираем, какой язык программирования использует программист 1С: встроенный язык 1С, запросы, внешние компоненты, интеграции и с чего начать обучение.
Главный язык, на котором пишет программист 1С, — встроенный язык платформы «1С:Предприятие». Это высокоуровневый предметно-ориентированный язык, созданный специально для автоматизации учёта, торговли, зарплаты и других хозяйственных задач. Он внешне напоминает смесь классических языков: есть переменные, условия, циклы, процедуры и функции, но синтаксис адаптирован под бизнес-логику, а не под системное программирование.
Особенность, которая удивляет новичков: встроенный язык 1С может писаться как на русском, так и на английском синтаксисе. Один и тот же оператор допустимо записать как «Если ... Тогда ... Иначе ... КонецЕсли» или «If ... Then ... Else ... EndIf». Обе формы эквивалентны, компилятор платформы понимает обе, а в большинстве российских конфигураций исторически используется русский вариант.
При этом работа программиста 1С не сводится к одному языку. Помимо встроенного языка приходится использовать язык запросов 1С (похож на SQL), язык выражений системы компоновки данных для отчётов, а для интеграций — внешние технологии: HTTP, веб-сервисы, COM, иногда Python, JavaScript или C# для внешних компонент. Ниже разберём каждый инструмент отдельно.
Встроенный язык 1С: что это и как устроен
Встроенный язык — это основной инструмент разработчика в конфигураторе 1С. На нём описывают обработчики событий объектов (запись документа, проведение, открытие формы), алгоритмы расчёта, проверки данных и любую бизнес-логику, которую нельзя задать декларативно через настройки объектов конфигурации.
Язык интерпретируется платформой: код не компилируется в машинный код, а выполняется внутри среды исполнения 1С. Поэтому низкоуровневые операции (работа с памятью, указатели, драйверы) на нём невозможны в принципе — и это осознанное ограничение ради скорости разработки прикладных решений.
Типовые конструкции языка знакомы любому программисту: переменные без явного объявления типа (типизация динамическая), условные операторы, циклы «Для» и «Пока», процедуры и функции с параметрами, обработка исключений через «Попытка ... Исключение ... КонецПопытки». Коллекции представлены массивами, структурами, соответствиями и списками значений.
Русский или английский синтаксис: что выбрать
Платформа поддерживает два варианта записи одних и тех же операторов, и технически они полностью равнозначны. Выбор — вопрос соглашений в команде и поддерживаемой конфигурации. Типовые решения от фирмы «1С» (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) написаны на русском синтаксисе, поэтому при доработке типовых конфигураций логично придерживаться русского.
Английский вариант удобен тем, кто пришёл из других языков, и встречается в международных проектах и некоторых фирменных разработках. Смешивать оба синтаксиса в одном модуле технически возможно, но считается дурным тоном: такой код сложнее читать и ревьюить.
Язык запросов 1С: второй обязательный инструмент
Выборка данных из базы в 1С выполняется на собственном языке запросов, который синтаксически близок к SQL, но работает не с физическими таблицами СУБД, а с объектами метаданных: документами, справочниками, регистрами. Запрос «ВЫБРАТЬ ... ИЗ Документ.РеализацияТоваровУслуг» платформа сама преобразует в SQL для конкретной СУБД.
Язык запросов поддерживает соединения таблиц, группировки с агрегатными функциями, виртуальные таблицы регистров (остатки, обороты, срез последних), вложенные запросы, временные таблицы и пакетные запросы. Умение писать эффективные запросы — ключевой навык: большинство проблем производительности в 1С связано именно с неоптимальными запросами, а не с кодом модулей.
Типичная ошибка новичков — выбирать данные перебором в цикле вместо одного запроса. Если внутри цикла выполняется обращение к базе, при объёмах в тысячи записей такой код работает на порядки медленнее эквивалентного запроса с соединениями.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Реализация.Номенклатура КАК Номенклатура,
| СУММА(Реализация.Количество) КАК Количество
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Реализация
|ГДЕ
| Реализация.Ссылка.Дата МЕЖДУ &Начало И &Конец
|СГРУППИРОВАТЬ ПО
| Реализация.Номенклатура";
Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДата()));
Результат = Запрос.Выполнить().Выгрузить();Язык выражений СКД и макеты отчётов
Система компоновки данных (СКД) — механизм построения отчётов без написания программного кода вывода. Разработчик описывает набор данных (обычно запросом), связи, ресурсы и настройки группировок, а платформа сама формирует результат и позволяет пользователю менять отборы и структуру отчёта.
Внутри СКД есть собственный язык выражений: на нём пишутся вычисляемые поля, выражения ресурсов, параметры расшифровки. Он похож на встроенный язык, но ограничен — доступны арифметика, функции работы со строками и датами, условия через «Выбор Когда ... Тогда ... Конец». Сложную логику в выражения СКД встраивать нельзя, её выносят в запрос или в программную обработку результата.
Где в работе программиста 1С появляются другие языки
Хотя ядро разработки — это встроенный язык и запросы, реальные проекты часто выходят за пределы платформы. Наиболее частые сценарии с другими языками и технологиями:
- Интеграции через HTTP и веб-сервисы — обмен с сайтами, CRM, маркетплейсами по REST API; здесь нужно понимать JSON, XML, форматы запросов, а иногда читать документацию на примерах кода на других языках.
- Внешние компоненты — библиотеки по технологии Native API или COM, которые пишут на C++, C# или Delphi, когда платформе не хватает возможностей (работа со специфическим оборудованием, криптография, нестандартные протоколы).
- JavaScript и HTML — для полей HTML-документа в формах, визуализаций, карт, нестандартных интерфейсных элементов.
- SQL диалект конкретной СУБД — при администрировании и диагностике производительности полезно читать планы запросов в MS SQL Server или PostgreSQL.
- OneScript — независимая реализация интерпретатора языка 1С для скриптов автоматизации: сборка, тестирование, развёртывание (инструменты vanessa-runner, gitsync и подобные).
Сравнение вариантов
Основной инструмент для любой доработки конфигурации. Ограничение: работает только внутри платформы, не подходит для задач вне 1С.
Обязателен для выборки и анализа данных. Ограничение: только чтение и служебные временные таблицы, изменение данных выполняется объектными методами.
Подходит для отчётов с гибкими пользовательскими настройками. Ограничение: сложную логику в выражениях не реализовать.
Нужны для компонент, интеграций и обвязки. Ограничение: требуют отдельных навыков и усложняют сопровождение решения.
С чего начать изучение языка 1С
Путь в профессию обычно строится от простого к сложному. Сначала осваивают конфигуратор и структуру метаданных: справочники, документы, регистры, перечисления. Параллельно изучают базовый синтаксис встроенного языка на простых задачах — обработчики кнопок, проверки заполнения, простые расчёты.
Второй этап — язык запросов и работа с регистрами: понимание, как документ формирует движения и как из них собрать отчёт. Третий — типовые механизмы: подсистемы БСП (библиотека стандартных подсистем), обмены, права доступа, расширения конфигураций. Именно расширения сейчас являются рекомендуемым способом доработки типовых решений, чтобы не терять поддержку обновлений.
- 1Установите учебную версию платформы и откройте конфигуратор на демонстрационной базе
- 2Изучите объекты метаданных: справочники, документы, регистры сведений и накопления
- 3Освойте базовый синтаксис: переменные, условия, циклы, процедуры и функции
- 4Напишите первые обработчики событий формы и объекта (ПриЗаписи, ОбработкаПроведения)
- 5Изучите язык запросов: выборки, соединения, группировки, виртуальные таблицы
- 6Соберите первый отчёт на СКД без программного вывода
- 7Разберите механизм расширений и доработайте типовую конфигурацию без изменения её кода
Частые ошибки начинающих разработчиков
Отдельно стоит сказать про смешение клиентского и серверного контекста. В управляемых формах код делится на клиентскую и серверную части, и не все типы доступны на клиенте (например, запросы выполняются только на сервере). Попытка выполнить серверный код на клиенте — одна из самых частых ошибок компиляции у новичков.
Как понять, что язык освоен
Как проверить результат
Свободно читаете модули типовой конфигурации и понимаете логику
Каждая вторая конструкция требует поиска в синтакс-помощнике
Пишете запрос с соединениями и виртуальными таблицами без конструктора
Любая выборка делается перебором в цикле
Собираете отчёт на СКД с настройками пользователя
Отчёт формируется только программным выводом в табличный документ
Используете расширения и не меняете типовой код
Конфигурация снята с поддержки ради мелких правок
Что важно запомнить
Программист 1С пишет на встроенном языке платформы с русским или английским синтаксисом. Второй обязательный инструмент — язык запросов, третий — СКД для отчётов. Внешние языки нужны лишь для компонент и интеграций. Начинать обучение стоит с метаданных и простых обработчиков, а все эксперименты проводить на копии базы.
Частые вопросы
Язык 1С — это полноценный язык программирования?
Да, это полноценный язык со своей экосистемой: переменные, функции, исключения, коллекции, объектная модель прикладных объектов. Его ограничение в другом — он работает только внутри платформы 1С и не предназначен для системных задач, но в своей предметной области закрывает практически все потребности учётной разработки.
Нужно ли знать другие языки, чтобы стать программистом 1С?
Для старта достаточно встроенного языка и запросов. Знание SQL, JavaScript или C# становится полезным на уровне уверенного специалиста — для интеграций, диагностики производительности и внешних компонент. Опыт любого другого языка заметно ускоряет освоение 1С, потому что базовые концепции программирования совпадают.
Почему в 1С код пишут на русском — это не моветон?
Нет, это штатная возможность платформы и стандарт фирмы «1С» для типовых конфигураций. Русский синтаксис снижает порог входа для специалистов без программистского прошлого и делает код читаемым для внедренцев и консультантов. Английский вариант тоже поддерживается и используется там, где это удобнее команде.
Чем язык запросов 1С отличается от обычного SQL?
Запрос 1С оперирует объектами метаданных (документы, регистры), а не физическими таблицами, и платформа сама транслирует его в SQL конкретной СУБД. Добавлены специфические возможности: виртуальные таблицы регистров, итоги по иерархии, представления ссылок. Прямого доступа к таблицам СУБД из запроса 1С нет — и обходить это ограничение прямыми SQL-обращениями к базе небезопасно.
Сколько времени нужно, чтобы научиться программировать в 1С?
Базовый синтаксис и простые доработки осваиваются за несколько недель практики. Уверенное владение — запросы, СКД, типовые механизмы, расширения — обычно требует нескольких месяцев реальных задач. Срок сильно зависит от того, есть ли опыт программирования и понимание учётных процессов: знание предметной области в 1С не менее важно, чем синтаксис.
Можно ли писать для 1С на Python или C#?
Напрямую бизнес-логику конфигурации на них написать нельзя — платформа исполняет только встроенный язык. Но Python и C# применяют рядом: внешние компоненты, сервисы-посредники для интеграций, скрипты автоматизации разработки. Для скриптов вокруг 1С также существует OneScript — интерпретатор с синтаксисом, идентичным встроенному языку.