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

Разработка и Конфигурация · 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С не обходится ни один отчёт, ни одна обработка больших объёмов данных. Ключевое правило: данные выбираются запросом, а не перебором записей в цикле. Перебор через Выборка.Следующий() или обращение к объектам в цикле — самая частая причина медленной работы самописных доработок.

Типичные ошибки новичков
01
Перебор справочника или документов в цикле вместо запроса — при росте базы обработка начинает работать минутами
02
Запросы внутри цикла — каждый проход порождает обращение к СУБД; правильно собрать данные одним запросом и обойти результат
03
Прямые запросы к таблицам СУБД в обход платформы — нарушение лицензионных ограничений и риск повредить данные из-за неочевидной структуры хранения
04
Игнорирование разделения клиентского и серверного кода — обращение к базе из клиентского контекста приводит к ошибкам в тонком и веб-клиенте

Нужен ли 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 станет вашим рабочим инструментом.

Что учить под разные цели

Только встроенный язык + запросы

Достаточно для типовой доработки конфигураций, отчётов и обработок. Стартовый минимум для трудоустройства

Плюс PowerShell и основы SQL

Нужно тем, кто совмещает разработку с администрированием серверов 1С и СУБД

Плюс Python и HTTP/REST

Для интеграций с сайтами, CRM, маркетплейсами и внешними сервисами

Плюс OneScript, Git, EDT

Для командной разработки, контроля версий и автоматизации тестирования

1C:Enterprise Development Tools и современный стек

1C:EDT — среда разработки на базе Eclipse, которую фирма «1С» позиционирует как современную альтернативу конфигуратору. Язык остаётся тем же встроенным, но появляются привычные программистам возможности: полноценная работа с Git, статический анализ кода, навигация по проекту, рефакторинг. Для новых проектов и командной разработки EDT всё чаще становится стандартом.

Если вы приходите в 1С из другой экосистемы, EDT снизит порог входа: интерфейс и горячие клавиши похожи на Eclipse/IDEA, а проект хранится в файлах, пригодных для системы контроля версий. Однако конфигуратор всё равно придётся освоить — он нужен для обновления типовых конфигураций, работы с хранилищем и ряда административных операций.

Порядок изучения для новичка
  1. 1
    Установите учебную версию платформы 1С:Предприятие и откройте конфигуратор
  2. 2
    Освойте дерево метаданных: справочники, документы, регистры, отчёты — что за что отвечает
  3. 3
    Выучите базовый синтаксис встроенного языка: переменные, условия, циклы, процедуры и функции
  4. 4
    Напишите первую обработку: создание и проведение документа программно
  5. 5
    Освойте конструктор запросов и язык запросов, научитесь строить отчёт на СКД
  6. 6
    Разберитесь с разделением клиентского и серверного контекста и директивами компиляции
  7. 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 нужны только для интеграций, администрирования и автоматизации процессов разработки, а начинать путь стоит с практики на учебной конфигурации.