Язык программирования 1С — предметно-ориентированный язык высокого уровня (DSL, Domain-Specific Language), встроенный в платформу 1С:Предприятие версии 8.3. Официальное название — «встроенный язык программирования»: собственного имени, вроде Python или Java, у него нет. Поддерживает мягкую типизацию, двуязычный синтаксис (русский и английский) и работает исключительно внутри платформы. Применяется для автоматизации бухгалтерии, документооборота, кадрового учёта и складских операций.
Встроенный язык 1С — предметно-ориентированный DSL, оптимизированный под бизнес-логику предприятия. Вне платформы 1С:Предприятие он не существует: без исполнительной среды написанный код просто не запустится. Компания «1С» основана в 1991 году; сегодня платформа версии 8.3 — фактический стандарт автоматизации учёта в России.
Учитесь бесплатно за счёт государства
Экономия до 100 000 ₽ на любой программе
Архитектура строится по принципу «Платформа + Конфигурация». Платформа — исполнительная среда и набор инструментов. Конфигурация — прикладное решение, написанное на встроенном языке: она определяет, чем занимается конкретная установка — бухгалтерским учётом, расчётом зарплаты, управлением торговлей или производством.
1С:Предприятие используют крупные компании, государственные структуры и малый бизнес для автоматизации учёта: бухгалтерского, налогового, складского, кадрового. Платформа доминирует на российском ERP-рынке, поэтому спрос на разработчиков 1С сохраняется стабильно — знание языка напрямую конвертируется в карьерные возможности.
Официальный термин — «встроенный язык программирования». Отдельного имени у него нет: это намеренное решение компании «1С».
В новом продукте 1С:Элемент ЯП носит название «Исполнитель» — это отдельный язык со статической типизацией и полноценной объектно-ориентированной моделью. В экосистеме оба варианта существуют параллельно: классический встроенный — для типовых конфигураций, Исполнитель — для современных веб-приложений.
Встроенный язык 1С нужен для автоматизации бизнес-процессов: формирования документов, расчёта зарплаты в ЗУП, ведения склада, интеграции с внешними системами. Порог входа ниже, чем у универсальных языков: типовые конфигурации позволяют начать без написания кода с нуля, постепенно добавляя собственную логику.
| Характеристика |
Значение |
Примечание |
|---|---|---|
| Уровень | Высокоуровневый DSL | Только внутри 1С:Предприятие |
| Типизация | Мягкая (динамическая) | Тип определяется присвоенным значением |
| Двуязычность | Русский / Английский | Нельзя смешивать в одном проекте |
| Компиляция | В байт-код | Кэш ускоряет повторный запуск |
| Инструмент | Синтаксис-помощник | Встроенный интерактивный справочник |
| Модель | Событийная | Код работает при наступлении события |
Перед исполнением модули 1С компилируются в байт-код — не интерпретируются построчно, как скриптовые языки. Скомпилированные модули хранятся в кэше: при повторном запуске платформа читает готовый байт-код, а не перекомпилирует исходник. Это ускоряет старт и снижает нагрузку на сервер в многопользовательских средах.
Разработчик выбирает язык написания кода — русский или английский. Смешивать нельзя: либо Если … Тогда … КонецЕсли, либо If … Then … EndIf. Синтаксис схож с JavaScript, Pascal и BASIC — разработчики, знакомые с этими языками, адаптируются быстрее.
Синтаксис-помощник — уникальная встроенная функция платформы. Это интерактивный справочник по всем методам, функциям и конструкциям языка с примерами кода. Вызывается прямо в Конфигураторе, без выхода в браузер — аналог IntelliSense, адаптированный под экосистему 1С.
Мягкая типизация означает: тип переменной определяется присвоенным значением, предварительно объявлять тип не требуется. Переменная Х = 42 — число; Х = «Привет» — строка. Правила именования: начинается с буквы, без пробелов, без буквы «ё».
| Тип |
Пример |
Примечание |
|---|---|---|
| Число | Сумма = 1500.50 | Целые и дробные |
| Строка | Имя = «Иван» | В двойных кавычках |
| Дата | ТекДата = ТекущаяДата() | Дата и время вместе |
| Булево | Флаг = Истина | Истина / Ложь |
| Null | — | Реквизит не заполнен |
| Неопределено | Пер = Неопределено | Значение не задано |
Коллекции — временные хранилища в оперативной памяти в рамках сеанса. После завершения программы они удаляются автоматически. Структура создаётся так: МояСтруктура = Новый Структура; МояСтруктура.Вставить(«Ключ», «Значение»). Таблица значений — аналог Excel-таблицы с именованными колонками, строками и поиском по значению: удобна при работе с результатами запросов.
| Коллекция |
Аналог |
Создание |
|---|---|---|
| Массив | List (Python) | Новый Массив |
| Структура | Object (JS) | Новый Структура |
| Соответствие | HashMap | Новый Соответствие |
| Таблица значений | Excel-таблица | Новый ТаблицаЗначений |
| Дерево значений | Дерево (XML/JSON) | Новый ДеревоЗначений |
Модуль в 1С — текстовый файл с кодом, привязанный к конкретному объекту конфигурации или среде выполнения. Код в модуле не работает сам по себе: он запускается только при наступлении события. Жизненный цикл: запуск приложения → действия пользователя → закрытие.
Секции модуля: объявление переменных, обработчики событий, процедуры и функции, блок инициализации. Ключевое слово Экспорт открывает процедуру или функцию для вызова из других модулей конфигурации.
| Тип модуля |
Назначение |
Где используется |
|---|---|---|
| Модуль объекта | Бизнес-логика документа или справочника | Документ, Справочник, Регистр |
| Модуль формы | Управление интерфейсом и данными | Управляемая форма |
| Общий модуль | Переиспользуемые процедуры | Любой объект конфигурации |
| Модуль приложения | Логика запуска и завершения | Запуск клиента |
| Модуль внешнего соединения | Интеграция с внешними системами | COM-соединение, веб-сервисы |
Ключевое слово Экспорт в строке объявления открывает процедуру или функцию для вызова из любого другого модуля конфигурации. Без него подпрограмма доступна только внутри своего модуля.
Процедура выполняет действия и не возвращает значение. Функция обязательно возвращает результат через оператор Возврат. Оба типа поддерживают параметры по умолчанию — например, Должность = «Сотрудник».
Передача параметров: простые типы (Число, Строка, Булево) передаются по значению — изменения внутри процедуры не затрагивают исходную переменную. Коллекции (Массив, Структура) передаются по ссылке — изменения в процедуре меняют оригинал. Это важно учитывать при работе с таблицами значений в многошаговых операциях.
Минимальная процедура:
Процедура ПриветМир()
Сообщить(«Привет, мир!»);
КонецПроцедуры
Сообщить() выводит строку в окно сообщений. КонецПроцедуры — обязательный завершающий оператор; без него синтаксис-помощник подсветит ошибку.
Функция с параметром по умолчанию и ключевым словом Экспорт:
Функция ПолучитьПриветствие(Имя = «Гость») Экспорт
Возврат «Добрый день, » + Имя + «!»;
КонецФункции
Отличие от процедуры: оператор Возврат обязателен. Экспорт открывает функцию для вызова из любого модуля конфигурации. Параметр по умолчанию «Гость» подставляется, если вызов идёт без аргумента.
Конструкция Попытка-Исключение — аналог try-catch для защиты от ошибок времени выполнения:
Попытка
Число = Число(СтрокаВводаПользователя);
Исключение
ЗаписьЖурналаРегистрации(«КонвертацияЧисла»,
УровеньЖурналаРегистрации.Ошибка,
ИнформацияОбОшибке().Описание);
КонецПопытки;
Блок Исключение срабатывает при любой ошибке внутри Попытка. Функция ИнформацияОбОшибке() возвращает объект с описанием. Применять стоит при работе с внешними данными, конвертации типов и вызовах сторонних систем.

