Разработка и Конфигурация · 11 мин
Как называется язык программирования 1С и что он собой представляет
Язык программирования 1С называется встроенным языком 1С:Предприятия. Разбираем его особенности, синтаксис, отличия от других языков и с чего начать изучение.
Язык программирования, на котором пишут код в системе 1С, официально называется встроенный язык 1С:Предприятия (в документации также встречается термин «встроенный язык платформы»). В профессиональной среде его часто называют просто «язык 1С», «язык конфигуратора» или «1С-скрипт». Отдельного короткого имени вроде Python или Java у него нет — это самостоятельный язык, существующий только внутри платформы 1С:Предприятие.
Важно понимать: встроенный язык — не универсальный инструмент, а предметно-ориентированный язык, созданный специально для описания бизнес-логики: проведения документов, расчёта итогов по регистрам, формирования отчётов, обработки данных справочников. Вне платформы 1С этот код выполнить нельзя — у него нет независимого компилятора или интерпретатора.
Ниже разберём, как устроен встроенный язык, на каком языке пишут, чем он отличается от популярных языков программирования, где именно в конфигурации размещается код и с чего начать изучение, если вы хотите освоить разработку на 1С.
Как официально называется язык 1С и почему возникает путаница
В официальной документации фирмы «1С» используется термин «встроенный язык» (1C:Enterprise script в англоязычных материалах). Слово «встроенный» здесь ключевое: язык встроен в платформу и не существует отдельно от неё. Программисты в повседневном общении говорят «код на 1С», «модуль на встроенном языке», реже — «1С-скрипт».
Путаница возникает по нескольким причинам. Во-первых, новички ищут аналогию с известными языками и спрашивают, «на чём написана 1С» — это другой вопрос: сама платформа написана преимущественно на C++, но прикладной разработчик с этим кодом не работает. Во-вторых, в запросах к данным используется отдельный язык запросов 1С, похожий на SQL, и его иногда ошибочно считают основным языком программирования.
Ключевые особенности встроенного языка
Самая известная особенность — двуязычный синтаксис. Все ключевые слова, операторы и встроенные функции имеют русский и английский варианты: Если и If, Цикл и Do, Сообщить() и Message(). В одном модуле можно смешивать оба варианта, хотя на практике так делать не принято. Русский синтаксис снижает порог входа для специалистов без классического программистского образования.
Другие важные характеристики языка:
- Динамическая типизация — тип переменной определяется значением в момент присваивания, объявлять тип заранее не нужно.
- Слабая типизация — многие преобразования выполняются неявно, что удобно, но требует аккуратности при сравнении значений разных типов.
- Регистронезависимость — имена переменных и ключевые слова можно писать в любом регистре.
- Встроенные прикладные типы — документы, справочники, регистры, перечисления доступны как полноценные типы языка, а не как внешние библиотеки.
- Разделение контекстов — код делится на клиентский и серверный, с директивами компиляции
&НаКлиентеи&НаСервере.
По стилю язык напоминает помесь Basic и Pascal: есть процедуры и функции, условные операторы, циклы «Для» и «Пока», обработка исключений через Попытка...Исключение. Объектно-ориентированное программирование в классическом виде отсутствует — нельзя создавать собственные классы с наследованием, но можно работать с объектами встроенных типов.
Как выглядит код: пример простой процедуры
Типичный фрагмент кода на встроенном языке — обработчик события или процедура в модуле. Например, функция, рассчитывающая сумму с НДС:
Функция РассчитатьСуммуСНДС(Сумма, СтавкаНДС) Экспорт
Если СтавкаНДС = 0 Тогда
Возврат Сумма;
КонецЕсли;
СуммаНДС = Сумма * СтавкаНДС / 100;
Возврат Сумма + СуммаНДС;
КонецФункции
Код пишется в конфигураторе — среде разработки, входящей в состав платформы. Редактор кода поддерживает подсветку синтаксиса, контекстную подсказку, шаблоны кода и синтакс-помощник — встроенную справку по всем методам и свойствам объектов платформы.
Язык запросов 1С — второй язык платформы
Кроме встроенного языка, в платформе есть язык запросов — декларативный язык для выборки данных из базы, синтаксически близкий к SQL. Он не заменяет встроенный язык, а дополняет его: запрос выбирает данные, а встроенный язык обрабатывает результат и реализует логику.
Язык запросов 1С имеет собственные расширения по сравнению с классическим SQL: виртуальные таблицы регистров (остатки, обороты, срезы), итоги по иерархии, разделители, представления ссылок. Текст запроса обычно хранится в коде как строка и передаётся объекту Запрос.
| Критерий | Встроенный язык | Язык запросов |
|---|---|---|
| Назначение | Алгоритмы и бизнес-логика | Выборка и группировка данных |
| Стиль | Императивный (процедурный) | Декларативный, близкий к SQL |
| Изменение данных | Да, через объекты | Нет, только чтение |
| Где пишется | Модули конфигурации | Строки в коде, консоль запросов, СКД |
Где именно размещается код в конфигурации
Код на встроенном языке не хранится в отдельных файлах проекта, как в классической разработке, а распределён по модулям внутри структуры конфигурации. Основные виды модулей:
- Общие модули — библиотеки процедур и функций, доступные из любого места конфигурации.
- Модули объектов — обработчики событий справочников, документов (перед записью, при проведении).
- Модули форм — логика интерфейса: реакция на нажатия кнопок, изменение полей.
- Модуль приложения и модуль сеанса — инициализация при запуске системы.
- Модули менеджеров и команд — обработка команд интерфейса, печатные формы.
- 1Запустите конфигуратор и откройте нужную информационную базу.
- 2В дереве конфигурации найдите объект, например документ.
- 3Щелкните правой кнопкой и выберите «Открыть модуль объекта» или откройте форму и её модуль.
- 4Для поиска по всему коду используйте «Правка → Глобальная замена» или поиск по конфигурации.
- 5Проверьте синтаксис через «Конфигурация → Проверка конфигурации».
Чем встроенный язык отличается от других языков программирования
Сравнение с популярными языками помогает понять нишу встроенного языка. Он не конкурирует с Java или C# — у него другая задача: максимально быстро описывать учётную логику в терминах предметной области.
Сравнение с другими языками
Заточен под учётные задачи, прикладные типы встроены в язык, но работает только внутри платформы и не подходит для задач вне 1С.
Универсальные языки с богатой экосистемой; для учётных задач потребуется писать всю инфраструктуру самостоятельно или интегрироваться с 1С извне.
Стандарт работы с базами данных; язык запросов 1С похож на него, но дополнен виртуальными таблицами и прикладными конструкциями.
Практическое следствие: навыки встроенного языка плохо переносятся на другие платформы, и наоборот — опытный разработчик на C# не сможет сразу эффективно писать на 1С, потому что главная сложность не в синтаксисе, а в знании объектной модели платформы: как устроены регистры, движения документов, механизмы проведения.
С чего начать изучение языка 1С
Оптимальный путь для новичка — от простого к прикладному. Сначала осваивается базовый синтаксис: переменные, условия, циклы, процедуры и функции, работа со строками, датами, массивами и структурами. Затем — прикладные объекты: справочники, документы, регистры, запросы.
- 1Установите учебную версию платформы и откройте конфигуратор.
- 2Изучите базовый синтаксис: переменные, операторы Если и Цикл, процедуры и функции.
- 3Освойте универсальные коллекции: массив, структура, соответствие, таблица значений.
- 4Перейдите к прикладным объектам: справочники, документы, регистры сведений и накопления.
- 5Изучите язык запросов и научитесь выбирать данные без обхода в цикле.
- 6Практикуйтесь на учебной задаче: например, простой учёт товаров с документами прихода и расхода.
Основной справочный инструмент — синтакс-помощник, встроенный в конфигуратор (открывается через меню «Справка» или по Ctrl+F1 на имени метода). Он содержит описание всех объектов, методов и свойств платформы с примерами. Дополнительно полезны официальные учебные курсы и документация на портале 1С.
Расширения и внешние компоненты: границы языка
Когда возможностей встроенного языка не хватает, платформа предлагает механизмы расширения. Расширения конфигурации позволяют дописывать код поверх типовой конфигурации, не изменяя её, — это основной рекомендуемый способ доработок. Для интеграций используются HTTP-сервисы, веб-сервисы и работа с файлами прямо из встроенного языка.
Для низкоуровневых задач (работа с оборудованием, специфические протоколы) существуют внешние компоненты по технологии Native API — их пишут на C++, а подключают к 1С. Это уже зона системной разработки, требующая другой квалификации.
Что важно запомнить
Язык программирования 1С называется встроенным языком 1С:Предприятия. Он работает только внутри платформы, имеет русский и английский синтаксис и дополняется языком запросов, похожим на SQL. Код размещается в модулях конфигурации, а изучение стоит начинать с базового синтаксиса и синтакс-помощника.
Частые вопросы о языке программирования 1С
1С — это язык программирования или программа?
1С — это прежде всего платформа (среда исполнения и разработки) плюс семейство прикладных конфигураций: «Бухгалтерия», «Управление торговлей» и другие. Язык программирования — лишь одна из составляющих платформы, он называется встроенным языком.
Можно ли писать для 1С на Python или другом языке?
Напрямую внутри платформы — нет, прикладной код пишется только на встроенном языке. Но внешние системы на любом языке могут взаимодействовать с 1С через HTTP-сервисы, веб-сервисы, файловый обмен или COM-соединение.
Сложно ли выучить встроенный язык 1С?
Базовый синтаксис осваивается быстро, особенно благодаря русским ключевым словам. Основная сложность — не язык, а объектная модель платформы: регистры, механизмы проведения, система компоновки данных. На уверенное владение обычно уходит несколько месяцев практики.
Чем язык запросов 1С отличается от SQL?
Язык запросов 1С синтаксически похож на SQL, но работает не с физическими таблицами базы, а с прикладными объектами и виртуальными таблицами (остатки, обороты, срезы последних). Платформа сама транслирует запрос в SQL конкретной СУБД.
На каком языке написана сама платформа 1С?
Ядро платформы написано преимущественно на C++. Прикладной разработчик с этим кодом не сталкивается — вся работа ведётся на встроенном языке в конфигураторе.
Что такое OneScript и как он связан с языком 1С?
OneScript — независимый открытый интерпретатор, реализующий синтаксис встроенного языка 1С вне платформы. Его используют для скриптов автоматизации, сборок и DevOps-задач в экосистеме 1С. Это сторонний проект, а не продукт фирмы «1С».