Разработка и Конфигурация · 11 мин
На каких языках работает и программируется 1С
Разбираем языки 1С: встроенный язык, язык запросов, внешние компоненты и интеграции. Какой язык учить разработчику и чем ограничена платформа.
Вопрос «на каких языках написана и программируется 1С» возникает у всех, кто начинает путь в экосистеме 1С или планирует интеграцию с ней. Ответ не сводится к одному названию: платформа 1С:Предприятие сама написана на одних языках, прикладные конфигурации разрабатываются на других, а для интеграций и расширений используются третьи.
Понимание этой многоуровневой структуры важно и для выбора профессии, и для планирования разработки. Новичку нужно знать, что учить в первую очередь, а руководителю проекта — какие технологии потребуются для интеграции 1С с сайтом, складским оборудованием или корпоративной шиной данных.
Ниже разобраны все языки, с которыми сталкивается специалист по 1С: от встроенного языка платформы до SQL и языков внешних компонентов, с практическими рекомендациями по выбору.
Встроенный язык 1С — основной инструмент разработчика
Встроенный язык 1С (его часто называют «язык 1С» или «1С script») — это предметно-ориентированный язык, созданный специально для описания бизнес-логики: проведения документов, расчёта зарплаты, формирования отчётов. По синтаксису он напоминает смесь Basic и Pascal: есть процедуры, функции, циклы, условия, но нет классов в классическом понимании ООП.
Характерная особенность — двуязычие. Один и тот же код можно писать на русском или английском синтаксисе, причём платформа понимает оба варианта и даже смешанный код. На практике в типовых российских конфигурациях используется русский синтаксис, а в международных решениях — английский.
Процедура ПриПроведенииДокумента()
Для Каждого Строка Из Товары Цикл
Если Строка.Количество <= 0 Тогда
Сообщить("Некорректное количество в строке");
КонецЕсли;
КонецЦикла;
КонецПроцедурыВстроенный язык исполняется интерпретатором платформы и работает в двух контекстах: на клиенте (тонкий, толстый, веб-клиент) и на сервере. Разработчик явно управляет этим через директивы компиляции &НаКлиенте и &НаСервере — это одна из первых вещей, которую нужно освоить.
Язык запросов 1С и его связь с SQL
Второй обязательный язык в арсенале разработчика 1С — язык запросов. Он предназначен для выборки и агрегации данных из информационной базы и внешне очень похож на SQL: те же ключевые слова ВЫБРАТЬ (SELECT), ИЗ (FROM), ГДЕ (WHERE), СГРУППИРОВАТЬ ПО (GROUP BY). Однако это не SQL в чистом виде.
Язык запросов 1С работает не с физическими таблицами СУБД, а с логическими объектами конфигурации: справочниками, документами, виртуальными таблицами регистров (остатки, обороты, срезы последних). Платформа сама транслирует запрос в SQL-диалект конкретной СУБД — MS SQL Server, PostgreSQL, Oracle или IBM Db2.
Практическое следствие: разработчик обычно не пишет SQL напрямую, но понимание основ SQL помогает оптимизировать запросы. Прямые запросы к базе в обход платформы возможны, но считаются опасной практикой: они нарушают логику платформы, игнорируют механизмы блокировок и могут привести к рассогласованию данных.
На каком языке написана сама платформа 1С
Ядро платформы 1С:Предприятие написано преимущественно на C++. Это относится к серверу приложений, клиентским приложениям и инструментам разработки. Пользователю и прикладному разработчику этот уровень недоступен: исходный код платформы закрыт, модифицировать её нельзя.
Веб-клиент 1С использует стандартные веб-технологии: интерфейс в браузере строится на HTML, CSS и JavaScript, которые платформа генерирует автоматически из описания форм. Веб-разработчику открывается узкое место для кастомизации — например, через расширения интерфейса, но полноценной разработки фронтенда внутри 1С нет.
Из этого следует важный вывод: «программист 1С» и «разработчик платформы 1С» — разные профессии. Первый работает во встроенной среде разработки (конфигуратор или EDT), второй — это инженер вендора, и для работы с конфигурациями знание C++ не требуется.
Внешние компоненты и расширения возможностей
Когда встроенного языка не хватает — например, для работы со сканером штрихкодов, криптографии или специфического оборудования — используются внешние компоненты. Они разрабатываются на C++ по технологии Native API и подключаются к платформе как библиотеки.
Исторически также применялась технология COM: внешние компоненты создавались как COM-объекты, а сама 1С могла выступать COM-клиентом и COM-сервером. Через COM-соединение из внешних программ на C#, Delphi или Python можно было открывать базу 1С и вызывать её объекты. Этот подход до сих пор встречается в старых интеграциях, но для новых решений рекомендуются веб-сервисы и HTTP.
Способы расширить возможности 1С
Подходят для работы с оборудованием и ресурсоёмких вычислений. Ограничение: нужна разработка на C++ и тестирование на всех платформах клиента.
Работает только в Windows-окружении, подходит для поддержки старых решений. Для новых проектов не рекомендуется.
Универсальный способ интеграции с любыми системами и языками. Требует продумывания авторизации и форматов обмена.
Доработка типовой конфигурации без снятия с поддержки, только встроенный язык. Ограничены возможностями механизма расширений.
Языки для интеграции 1С с внешними системами
Современная 1С редко существует изолированно: она обменивается данными с сайтами, CRM, маркетплейсами, банками и складскими системами. Здесь «язык» уступает место протоколам и форматам, но знание других языков программирования всё равно востребовано.
Платформа умеет публиковать и вызывать HTTP-сервисы (REST-подход), SOAP веб-сервисы, работать с JSON и XML. Со стороны внешней системы интеграцию пишут на любом языке — C#, Java, Python, PHP, JavaScript. Популярный сценарий: сайт на PHP или Python обращается к HTTP-сервисам 1С за остатками и ценами, а заказы передаёт в обратную сторону.
Также существует стандартный OData-интерфейс: платформа может автоматически публиковать объекты конфигурации по протоколу OData, что позволяет читать данные из 1С средствами любого языка без написания кода на стороне 1С.
Как выбрать способ интеграции
Какой язык учить для карьеры в 1С
Для профессии «разработчик 1С» обязательный минимум — встроенный язык и язык запросов. Это закрывает большинство задач: доработку конфигураций, написание отчётов, обработок и расширений. Оба языка осваиваются параллельно, потому что реальный код почти всегда сочетает алгоритмы и запросы к данным.
Следующий уровень — SQL на уровне чтения планов запросов и понимания индексов: это нужно для оптимизации производительности на крупных базах. Затем, в зависимости от специализации, добавляются JavaScript и HTML (для веб-клиента и публикаций), C# или Python (для интеграционных сервисов), C++ (для внешних компонентов — узкая и редкая ниша).
- 1Освойте встроенный язык: переменные, циклы, работа с объектами конфигурации, клиент-серверное взаимодействие
- 2Изучите язык запросов: выборки, соединения, виртуальные таблицы, пакетные запросы и временные таблицы
- 3Научитесь читать запросы на уровне SQL и понимать, как платформа транслирует их в СУБД
- 4Освойте форматы обмена JSON и XML и механизмы HTTP-сервисов для интеграций
- 5При необходимости добавьте внешний язык: C# или Python для сервисов, C++ для компонентов
- 6Проверяйте результат на учебной базе: код должен работать и на клиенте, и на сервере без ошибок компиляции
Проверка знаний и ограничения платформы
Оценить владение языками 1С можно практическими задачами: написать отчёт на СКД с параметрами, оптимизировать медленный запрос, опубликовать HTTP-сервис и вызвать его извне. Если эти задачи решаются уверенно, базовый стек освоен.
Полезно помнить и об ограничениях: встроенный язык не поддерживает многопоточность в прикладном коде в привычном виде (есть фоновые задания), не имеет полноценного ООП и не компилируется в машинный код. Для задач вне бизнес-логики платформа не предназначена — и это нормально, потому что её сила в скорости разработки учётных систем.
Как проверить результат обучения
Компилируется без ошибок во всех контекстах (тонкий клиент, сервер, веб-клиент)
Ошибки компиляции при включении веб-клиента или вызов сервера из клиентского контекста
Один запрос с соединениями вместо обхода выборки в цикле
Вложенные циклы выборок и запросы внутри цикла
Обмен через HTTP-сервисы с обработкой ошибок и авторизацией
Прямой доступ внешней системы к таблицам СУБД
Что важно запомнить
Прикладная разработка в 1С ведётся на встроенном языке и языке запросов — это обязательный минимум специалиста. Сама платформа написана на C++, но этот уровень закрыт. Для интеграций используются HTTP, веб-сервисы, JSON и любые внешние языки, а прямой доступ к СУБД в обход платформы — запрещённая практика.
Частые вопросы
1С — это язык программирования или программа?
1С:Предприятие — это технологическая платформа (среда исполнения и разработки), а встроенный язык 1С — язык программирования внутри этой платформы. Говоря «программист 1С», обычно имеют в виду разработчика на встроенном языке и языке запросов.
Сложно ли выучить встроенный язык 1С после Python или C#?
Синтаксически язык простой: процедурная модель, минимум парадигм. Сложность не в языке, а в платформе: нужно понять объектную модель (справочники, документы, регистры), клиент-серверную архитектуру и механизмы учёта. Опыт программирования на любом языке заметно ускоряет освоение.
Можно ли писать код 1С на английском языке?
Да. Платформа поддерживает английский синтаксис встроенного языка и языка запросов, включая смешанное использование. Для международных проектов и публикации кода это стандартный выбор, но в российских типовых конфигурациях принят русский синтаксис.
Нужно ли знать SQL для работы с 1С?
Напрямую SQL в прикладном коде не используется — вместо него язык запросов 1С. Но понимание SQL помогает оптимизировать производительность: читать планы запросов в СУБД, понимать индексы и причины блокировок. Для администраторов крупных баз знание SQL практически обязательно.
На чём писать интеграцию сайта с 1С?
Со стороны сайта — на любом языке, который умеет работать с HTTP: PHP, Python, JavaScript, C#. Со стороны 1С публикуются HTTP-сервисы или OData-интерфейс. Обмен обычно ведётся в формате JSON.
Что такое EDT и чем он отличается от конфигуратора?
1C:Enterprise Development Tools (EDT) — современная среда разработки на базе Eclipse. Язык остаётся тем же встроенным языком 1С, меняется только инструментарий: EDT даёт более развитые средства командной разработки, контроля версий и статического анализа кода.