Язык запросов 1С — встроенный DSL для выборки данных из информационной базы. Синтаксис близок к SQL: ВЫБРАТЬ = SELECT, ИЗ = FROM, ГДЕ = WHERE. Главное отличие — работает не с реляционными таблицами напрямую, а с объектами платформы: Справочник, Документ, Регистр.
Базовый паттерн работы с запросом: создать объект → задать текст → установить параметры → выполнить → получить результат как выборку или таблицу значений через .Выгрузить().
Хотите сменить профессию или повысить квалификацию?
Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Наименование,
| КодКатегории
|ИЗ
| Справочник.Клиенты
|ГДЕ
| КодКатегории = &КодКатегории»;
Запрос.УстановитьПараметр(«КодКатегории», КодКатегории);
РезультатТЗ = Запрос.Выполнить().Выгрузить();
Параметры запроса задаются через &НазваниеПараметра в тексте и передаются методом УстановитьПараметр(). Это защищает от подстановки произвольных значений в текст — аналог параметризованных запросов в SQL. Метод Выгрузить() возвращает таблицу значений для дальнейшей обработки в коде цикла или другой процедуры.
Ключевое слово ПОМЕСТИТЬ создаёт временную таблицу внутри запроса: ВЫБРАТЬ … ПОМЕСТИТЬ ВТ_Клиенты ИЗ Справочник.Клиенты ГДЕ Активен = Истина. Таблица существует только в рамках выполнения запроса и удаляется автоматически.
Три правила оптимизации: использовать индексированные поля в условиях ГДЕ; не выбирать все реквизиты подряд — только нужные поля; передавать значения через &Параметр, а не подставлять строками. Агрегатные функции СУММА(), КОЛИЧЕСТВО(), ЕСТЬNULL() позволяют сворачивать данные и заменять пустые значения прямо в тексте запроса.

