Система 1С:Предприятие давно стала стандартом автоматизации бизнес-процессов в России и СНГ. Миллионы компаний используют её для бухгалтерии, управления торговлей, расчёта зарплаты и других задач. Но если вы только начинаете работать с платформой или планируете разработку собственных решений, первый вопрос, который возникает: «А какой язык программирования используется в 1С?»

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

В этой статье мы детально разберём:

  • 🔹 Чем встроенный язык 1С отличается от классических языков программирования (и почему его не назвать «полноценным» в традиционном смысле).
  • 🔹 Синтаксис и базовые конструкции — с примерами кода для начинающих.
  • 🔹 Где и как применяется язык 1С: от написания обработок до интеграции с внешними системами.
  • 🔹 Можно ли использовать другие языки (например, SQL, Python или C#) вместе с 1С — и зачем это нужно.

Если вы бизнес-пользователь, статья поможет понять, насколько гибкой может быть ваша система. Если вы разработчик — узнаете, с чего начать изучение и как избежать типичных ошибок.

📊 Ваш уровень работы с 1С?
Я только начинаю
Пользуюсь готовыми конфигурациями
Пишу простые обработки
Разрабатываю сложные решения
Не работаю с 1С

1. Встроенный язык 1С: что это и почему не «Basic»

Многие ошибочно считают, что язык 1С — это модифицированный Visual Basic или VBScript. На самом деле, встроенный язык 1С — самостоятельная разработка с уникальным синтаксисом, хотя некоторые конструкции (например, Если...Тогда) действительно напоминают Basic. Его создавали специально для решения бизнес-задач, поэтому он:

  • 📌 Ориентирован на работу с данными: легко манипулирует справочниками, документами, регистрами.
  • 📌 Интегрирован с платформой: не нужно отдельно подключать библиотеки для работы с базой — всё встроено.
  • 📌 Поддерживает декларативный подход: часть логики описывается не кодом, а настройками в конфигураторе.

При этом язык не является универсальным. Например, на нём сложно написать высоконагруженный веб-сервис или игру — он заточен под бизнес-логику. Но для автоматизации учёта, генерации отчётов или интеграции с оборудованием (кассами, сканерами) он подходит идеально.

Важная особенность: код на встроенном языке выполняется в среде 1С:Предприятие. Это значит, что:

  • 🔸 Вы не можете запустить его отдельно от платформы (в отличие от Python или Java).
  • 🔸 Скорость выполнения зависит от версии 1С и конфигурации «железа».
  • 🔸 Ошибки в коде могут «положить» всю систему — поэтому тестирование критично.
💡

Если вы знакомы с SQL, вам будет проще освоить запросы в 1С — их синтаксис частично пересекается (например, операторы ВЫБРАТЬ вместо SELECT).

2. Синтаксис языка 1С: базовые конструкции с примерами

Даже если вы никогда не программировали, разобраться в основах языка 1С проще, чем кажется. Он использует русскоязычные ключевые слова (хотя можно переключиться на английский), что упрощает чтение кода. Рассмотрим ключевые элементы:

2.1. Переменные и типы данных

В 1С не нужно явно указывать тип переменной — платформа определяет его автоматически. Основные типы:

  • 📝 Число — для числовых значений (100, 3.14).
  • 📝 Строка — для текста ("Привет, мир!").
  • 📝 Дата — для работы с календарём ('2026-12-31').
  • 📝 СправочникСсылка.Номенклатура — ссылка на объект базы.

Пример объявления переменных:

Перем МояСумма, МояСтрока, МояДата;

// Присваивание значений

МояСумма = 1000;

МояСтрока = "Товар оплачен";

МояДата = ТекущаяДата();

2.2. Условные операторы

Конструкция Если...Тогда...Иначе работает как if-else в других языках:

Если МояСумма > 5000 Тогда

Сообщить("Большая сумма! Примените скидку 10%");

ИначеЕсли МояСумма > 1000 Тогда

Сообщить("Средняя сумма. Скидка 5%");

Иначе

Сообщить("Скидка не предусмотрена");

КонецЕсли;

2.3. Циклы

Для перебора данных используются циклы Для и Пока:

// Цикл по числовому диапазону

Для Счетчик = 1 По 10 Цикл

Сообщить("Итерация №" + Счетчик);

КонецЦикла;

// Цикл по коллекции (например, строки таблицы)

Для КаждаяСтрока Из МояТаблица Цикл

Сообщить(КаждаяСтрока.Номенклатура);

КонецЦикла;

Что будет, если не закрыть оператор КонецЕсли или КонецЦикла?

Платформа выдаст ошибку компиляции с указанием строки, где пропущен закрывающий оператор. В конфигураторе такие ошибки подсвечиваются красным ещё до запуска кода.

2.4. Работа с базой данных: запросы

Один из самых мощных инструментов — язык запросов 1С, похожий на SQL. Пример запроса для выборки данных:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Номенклатура.Наименование КАК Товар,

| СУММА(Документ.Количество) КАК ВсегоПродано

|ИЗ

| Документ.РеализацияТоваровУслуг КАК Документ

| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура

| ПО Документ.Номенклатура = Номенклатура.Ссылка

|ГДЕ

| Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода

|СГРУППИРОВАТЬ ПО

| Номенклатура.Наименование";

Запрос.УстановитьПараметр("НачалоПериода", '2026-01-01');

Запрос.УстановитьПараметр("КонецПериода", '2026-12-31');

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Такой запрос вернёт таблицу с названиями товаров и суммарным количеством продаж за год.

💡

Язык запросов 1С поддерживает joins, подзапросы, агрегатные функции (СУММА, МАКСИМУМ) и даже рекурсивные запросы — но синтаксис отличается от стандартного SQL.

3. Где применяется язык 1С: от отчётов до интеграций

Встроенный язык используется во всех ключевых сценариях работы с платформой. Вот основные области применения:

Область применения Примеры задач Типичные объекты кода
Конфигурирование Создание новых справочников, документов, регистров Модули объектов, модуль управляемого приложения
Обработки и отчёты Формирование печатных форм, экспорт данных в Excel Модули команд, модули форм
Бизнес-логика Автоматическое заполнение полей, проверка данных Модули документов, модули справочников
Интеграции Обмен данными с сайтом, банком, CRM HTTP-сервисы, COM-соединения, JSON/XML-парсинг
Автоматизация Планировщик задач, фоновые задания Модуль внешнего соединения, регламентные задания

Например, для создания отчёта по продажам вам потребуется:

  1. Написать запрос (как в примере выше).
  2. Оформить вывод данных в таблицу или диаграмму.
  3. Добавить параметры фильтрации (период, контрагент).

А для интеграции с банком нужно:

  • 🔗 Настроить HTTP-соединение для отправки платежных поручений.
  • 🔗 Обработать ответ банка (например, статус платежа).
  • 🔗 Записать результат в базу 1С.

☑️ Подготовка к написанию кода в 1С

Выполнено: 0 / 4

4. Можно ли использовать другие языки с 1С?

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

4.1. SQL-запросы

Для сложных операций с базой данных можно использовать прямые SQL-запросы (если база на Microsoft SQL Server или PostgreSQL). Пример:

ЗапросSQL = Новый Запрос;

ЗапросSQL.Текст =

"SELECT TOP 10 name, price

FROM catalog_products

WHERE category_id = 5

ORDER BY price DESC";

РезультатSQL = ЗапросSQL.Выполнить();

ВыборкаSQL = РезультатSQL.Выбрать();

⚠️ Внимание: Прямые SQL-запросы обходят механизмы безопасности 1С и могут нарушить целостность данных. Используйте их только в крайних случаях и с резервной копией базы.

4.2. Внешние компоненты (COM, .NET, Java)

Через внешние компоненты можно подключать код на C#, Java или C++. Например, для:

  • 🖥️ Работы с оборудованием (сканеры штрихкодов, весы).
  • 🖥️ Выполнения ресурсоёмких вычислений.
  • 🖥️ Интеграции с API, где нужны специфические библиотеки.

Пример подключения COM-объекта:

Попытка

Excel = Новый COMОбъект("Excel.Application");

Excel.Visible = Истина;

Книга = Excel.Workbooks.Add();

Исключение

Сообщить("Ошибка подключения к Excel: " + ОписаниеОшибки());

КонецПопытки;

4.3. HTTP-сервисы и REST API

Современные версии 1С поддерживают HTTP-сервисы и работу с JSON/XML. Это позволяет:

  • 🌐 Создавать API для обмена данными с сайтами или мобильными приложениями.
  • 🌐 Подключаться к внешним сервисам (например, Яндекс.Касса, СберБизнес).

Пример отправки POST-запроса:

HTTPСоединение = Новый HTTPСоединение("api.example.com", 443,,, Новый ЗащищенноеСоединениеOpenSSL());

HTTPЗапрос = Новый HTTPЗапрос("/v1/payments");

HTTPЗапрос.УстановитьТелоИзСтроки(

"{""amount"": 1000, ""currency"": ""RUB""}",

"application/json",

КодировкаТекста.UTF8

);

Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Если Ответ.КодСостояния = 200 Тогда

Сообщить("Платёж успешен!");

Иначе

Сообщить("Ошибка: " + Ответ.ПолучитьТелоКакСтроку());

КонецЕсли;

⚠️ Внимание: При работе с API обязательно обрабатывайте ошибки сети и тайм-ауты. В производственной среде используйте Попытка...Исключение для стабильности.

5. Плюсы и минусы языка 1С для разработки

Как и любой инструмент, встроенный язык 1С имеет сильные и слабые стороны. Разберём их подробно:

5.1. Преимущества

  • Специализация под бизнес-задачи: готовые объекты для учёта, отчётности, документооборота.
  • Быстрая разработка: не нужно писать код для рутинных операций (например, работа с формами).
  • Интеграция с платформой: доступ ко всем данным 1С без дополнительных драйверов.
  • Русскоязычный синтаксис: проще для новичков, особенно в России и СНГ.

5.2. Недостатки

  • Ограниченная производительность: не подходит для высоконагруженных систем (например, онлайн-игр).
  • Зависимость от платформы: код работает только в среде 1С.
  • Слабая типизация: ошибки могут проявляться только на этапе выполнения.
  • Ограниченные инструменты отладки: по сравнению с Visual Studio или PyCharm.

Критическая особенность: язык 1С не поддерживает многопоточность в классическом понимании. Для параллельных задач используются фоновые задания или внешние компоненты.

5.3. Когда стоит выбрать другой язык?

Встроенный язык 1С оптимален для 90% задач автоматизации бизнеса. Но в некоторых случаях лучше использовать другие технологии:

  • 🔧 Высоконагруженные веб-сервисыPython (Django, FastAPI) или C# (ASP.NET).
  • 🔧 Мобильные приложенияKotlin (Android) или Swift (iOS).
  • 🔧 Аналитика больших данныхPython (Pandas, NumPy) или R.
  • 🔧 Работа с графикой/3DC++ или JavaScript (Three.js).

Однако даже в этих случаях 1С может быть источником данных — например, через REST API или ODBC.

6. Как начать изучать язык 1С: ресурсы и советы

Если вы решили освоить программирование в 1С, вот пошаговый план:

6.1. Базовые ресурсы

  • 📚 Официальная документация: «1С:Предприятие 8. Руководство разработчика» (доступно в справочнике платформы).
  • 📚 Курсы:
    • 🔹 «1С:Учебный центр №1» — очные и онлайн-курсы.
    • 🔹 «Инфостарт» — видеоуроки и вебинары.
    • 🔹 «1С:Линк» — практические задачи с проверкой.
  • 📚 Книги:
    • 🔹 «Профессиональная разработка в системе 1С:Предприятие 8» (М. Г. Радченко).
    • 🔹 «1С:Предприятие 8.3. Практика программирования» (С. А. Хахаев).

6.2. Практические советы

  1. Начните с конфигуратора: изучите интерфейс, научитесь создавать простые справочники и документы.
  2. Пишите код постепенно: не пытайтесь сразу автоматизировать всё — начните с мелких обработок.
  3. Используйте отладчик: ставьте точки останова (F9), смотрите значения переменных.
  4. Анализируйте чужой код: скачивайте готовые обработки с Инфостарта и разбирайте, как они работают.

Пример простой задачи для практики:

Задание: Написать обработку, которая по кнопке выводит список топ-5 самых продаваемых товаров за текущий месяц.

Подсказка: Используйте запрос с СУММА(Количество) и сортировкой ПО УБЫВАНИЮ.

6.3. Сертификация

Для подтверждения навыков можно сдать экзамены «1С:Профессионал» или «1С:Специалист»:

  • 📜 1С:Профессионал — базовый уровень (тестирование по платформе или конфигурациям).
  • 📜 1С:Специалист — продвинутый уровень (практические задачи по программированию).

Сертификаты повышают доверие работодателей и клиентов, особенно если вы планируете работать фрилансером.

7. Типичные ошибки начинающих разработчиков 1С

Даже опытные программисты, переходя на 1С, допускают характерные ошибки. Вот самые распространённые:

7.1. Игнорирование транзакций

Если не обернуть изменение данных в транзакцию, при ошибке база может остаться в неконсистентном состоянии. Пример правильного кода:

НачатьТранзакцию();

Попытка

Документ.Записать();

Документ.Провести();

ЗафиксироватьТранзакцию();

Исключение

ОтменитьТранзакцию();

Сообщить("Ошибка: " + ОписаниеОшибки());

КонецПопытки;

7.2. Чрезмерное использование глобальных переменных

Глобальные переменные (Перем в модуле приложения) усложняют поддержку кода. Лучше передавать данные через параметры методов.

7.3. Отсутствие обработки ошибок

Код без Попытка...Исключение может «упасть» на производственной базе. Всегда проверяйте:

  • 🔸 Ответы внешних систем (банки, API).
  • 🔸 Существование объектов перед обращением (Если НЕ ЗначениеЗаполнено(МояСсылка) Тогда).
  • 🔸 Права доступа пользователей.

7.4. «Копипаст» кода

Дублирование кода ведёт к ошибкам при изменении логики. Вместо этого:

  • 🔹 Выносите повторяющуюся логику в общие модули.
  • 🔹 Используйте функции и процедуры.

7.5. Неоптимальные запросы

Запросы типа ВЫБРАТЬ * или без индексов тормозят систему. Следуйте правилам:

  • 📊 Выбирайте только нужные поля (ВЫБРАТЬ Товар.Наименование, Товар.Цена).
  • 📊 Используйте индексированные поля в условиях (ГДЕ Товар.Артикул = &Артикул).
  • 📊 Избегайте вложенных циклов по большим выборкам.
⚠️ Внимание: В версиях 1С ниже 8.3.10 некоторые методы работы с данными (например, НайтиПоНаименованию()) работают медленно. Для старых баз оптимизируйте код вручную.

FAQ: Частые вопросы о языке программирования 1С

🔹 Можно ли использовать Python или JavaScript вместо встроенного языка 1С?

Нет, основная бизнес-логика в 1С пишется только на встроенном языке. Однако вы можете:

  • Интегрировать Python через COM или HTTP-сервисы для аналитики.
  • Использовать JavaScript для веб-клиента или мобильного приложения, которое обменивается данными с 1С.

Но ядро системы всегда останется на встроенном языке.

🔹 Какой язык программирования нужно знать, чтобы работать с 1С?

Для большинства задач достаточно встроенного языка 1С. Дополнительно пригодятся:

  • SQL — для сложных запросов к базе.
  • XML/JSON — для обмена данными.
  • HTTP — для работы с API.

Для интеграций может потребоваться C# или Python, но это не обязательно.

🔹 Трудно ли освоить язык 1С с нуля?

Если у вас есть опыт программирования, освоить базовый синтаксис можно за 1–2 месяца. Без опыта потребуется 3–6 месяцев на изучение платформы + языка.

Сложность не в синтаксисе, а в понимании архитектуры 1С: как связаны справочники, документы, регистры. Советуем начинать с простых задач (отчёты, обработки) и постепенно переходить к сложным (интеграции, модификация конфигураций).

🔹 Можно ли писать на 1С под Linux или macOS?

Да, но с оговорками:

  • 🖥️ Сервер 1С работает на Linux (официальная поддержка с версии 8.3.10).
  • 🖥️ Толстый клиент и конфигуратор доступны только под Windows (можно использовать Wine или виртуальную машину).
  • 🖥️ Веб-клиент и тонкий клиент работают в браузере на любой ОС.

Для полноценной разработки лучше использовать Windows.

🔹 Где искать работу разработчику 1С?

Специалисты по 1С востребованы в:

  • 🏢 Компаниях-интеграторах (например, 1С-Франчайзи).
  • 🏢 Крупном бизнесе (банки, ритейл, производство) — для поддержки внутренних систем.
  • 🏢 Фрилансе (биржа Инфостарт, FL.ru).

Зарплаты варьируются от 50 000 ₽ (джуниор) до 200 000+ ₽ (senior с опытом интеграций).