Система 1С:Предприятие давно стала стандартом автоматизации бизнес-процессов в России и СНГ. Миллионы компаний используют её для бухгалтерии, управления торговлей, расчёта зарплаты и других задач. Но если вы только начинаете работать с платформой или планируете разработку собственных решений, первый вопрос, который возникает: «А какой язык программирования используется в 1С?»
Ответ прост и сложен одновременно. 1С:Предприятие имеет собственный встроенный язык — его так и называют: «встроенный язык 1С» (или «1С:Язык программирования»). Это не диалект Basic, Pascal или JavaScript, а уникальная разработка фирмы «1С», оптимизированная под задачи бизнес-автоматизации. При этом язык интегрирован с платформой настолько глубоко, что без него невозможно создать ни одну конфигурацию — от простого отчёта до сложной ERP-системы.
В этой статье мы детально разберём:
- 🔹 Чем встроенный язык 1С отличается от классических языков программирования (и почему его не назвать «полноценным» в традиционном смысле).
- 🔹 Синтаксис и базовые конструкции — с примерами кода для начинающих.
- 🔹 Где и как применяется язык 1С: от написания обработок до интеграции с внешними системами.
- 🔹 Можно ли использовать другие языки (например,
SQL,PythonилиC#) вместе с 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-парсинг |
| Автоматизация | Планировщик задач, фоновые задания | Модуль внешнего соединения, регламентные задания |
Например, для создания отчёта по продажам вам потребуется:
- Написать запрос (как в примере выше).
- Оформить вывод данных в таблицу или диаграмму.
- Добавить параметры фильтрации (период, контрагент).
А для интеграции с банком нужно:
- 🔗 Настроить
HTTP-соединениедля отправки платежных поручений. - 🔗 Обработать ответ банка (например, статус платежа).
- 🔗 Записать результат в базу 1С.
☑️ Подготовка к написанию кода в 1С
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. - 🔧 Работа с графикой/3D →
C++илиJavaScript(Three.js).
Однако даже в этих случаях 1С может быть источником данных — например, через REST API или ODBC.
6. Как начать изучать язык 1С: ресурсы и советы
Если вы решили освоить программирование в 1С, вот пошаговый план:
6.1. Базовые ресурсы
- 📚 Официальная документация: «1С:Предприятие 8. Руководство разработчика» (доступно в справочнике платформы).
- 📚 Курсы:
- 🔹 «1С:Учебный центр №1» — очные и онлайн-курсы.
- 🔹 «Инфостарт» — видеоуроки и вебинары.
- 🔹 «1С:Линк» — практические задачи с проверкой.
- 📚 Книги:
- 🔹 «Профессиональная разработка в системе 1С:Предприятие 8» (М. Г. Радченко).
- 🔹 «1С:Предприятие 8.3. Практика программирования» (С. А. Хахаев).
6.2. Практические советы
- Начните с конфигуратора: изучите интерфейс, научитесь создавать простые справочники и документы.
- Пишите код постепенно: не пытайтесь сразу автоматизировать всё — начните с мелких обработок.
- Используйте отладчик: ставьте точки останова (
F9), смотрите значения переменных. - Анализируйте чужой код: скачивайте готовые обработки с Инфостарта и разбирайте, как они работают.
Пример простой задачи для практики:
Задание: Написать обработку, которая по кнопке выводит список топ-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 с опытом интеграций).