1С:Элемент — облачная среда разработки: без десктоп-версии, запускается в браузере. Встроенный язык этой платформы называется «Исполнитель» — отдельный ЯП со статической типизацией и полноценной объектно-ориентированной моделью (классы, наследование, инкапсуляция).
Статическая типизация: тип объявляется явно — пер Имя: Строка. Это исключает ошибки, когда переменная случайно получает значение другого типа. Для нестандартных интерфейсных задач и мобильных приложений доступны JavaScript, HTML и CSS — подключаются прямо из Исполнителя без сторонних инструментов.
| Параметр |
Классический 1С |
1С:Элемент (Исполнитель) |
|---|---|---|
| Типизация | Мягкая (динамическая) | Статическая |
| ООП | Частичное | Полноценное (классы, наследование) |
| Объявление переменной | Перем Имя; | пер Имя: Строка |
| IDE | Конфигуратор (десктоп) | Облачная среда (браузер) |
| JS / HTML / CSS | Нет | Да |
| Мобильные приложения | Ограничено | Из коробки |
Ключевое различие по типизации: в классике тип переменной меняется на лету, что удобно, но порождает трудноуловимые ошибки. В Исполнителе неправильный тип — ошибка компиляции, а не рантайма.
По синтаксису Исполнитель ближе всего к JavaScript: аналогичная логика операторов, управляющие конструкции, работа с объектами. При этом он лаконичнее TypeScript — нет фигурных скобок {}, нет точки с запятой в конце каждой строки. По сравнению с C#: операторы и / или вместо && / ||, значительно меньше синтаксического «шума». Разработчикам с опытом на любом из этих языков адаптация к Исполнителю займёт считаные дни.
Изучение 1С доступно новичкам без опыта, бухгалтерам, которые хотят автоматизировать рутину, и разработчикам других языков, переходящим на платформу «1С».
Первые шаги для старта:

Для самостоятельного изучения подойдут официальное «Руководство разработчика», синтаксис-помощник прямо в Конфигураторе и учебные конфигурации с сайта «1С». Прогресс идёт быстрее при работе с реальными задачами: доработка типовой конфигурации под конкретную организацию даёт навыки куда эффективнее, чем теория.
Карьерный путь строится поэтапно: классический встроенный язык → 1С:Элемент (Исполнитель) → специализация в 1С:Шина (интеграционная платформа) или 1С:Аналитика. Каждый следующий уровень расширяет и рыночную ценность специалиста, и доход. По данным hh.ru, средняя зарплата 1С-разработчика в России — от 90 000 ₽ в месяц (данные за июнь 2025 года). Заработная плата может существенно варьироваться в зависимости от компании, региона и опыта специалиста.

