Разработка и Конфигурация · 10 мин
Какой язык программирования используют в 1С
Какой язык программирования используют в 1С: встроенный язык платформы, его синтаксис, русские и английские команды, запросы, интеграции и с чего начать обучение.
За всю работу с кодом в 1С отвечает встроенный язык программирования платформы «1С:Предприятие». Это самостоятельный язык, разработанный фирмой «1С» специально для описания бизнес-логики: проведения документов, расчёта итогов, формирования отчётов и обработки данных. Он не является диалектом C++, Java или Python, хотя по структуре напоминает классические процедурные языки.
Главная особенность встроенного языка — двуязычный синтаксис. Одни и те же операторы можно писать как на русском (Если ... Тогда ... КонецЕсли;), так и на английском (If ... Then ... EndIf;). Компилятор воспринимает оба варианта и даже их смешение в одном модуле, хотя на практике смешивать стили не принято.
Помимо встроенного языка, разработчик 1С постоянно работает с языком запросов — он похож на SQL, но адаптирован под структуру метаданных 1С. А для интеграций и расширенных сценариев применяются внешние средства: COM, веб-сервисы, HTTP-запросы и внешние компоненты, которые могут быть написаны на других языках.
Что представляет собой встроенный язык 1С
Встроенный язык — это предметно-ориентированный язык, заточенный под задачи учёта и автоматизации бизнеса. В нём нет низкоуровневой работы с памятью, указателей или ручной сборки мусора: разработчик оперирует объектами прикладного решения — документами, справочниками, регистрами, перечислениями.
Язык исполняется внутри платформы: код хранится в модулях конфигурации, а не в отдельных файлах проекта. Компиляция происходит при сохранении конфигурации или обновлении базы данных, поэтому синтаксические ошибки выявляются до запуска прикладного решения у пользователей.
По типизации язык относится к динамически типизированным: тип переменной определяется значением в момент присваивания. Это ускоряет разработку, но требует внимательности — ошибка типа проявится только в момент выполнения конкретной ветки кода.
Как выглядит синтаксис: русский и английский варианты
Русский синтаксис — историческая особенность 1С, снижающая порог входа для специалистов без классического программистского образования. Типичный фрагмент кода читается почти как обычный текст: условия, циклы и процедуры описываются русскими ключевыми словами.
Английский вариант полностью зеркалит русский: каждому русскому оператору соответствует английский аналог. В коробочных конфигурациях от фирмы «1С» используется русский синтаксис, а в части отраслевых решений и международных проектов встречается английский.
Процедура РассчитатьСкидку(СуммаДокумента)
Если СуммаДокумента > 100000 Тогда
Скидка = 10;
Иначе
Скидка = 0;
КонецЕсли;
КонецПроцедурыВажно понимать: выбор синтаксиса не влияет на возможности языка. Ограничения задаёт не язык, а контекст исполнения — клиент или сервер, тонкий клиент или веб-клиент. Например, прямой доступ к файловой системе возможен только там, где платформа это разрешает.
Язык запросов 1С и его отличие от SQL
Для чтения данных из базы во встроенном языке используется язык запросов. Внешне он напоминает SQL: есть выборка полей, соединения таблиц, группировки и условия. Но работает он не с физическими таблицами СУБД, а с объектами метаданных — справочниками, документами, регистрами накопления и сведений.
У языка запросов 1С есть специфические конструкции: виртуальные таблицы (остатки, обороты, срез последних), иерархические выборки, разделители итогов. Эти механизмы скрывают сложность хранения данных и позволяют получать готовые агрегаты одним запросом.
Текст запроса — это строка во встроенном языке, которая передаётся объекту Запрос. Параметры запроса задаются явно, что защищает от подстановки небезопасных значений. Прямая конкатенация пользовательского ввода в текст запроса — типичная ошибка, ведущая к некорректной работе и потенциальным уязвимостям.
Где хранится и как выполняется код: модули конфигурации
Код на встроенном языке распределяется по модулям, каждый из которых имеет своё назначение и контекст исполнения. Понимание структуры модулей — обязательное условие, чтобы программировать в 1С осознанно, а не методом копирования чужих фрагментов.
- Модуль объекта — обработчики событий конкретного объекта (запись, проведение документа).
- Модуль формы — логика интерфейса: реакция на действия пользователя, работа с элементами формы.
- Общие модули — переиспользуемые процедуры и функции, доступные из разных мест конфигурации.
- Модуль менеджера — операции над коллекцией объектов, например, печатные формы и обработка получения данных.
- Модуль приложения и сеанса — события запуска системы и установка параметров сеанса.
Директивы компиляции &НаКлиенте и &НаСервере определяют, где будет выполняться процедура. Серверный код имеет доступ к базе данных, клиентский — к интерфейсу и файлам пользователя. Передача данных между ними стоит ресурсов, поэтому частые вызовы сервера из клиента — распространённая причина медленной работы форм.
Какие ещё языки и технологии применяются рядом с 1С
Встроенный язык закрывает почти все задачи внутри прикладного решения, но интеграции часто требуют внешних инструментов. Платформа поддерживает несколько стандартных механизмов взаимодействия с внешним миром.
| Технология | Для чего применяется | Язык внешней части |
|---|---|---|
| HTTP-сервисы и REST | Обмен данными с сайтами, мобильными приложениями | Любой на стороне внешней системы |
| Веб-сервисы (SOAP) | Интеграция с корпоративными системами | Любой на стороне внешней системы |
| Внешние компоненты (Native API, COM) | Работа с оборудованием, специфические алгоритмы | C++, C#, другие |
| COM-соединение | Обмен между базами 1С, старые интеграции | Не требуется |
| Форматы обмена (XML, JSON, CSV) | Файловый обмен, выгрузки в сторонние системы | Не требуется |
Отдельно стоит упомянуть OneScript — открытый интерпретатор языка, совместимого по синтаксису со встроенным языком 1С. Он применяется для DevOps-задач: автоматической сборки, тестирования, выгрузки конфигураций в системы контроля версий. Это не часть платформы, а сторонний инструмент экосистемы.
Сравнение вариантов
Основной инструмент разработки прикладной логики. Ограничение — работает только внутри платформы.
Выборка и агрегация данных из базы. Не предназначен для сложной алгоритмической обработки.
Автоматизация сборки, тестов и скриптов вне платформы. Не заменяет разработку конфигурации.
Подключение оборудования и нестандартных алгоритмов. Требуют навыков системного программирования.
С чего начать изучение языка 1С
Оптимальный путь — от простых задач к комплексным. Сначала осваивается конфигуратор и структура метаданных, затем базовый синтаксис, после этого — запросы и работа с формами. Практика на учебной конфигурации даёт результат быстрее, чем чтение документации без применения.
- 1Установите платформу и учебную версию конфигурации, откройте конфигуратор
- 2Изучите объекты метаданных: справочники, документы, регистры
- 3Напишите первую процедуру в общем модуле и вызовите её из формы
- 4Освойте язык запросов: выборки, соединения, виртуальные таблицы
- 5Разберитесь с директивами &НаКлиенте и &НаСервере
- 6Изучите типовые механизмы: проведение документов, печатные формы, отчёты на СКД
Проверять результат обучения удобно на конкретных прикладных задачах: создать документ с табличной частью, написать обработчик проведения, построить отчёт на системе компоновки данных. Если каждая задача решается без копирования готового кода — база освоена.
Большая часть кода типовых конфигураций написана по стандартам разработки фирмы «1С». Изучение этих стандартов и библиотеки стандартных подсистем (БСП) экономит время: многие типовые задачи — права доступа, обмены, версионирование — уже решены и не требуют написания с нуля.
Ответы на частые вопросы
1С — это язык программирования или программа?
«1С» — это платформа «1С:Предприятие» вместе с прикладными решениями (конфигурациями). Программируют в ней на встроенном языке платформы. В обиходе язык часто называют просто «язык 1С» или «1С:Предприятие».
Можно ли писать в 1С на C# или Python?
Внутри конфигурации — нет, только на встроенном языке. C#, C++ и другие языки применяются для внешних компонент, отдельных сервисов и интеграций, которые платформа вызывает через стандартные механизмы.
Нужно ли знать SQL для работы с 1С?
Для разработки прикладной логики достаточно языка запросов 1С. Знание SQL полезно администраторам и разработчикам при диагностике производительности, так как платформа в итоге выполняет SQL-запросы к СУБД.
Почему в 1С русский синтаксис, а не английский?
Это осознанное решение разработчиков платформы: русский синтаксис снижает порог входа для бухгалтеров, экономистов и специалистов без программистского образования. Английский вариант доступен и полностью равнозначен.
Насколько востребован язык 1С вне экосистемы 1С?
Встроенный язык применяется только внутри платформы, за её пределами он не используется. Однако навыки разработки 1С востребованы на рынке труда в странах, где распространены решения «1С:Предприятие», а общие принципы программирования переносимы на другие языки.
Чем OneScript отличается от встроенного языка?
OneScript — независимый открытый интерпретатор с синтаксисом, совместимым с языком 1С. Он работает вне платформы и применяется для скриптов автоматизации: сборок, тестов, работы с файлами конфигураций. Разработку прикладных решений он не заменяет.
Что важно запомнить
В 1С программируют на собственном встроенном языке платформы с русским или английским синтаксисом. Для работы с данными используется язык запросов, похожий на SQL, а для интеграций — внешние механизмы и компоненты. Экспериментировать с кодом следует только на копии базы.