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

Разработка и Конфигурация · 11 мин

На каких языках работает и программируется 1С

Разбираем языки 1С: встроенный язык, язык запросов, внешние компоненты и интеграции. Какой язык учить разработчику и чем ограничена платформа.

Вопрос «на каких языках написана и программируется 1С» возникает у всех, кто начинает путь в экосистеме 1С или планирует интеграцию с ней. Ответ не сводится к одному названию: платформа 1С:Предприятие сама написана на одних языках, прикладные конфигурации разрабатываются на других, а для интеграций и расширений используются третьи.

Понимание этой многоуровневой структуры важно и для выбора профессии, и для планирования разработки. Новичку нужно знать, что учить в первую очередь, а руководителю проекта — какие технологии потребуются для интеграции 1С с сайтом, складским оборудованием или корпоративной шиной данных.

Ниже разобраны все языки, с которыми сталкивается специалист по 1С: от встроенного языка платформы до SQL и языков внешних компонентов, с практическими рекомендациями по выбору.

Встроенный язык 1С — основной инструмент разработчика

Встроенный язык 1С (его часто называют «язык 1С» или «1С script») — это предметно-ориентированный язык, созданный специально для описания бизнес-логики: проведения документов, расчёта зарплаты, формирования отчётов. По синтаксису он напоминает смесь Basic и Pascal: есть процедуры, функции, циклы, условия, но нет классов в классическом понимании ООП.

Характерная особенность — двуязычие. Один и тот же код можно писать на русском или английском синтаксисе, причём платформа понимает оба варианта и даже смешанный код. На практике в типовых российских конфигурациях используется русский синтаксис, а в международных решениях — английский.

1c
Процедура ПриПроведенииДокумента()
	Для Каждого Строка Из Товары Цикл
		Если Строка.Количество <= 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С

Внешние компоненты (Native API, C++)

Подходят для работы с оборудованием и ресурсоёмких вычислений. Ограничение: нужна разработка на C++ и тестирование на всех платформах клиента.

COM-интеграция

Работает только в Windows-окружении, подходит для поддержки старых решений. Для новых проектов не рекомендуется.

HTTP и веб-сервисы

Универсальный способ интеграции с любыми системами и языками. Требует продумывания авторизации и форматов обмена.

Расширения конфигурации

Доработка типовой конфигурации без снятия с поддержки, только встроенный язык. Ограничены возможностями механизма расширений.

Языки для интеграции 1С с внешними системами

Современная 1С редко существует изолированно: она обменивается данными с сайтами, CRM, маркетплейсами, банками и складскими системами. Здесь «язык» уступает место протоколам и форматам, но знание других языков программирования всё равно востребовано.

Платформа умеет публиковать и вызывать HTTP-сервисы (REST-подход), SOAP веб-сервисы, работать с JSON и XML. Со стороны внешней системы интеграцию пишут на любом языке — C#, Java, Python, PHP, JavaScript. Популярный сценарий: сайт на PHP или Python обращается к HTTP-сервисам 1С за остатками и ценами, а заказы передаёт в обратную сторону.

Также существует стандартный OData-интерфейс: платформа может автоматически публиковать объекты конфигурации по протоколу OData, что позволяет читать данные из 1С средствами любого языка без написания кода на стороне 1С.

Маршрут решения

Как выбрать способ интеграции

Нужно быстро дать внешней системе читать данные 1С без доработокВключите автоматическую публикацию OData и ограничьте доступ правами пользователя
Требуется сложная бизнес-логика при обмене (проверки, расчёты, проведение документов)Разработайте собственные HTTP-сервисы в конфигурации
Интеграция с устаревшей системой только на WindowsРассмотрите COM-соединение как временное решение с планом миграции
Обмен с сайтом или маркетплейсомИспользуйте HTTP/REST с JSON — это стандарт де-факто для веб-интеграций

Какой язык учить для карьеры в 1С

Для профессии «разработчик 1С» обязательный минимум — встроенный язык и язык запросов. Это закрывает большинство задач: доработку конфигураций, написание отчётов, обработок и расширений. Оба языка осваиваются параллельно, потому что реальный код почти всегда сочетает алгоритмы и запросы к данным.

Следующий уровень — SQL на уровне чтения планов запросов и понимания индексов: это нужно для оптимизации производительности на крупных базах. Затем, в зависимости от специализации, добавляются JavaScript и HTML (для веб-клиента и публикаций), C# или Python (для интеграционных сервисов), C++ (для внешних компонентов — узкая и редкая ниша).

Порядок освоения языков для работы с 1С
  1. 1
    Освойте встроенный язык: переменные, циклы, работа с объектами конфигурации, клиент-серверное взаимодействие
  2. 2
    Изучите язык запросов: выборки, соединения, виртуальные таблицы, пакетные запросы и временные таблицы
  3. 3
    Научитесь читать запросы на уровне SQL и понимать, как платформа транслирует их в СУБД
  4. 4
    Освойте форматы обмена JSON и XML и механизмы HTTP-сервисов для интеграций
  5. 5
    При необходимости добавьте внешний язык: C# или Python для сервисов, C++ для компонентов
  6. 6
    Проверяйте результат на учебной базе: код должен работать и на клиенте, и на сервере без ошибок компиляции
Типичные ошибки
01
Учить только встроенный язык и игнорировать запросы — в результате код выбирает данные циклами и работает медленно
02
Писать запросы в цикле вместо одного запроса с соединениями — типичная причина тормозов отчётов
03
Пытаться править данные напрямую в СУБД — приводит к рассогласованию итогов и потере поддержки
04
Использовать COM для новых интеграций — привязка к Windows и устаревшая технология
05
Смешивать русский и английский синтаксис в одном модуле — код трудно читать и сопровождать

Проверка знаний и ограничения платформы

Оценить владение языками 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 даёт более развитые средства командной разработки, контроля версий и статического анализа кода.