Разработка и Конфигурация · 11 мин
Язык 1С: что это за язык программирования и как он работает
Что за язык программирования используется в 1С: особенности встроенного языка, русский синтаксис, отличия от других языков, где применяется и с чего начать изучение.
Встроенный язык 1С — это предметно-ориентированный язык программирования, созданный фирмой «1С» специально для разработки бизнес-приложений на платформе «1С:Предприятие». Он не существует отдельно от платформы: код на нём исполняется только внутри среды «1С:Предприятие» и оперирует прикладными объектами — документами, справочниками, регистрами, отчётами. Главная задача языка — описывать логику учёта и автоматизации, а не решать универсальные вычислительные задачи.
Язык часто называют «встроенным» или «языком конфигуратора», потому что он встроен в платформу и недоступен как самостоятельный компилятор, как, например, Python или C++. Разработчик пишет код в конфигураторе, привязывая его к событиям объектов: записи документа, нажатию кнопки формы, формированию отчёта. Платформа сама управляет транзакциями, доступом к базе данных и интерфейсом.
Характерная особенность, которая удивляет новичков, — двуязычный синтаксис. Одни и те же операторы можно писать на русском («Если», «Для», «КонецЕсли») или на английском («If», «For», «EndIf»), причём смешивать оба варианта в одном модуле. В российских компаниях традиционно используется русский синтаксис, и большинство типовых конфигураций написаны именно на нём.
Что представляет собой встроенный язык 1С
По классификации это высокоуровневый интерпретируемый язык с динамической типизацией. Переменные не требуют объявления типа заранее: одна и та же переменная может сначала хранить число, а затем строку. Код компилируется платформой в промежуточное представление при сохранении конфигурации и исполняется встроенной виртуальной машиной.
Язык не является объектно-ориентированным в классическом смысле: в нём нельзя создавать собственные классы и наследование. Вместо этого разработчик работает с готовыми типами объектов платформы — «ДокументОбъект», «СправочникСсылка», «Запрос» и другими. Собственные «классы» имитируются через общие модули, где размещаются экспортные процедуры и функции.
Ещё одна черта — нечувствительность к регистру. Имена «Номенклатура», «номенклатура» и «НОМЕНКЛАТУРА» для языка идентичны. Точка с запятой обязательна в конце каждого оператора, а комментарии начинаются с двойного слеша «//».
Как выглядит код: базовый синтаксис
Структура программы на языке 1С проста: процедуры и функции, условия, циклы, обращение к объектам. Типичный фрагмент кода, рассчитывающий сумму по табличной части документа, выглядит так:
Процедура РассчитатьИтог() Экспорт
Итог = 0;
Для Каждого Строка Из Товары Цикл
Итог = Итог + Строка.Количество * Строка.Цена;
КонецЦикла;
СуммаДокумента = Итог;
КонецПроцедуры
Обратите внимание на конструкцию «Для Каждого ... Из ... Цикл» — это основной способ обхода коллекций: строк табличных частей, результатов запроса, массивов. Условия записываются через «Если ... Тогда ... Иначе ... КонецЕсли», функции возвращают значение оператором «Возврат».
Все прикладные данные доступны через метаданные конфигурации. Например, создать новый элемент справочника можно так: «НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент()», затем заполнить реквизиты и вызвать метод «Записать()». Платформа сама сформирует SQL-запрос к базе данных — разработчик не пишет INSERT или UPDATE вручную.
Чем язык 1С отличается от универсальных языков
Сравнение с популярными языками помогает понять нишу встроенного языка и не ждать от него лишнего.
| Критерий | Язык 1С | Python / C# / Java |
|---|---|---|
| Назначение | Бизнес-логика учёта внутри платформы 1С | Универсальные задачи любого типа |
| Среда исполнения | Только платформа «1С:Предприятие» | Собственные интерпретаторы и виртуальные машины |
| Работа с БД | Через объекты и язык запросов, SQL скрыт | SQL, ORM-библиотеки, драйверы |
| Синтаксис | Русский и/или английский | Английский |
| Свои классы и наследование | Нет | Есть |
| Область применения | ERP, бухгалтерия, торговля, зарплата | Веб, игры, наука, системное ПО |
Ключевое отличие — уровень абстракции. В 1С разработчик мыслит категориями «провести документ», «получить остатки по регистру», а не «открыть соединение с базой и выполнить запрос». Это ускоряет разработку учётных систем, но делает язык бесполезным вне экосистемы 1С.
Язык запросов 1С — второй язык внутри платформы
Помимо встроенного языка, в платформе есть отдельный язык запросов, похожий на SQL. Он используется для выборки данных из базы и тоже поддерживает русский и английский синтаксис: «ВЫБРАТЬ ... ИЗ ... ГДЕ ...» или «SELECT ... FROM ... WHERE ...».
Запрос — не самостоятельная программа, а объект встроенного языка. Типичный сценарий: создать объект «Запрос», присвоить ему текст, установить параметры, выполнить и обойти результат. Именно связка «встроенный язык + язык запросов» покрывает почти все задачи разработки в 1С.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить(Результат.Товар);
КонецЦикла;
Где исполняется код: клиент, сервер и контексты
Платформа 1С работает в клиент-серверной архитектуре, поэтому один и тот же язык исполняется в разных местах. Директивы компиляции определяют контекст: «&НаКлиенте» — код выполняется на компьютере пользователя и управляет интерфейсом, «&НаСервере» — код выполняется на сервере, где доступны данные и запросы.
Это важное ограничение: в клиентском коде нельзя напрямую обращаться к базе данных, а в серверном — показывать диалоги пользователю. Переход с клиента на сервер — это сетевой вызов, поэтому лишние серверные вызовы из циклов заметно замедляют формы.
Что можно и чего нельзя сделать на языке 1С
Язык хорошо справляется со своей нишей: проведение документов, расчёт зарплаты и налогов, обмен данными, формирование отчётов, интеграция с веб-сервисами через HTTP-запросы и работа с файлами. Через механизмы платформы доступны COM-объекты, работа с XML и JSON, криптография и электронная подпись.
Ограничения тоже существенны. На встроенном языке не пишут драйверы, игры, сайты и мобильные приложения общего назначения. Нет многопоточности в привычном виде — есть фоновые задания. Нет прямого доступа к памяти и системным API. Для таких задач используют внешние компоненты, написанные на C++, которые подключаются к платформе.
Когда какой инструмент выбирать
Любая бизнес-логика внутри конфигурации: документы, расчёты, отчёты, печатные формы. Ограничение — только внутри платформы
Выборка и группировка данных из базы. Не умеет изменять данные — только читать
Когда нужны возможности ОС или специфическое оборудование, недоступные платформе. Требуют навыков C++ или другого языка
С чего начать изучение языка 1С
Порог входа в язык невысокий: русский синтаксис и простая структура позволяют писать первые программы через несколько дней. Но эффективная разработка требует понимания платформы целиком, а не только синтаксиса.
- 1Установите учебную версию платформы и конфигуратор, создайте пустую конфигурацию
- 2Освойте базовый синтаксис: переменные, условия, циклы, процедуры и функции
- 3Изучите прикладные объекты: справочники, документы, регистры сведений и накопления
- 4Освойте язык запросов и конструктор запросов в конфигураторе
- 5Напишите учебную мини-конфигурацию: приход товара, расход, отчёт по остаткам
- 6Разберите, как работает проведение документов и движение по регистрам — это ядро учётной логики
Хорошая проверка понимания — умение ответить на вопрос, почему документ «не проводится»: какие записи он должен сформировать в регистрах, в каком модуле находится обработчик проведения и как посмотреть движения. Это практический навык, который отличает знающего платформу от знающего только синтаксис.
Как проверить, что вы освоили базу
Код сохраняется без синтаксических ошибок и выполняется
Конфигуратор подчёркивает операторы красным, модуль не сохраняется
После проведения в регистре появляются корректные записи
Документ проводится, но движений нет — обработчик проведения не заполнен
Выборка возвращает только нужные строки
Ошибка «поле не найдено» или пустой результат при наличии данных
Частые вопросы о языке 1С
Язык 1С — это полноценный язык программирования?
Да, это полноценный язык с переменными, функциями, условиями, циклами и обработкой исключений. Его специфика — предметная направленность: он работает только внутри платформы «1С:Предприятие» и оптимизирован под задачи учёта, а не под универсальную разработку.
Почему в 1С код пишут на русском языке?
Русский синтаксис снижает порог входа для специалистов без классического программистского образования — бухгалтеров и внедренцев, которые осваивали автоматизацию своей области. Технически язык полностью двуязычен: любой оператор имеет английский аналог, и варианты можно смешивать.
Можно ли использовать язык 1С вне платформы 1С?
Нет. У языка нет отдельного компилятора или интерпретатора — код исполняется только средой «1С:Предприятие». Программы на нём не превращаются в самостоятельные exe-файлы и не запускаются без установленной платформы и лицензии.
Сложно ли изучить язык 1С с нуля?
Синтаксис осваивается быстро — обычно за несколько недель практики. Основная сложность не в языке, а в понимании платформы: объектной модели, механизма проведения документов, регистров и языка запросов. Именно на них уходит большая часть времени обучения.
Какой язык учить для 1С: встроенный или что-то ещё?
Для разработки внутри 1С нужен именно встроенный язык и язык запросов — альтернативы платформа не предлагает. Знание SQL помогает понять запросы, а знание любого языка программирования облегчает усвоение конструкций, но заменить встроенный язык они не могут.
Чем 1С-программист отличается от обычного программиста?
Разработчик 1С совмещает программирование с пониманием учётных процессов: проводок, остатков, расчёта зарплаты, закрытия периода. Ценность специалиста определяется не только качеством кода, но и умением перевести требования бухгалтерии или склада в корректную учётную схему.
Что важно запомнить
Язык 1С — встроенный предметно-ориентированный язык платформы «1С:Предприятие» с русским и английским синтаксисом. Он предназначен для бизнес-логики учёта, работает только внутри платформы и дополняется языком запросов. Изучение стоит начинать с синтаксиса и прикладных объектов, а ключевой навык — понимание проведения документов и движений по регистрам.