Разработка и Конфигурация · 12 мин
Какой язык программирования нужен для 1С
Какой язык программирования используется в 1С: встроенный язык платформы, запросы, запуск внешних скриптов и что учить новичку для работы с 1С.
Для разработки и доработки конфигураций 1С используется один основной инструмент — встроенный язык платформы 1С:Предприятие. Это не Python, не C# и не Java: у платформы собственный язык, который существует только внутри среды 1С и компилируется её исполнителем. Код на нём пишется прямо в конфигураторе, в модулях объектов, форм, общих модулей и обработчиках событий.
Особенность встроенного языка — возможность писать код как на русском, так и на английском синтаксисе. Инструкция Если Условие Тогда ... КонецЕсли; и If Условие Then ... EndIf; — это один и тот же оператор. В российских компаниях и типовых конфигурациях традиционно используется русский синтаксис, поэтому именно его стоит учить в первую очередь, если вы планируете работать с 1С:Бухгалтерией, 1С:Управление торговлей или ЗУП.
Помимо встроенного языка, разработчику 1С неизбежно понадобится язык запросов 1С — декларативный язык, похожий на SQL, но работающий с объектами конфигурации, а не с таблицами базы данных напрямую. А для интеграций, внешних обработок и автоматизации инфраструктуры пригодятся внешние языки: Python, PowerShell, JavaScript. Ниже разберём, что именно учить и в каком порядке.
Что такое встроенный язык 1С и почему он обязателен
Встроенный язык 1С — это предметно-ориентированный язык, заточенный под бизнес-логику: документы, справочники, регистры, проведение, расчёты. В нём нет классов и наследования в привычном объектно-ориентированном смысле — вместо этого используются объекты конфигурации, описанные в дереве метаданных, и модули, в которых размещаются процедуры и функции.
Простой пример кода на встроенном языке:
Функция РассчитатьСкидку(СуммаПокупки) Экспорт
Если СуммаПокупки >= 100000 Тогда
Возврат СуммаПокупки * 0.1;
ИначеЕсли СуммаПокупки >= 50000 Тогда
Возврат СуммаПокупки * 0.05;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Код размещается в модулях разных типов: модуль объекта (логика конкретного документа или справочника), модуль формы (поведение интерфейса), общие модули (переиспользуемая логика), модуль менеджера. Понимание того, где какой код должен жить и когда он выполняется (на клиенте или на сервере), — половина мастерства разработчика 1С.
Русский или английский синтаксис: что выбрать
Платформа поддерживает оба варианта синтаксиса, и они полностью взаимозаменяемы — код можно даже смешивать, хотя делать этого не стоит. Выбор определяется не личными предпочтениями, а кодовой базой, с которой вы будете работать.
- Русский синтаксис — стандарт де-факто для типовых конфигураций фирмы «1С» и подавляющего большинства российских проектов. Если вы устраиваетесь на поддержку 1С:Бухгалтерии или ЗУП, вы будете читать и писать русский код.
- Английский синтаксис — встречается в международных проектах, у некоторых франчайзи и в командах, работающих по западным стандартам разработки.
Практический совет: учите русский синтаксис первым, но привыкайте узнавать английские аналоги — документация и зарубежные ресурсы часто приводят примеры на английском. Конфигуратор умеет отображать оба варианта, переключение делается в настройках.
Язык запросов 1С: второй обязательный язык
Язык запросов 1С — декларативный язык выборки данных, синтаксически близкий к SQL, но оперирующий именами объектов конфигурации: Справочник.Номенклатура, Документ.РеализацияТоваровУслуг, РегистрНакопления.Продажи.Обороты. Платформа сама транслирует запрос в SQL для конкретной СУБД (MS SQL Server, PostgreSQL, Oracle, IBM Db2 или файловой базы).
Пример запроса:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Продажи.Номенклатура,
| СУММА(Продажи.КоличествоОборот) КАК Количество
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
|СГРУППИРОВАТЬ ПО
| Продажи.Номенклатура";
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДатаСеанса()));
Результат = Запрос.Выполнить().Выгрузить();
Без языка запросов в 1С не обходится ни один отчёт, ни одна обработка больших объёмов данных. Ключевое правило: данные выбираются запросом, а не перебором записей в цикле. Перебор через Выборка.Следующий() или обращение к объектам в цикле — самая частая причина медленной работы самописных доработок.
Нужен ли SQL разработчику 1С
Классический SQL в чистом виде внутри 1С не используется: платформа запрещает прямые обращения к таблицам базы данных штатными средствами, а структура хранения (таблицы вида _Document123, _Reference45) официально не документируется и может меняться между релизами. Поэтому писать SELECT напрямую к базе 1С — плохая и небезопасная практика.
Однако понимание SQL полезно на уровне концепций: что такое соединения таблиц, индексы, план запроса, блокировки. Администраторам и разработчикам, занимающимся производительностью, приходится читать планы запросов в MS SQL Server или PostgreSQL и понимать, почему платформенный запрос выполняется медленно. Это уже уровень продвинутой оптимизации, а не стартовое требование.
Внешние языки для интеграций и автоматизации
За пределами платформы разработчик и администратор 1С регулярно сталкиваются с задачами, где нужны другие языки. Вот типичная карта применения:
| Язык | Где применяется в связке с 1С | Насколько обязателен |
|---|---|---|
| Python | Интеграции через HTTP-сервисы, обработка файлов, парсинг данных, скрипты обмена | Желателен для интеграционных задач |
| PowerShell / CMD | Автоматизация бэкапов, пакетное обновление конфигураций, запуск конфигуратора в пакетном режиме | Желателен администраторам |
| JavaScript / HTML | Веб-клиентские расширения, внешние компоненты, поля HTML-документа в формах | По необходимости |
| Java / C# | Разработка внешних компонент по технологии Native API, мобильные решения | Только для узких задач |
| OneScript (1Script) | Скрипты на синтаксисе 1С вне платформы: сборка, тестирование, CI/CD | Для DevOps-практик в 1С |
Отдельного упоминания заслуживает OneScript — открытый интерпретатор, исполняющий код на синтаксисе, близком к встроенному языку 1С, вне платформы. На нём построены инструменты вроде vanessa-automation (тестирование), gitsync (выгрузка конфигурации в Git) и precommit1c. Если вы планируете строить современный процесс разработки с контролем версий и автотестами, OneScript станет вашим рабочим инструментом.
Что учить под разные цели
Достаточно для типовой доработки конфигураций, отчётов и обработок. Стартовый минимум для трудоустройства
Нужно тем, кто совмещает разработку с администрированием серверов 1С и СУБД
Для интеграций с сайтами, CRM, маркетплейсами и внешними сервисами
Для командной разработки, контроля версий и автоматизации тестирования
1C:Enterprise Development Tools и современный стек
1C:EDT — среда разработки на базе Eclipse, которую фирма «1С» позиционирует как современную альтернативу конфигуратору. Язык остаётся тем же встроенным, но появляются привычные программистам возможности: полноценная работа с Git, статический анализ кода, навигация по проекту, рефакторинг. Для новых проектов и командной разработки EDT всё чаще становится стандартом.
Если вы приходите в 1С из другой экосистемы, EDT снизит порог входа: интерфейс и горячие клавиши похожи на Eclipse/IDEA, а проект хранится в файлах, пригодных для системы контроля версий. Однако конфигуратор всё равно придётся освоить — он нужен для обновления типовых конфигураций, работы с хранилищем и ряда административных операций.
- 1Установите учебную версию платформы 1С:Предприятие и откройте конфигуратор
- 2Освойте дерево метаданных: справочники, документы, регистры, отчёты — что за что отвечает
- 3Выучите базовый синтаксис встроенного языка: переменные, условия, циклы, процедуры и функции
- 4Напишите первую обработку: создание и проведение документа программно
- 5Освойте конструктор запросов и язык запросов, научитесь строить отчёт на СКД
- 6Разберитесь с разделением клиентского и серверного контекста и директивами компиляции
- 7Проверьте результат: создайте небольшую конфигурацию с нуля — справочник, документ, регистр и отчёт
Как проверить, что вы освоили нужный минимум
Формального сертификата «знаю язык 1С» не существует, но есть понятные практические маркеры готовности к реальным задачам. Ориентируйтесь на них, а не на количество прочитанных глав учебника.
Контрольные точки освоения
Понимаете, где код выполняется, какие данные читает и что меняет
Теряетесь в обращениях к менеджерам объектов и экспортным процедурам общих модулей
Пишете запрос с параметрами, группировкой и виртуальными таблицами регистров
Тянете данные перебором объектов или запросом в цикле
Строите отчёт на СКД без единой строки программного вывода
Формируете табличный документ вручную в цикле
Пользуетесь точками останова, замером производительности и журналом регистрации
Ищете ошибки методом «добавить Сообщить() везде»
Дополнительным ориентиром служит экзамен «1С:Профессионал» по платформе — его темы хорошо покрывают тот минимум, который работодатели считают базовым. Сам сертификат не обязателен, но программа экзамена — удобный чек-лист для самопроверки.
Самый быстрый способ освоить встроенный язык — не курсы по синтаксису, а разбор реальной задачи: взять учебную конфигурацию, поставить себе цель (например, обработку загрузки прайса из Excel) и довести её до рабочего состояния, подглядывая в синтакс-помощник конфигуратора. Синтакс-помощник (Ctrl+F1) — главный справочник разработчика, он встроен прямо в среду разработки.
Частые вопросы о языках для 1С
Можно ли программировать в 1С на Python или C#?
Нет, бизнес-логику внутри конфигурации можно писать только на встроенном языке платформы. Python, C# и другие языки применяются снаружи: для интеграций через HTTP-сервисы и COM-соединение, разработки внешних компонент, скриптов обмена. Внутри базы 1С исполняется только код встроенного языка.
Сложно ли выучить встроенный язык 1С человеку без опыта программирования?
Встроенный язык считается одним из самых доступных для старта: русский синтаксис, предметная ориентация на понятные бухгалтеру и менеджеру сущности, мощный синтакс-помощник. Сложность обычно вызывает не сам язык, а устройство платформы — регистры, проведение, механизмы СКД. Реалистичный срок освоения базового минимума при регулярной практике — несколько месяцев.
Нужно ли знать SQL для работы с 1С?
На старте — нет: вместо SQL используется язык запросов 1С, который платформа сама переводит в диалект конкретной СУБД. Но для задач оптимизации производительности и администрирования серверных баз понимание SQL-концепций (индексы, планы запросов, блокировки) становится заметным преимуществом.
Что такое OneScript и зачем он нужен?
OneScript — независимый интерпретатор, исполняющий скрипты на синтаксисе, похожем на встроенный язык 1С, вне платформы. Он применяется для автоматизации процессов разработки: выгрузка конфигурации в Git, запуск автотестов, сборка релизов, проверка кода. Обычному пользователю или бухгалтеру он не нужен — это инструмент разработчиков и DevOps-инженеров в экосистеме 1С.
Конфигуратор или 1C:EDT — где писать код новичку?
Новичку проще начать с конфигуратора: он входит в поставку платформы, не требует настройки и полностью покрывает учебные задачи. EDT стоит осваивать на следующем этапе, когда понадобятся Git, командная разработка и статический анализ кода. Язык в обеих средах один и тот же — переход касается только инструментария.
Достаточно ли знать только 1С, чтобы работать программистом?
Для позиции разработчика 1С — да, встроенного языка и языка запросов достаточно, это самостоятельная и востребованная специализация. Но рост в профессии (интеграции, высокие нагрузки, DevOps) неизбежно потребует смежных навыков: основ HTTP и REST, PowerShell, понимания СУБД и систем контроля версий.
Что важно запомнить
Главный и единственный язык внутри 1С — встроенный язык платформы, который учат на русском синтаксисе прямо в конфигураторе. Второй обязательный инструмент — язык запросов 1С. Python, PowerShell, SQL и OneScript нужны только для интеграций, администрирования и автоматизации процессов разработки, а начинать путь стоит с практики на учебной конфигурации.