Да, с уточнением: встроенный язык 1С — предметно-ориентированный DSL. Он содержит все признаки языка: синтаксис, типы данных, операторы, циклы, процедуры и функции. Ограничение одно — работает исключительно внутри платформы 1С:Предприятие и не применяется вне её.
Синтаксис аналогичен: ВЫБРАТЬ = SELECT, ИЗ = FROM, ГДЕ = WHERE. Ключевые различия: параметры задаются через &НазваниеПараметра, временные таблицы создаются через ПОМЕСТИТЬ (а не CREATE TEMP TABLE). Язык запросов 1С работает с объектами платформы (Справочник, Документ), а не с реляционными таблицами напрямую.
Синтаксис-помощник — встроенный интерактивный справочник платформы 1С:Предприятие. Содержит описание всех методов, функций и конструкций языка с примерами кода. Вызывается прямо в Конфигураторе — аналог IntelliSense, адаптированный под экосистему 1С. Позволяет искать синтаксис нужного метода, не выходя в браузер.
Пять типов: модуль объекта (код конкретного документа или справочника), модуль формы (взаимодействие с интерфейсом), общие модули (переиспользуемые процедуры), модуль приложения (выполняется при запуске) и модуль внешнего соединения (интеграции). Каждый модуль выполняется событийно — только при наступлении нужного события.
Конструкция Попытка-Исключение — аналог try-catch. Если внутри блока Попытка возникает ошибка, выполнение переходит в блок Исключение. Там доступна функция ИнформацияОбОшибке() и запись в Журнал регистрации. Применяется при работе с внешними данными, конвертации типов и вызовах сторонних систем.
Да: 1С — доминирующая ERP-платформа России. Классический ЯП 1С востребован в бухгалтерии и кадровом учёте; 1С:Элемент открывает рынок современных веб-приложений. Порог входа низкий: русскоязычный синтаксис, типовые конфигурации, развитая экосистема. Для начинающих без опыта вход через Элемент — один из самых быстрых путей в рынок.
Процедура выполняет действия, но не возвращает значение (Процедура / КонецПроцедуры). Функция обязательно возвращает результат через оператор Возврат (Функция / КонецФункции). Оба типа поддерживают параметры по умолчанию и передачу по значению (простые типы) или по ссылке (коллекции). Ключевое слово Экспорт открывает подпрограмму для других модулей.
Массив: МойМассив = Новый Массив; затем .Добавить(«Значение»);. Структура: МояСтруктура = Новый Структура; затем .Вставить(«Ключ», «Значение»);. Ключ в Структуре — строкового типа; в Соответствии — произвольного (аналог HashMap). Обе коллекции хранятся в оперативной памяти в рамках сеанса и удаляются после завершения.
Да. Встроенный язык двуязычен: все конструкции имеют русский и английский эквиваленты (Если = If, Функция = Function, Цикл = For). Смешивать оба языка в одном проекте нельзя — только один вариант. В 1С:Элемент (Исполнитель) переключение языка также доступно: русский или английский, но не оба одновременно.
Временные таблицы создаются ключевым словом ПОМЕСТИТЬ: ВЫБРАТЬ … ПОМЕСТИТЬ ВТ_Имя ИЗ …. Они существуют только в рамках выполнения запроса и удаляются автоматически. Используются для разбивки сложных многошаговых запросов на этапы и повышения читаемости кода — особенно при работе с несколькими соединениями таблиц.
Хотите освоить разработку в 1С с нуля? В рамках федерального проекта «Активные меры содействия занятости» доступна программа «1С Программист» — 256 часов онлайн-обучения без требований к опыту, полностью за счёт государственного финансирования. Смотрите каталог доступных программ.
Подайте заявку —
забронируйте место в группе
45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»