Разработка и Конфигурация · 11 мин
1С программирование: что это за язык и как он работает
Что такое язык программирования 1С: устройство встроенного языка платформы, синтаксис, объекты, примеры кода и с чего начать обучение разработке в 1С.
1С-программирование — это разработка и доработка прикладных решений на платформе «1С:Предприятие» с использованием встроенного языка, который часто называют «язык 1С» или «встроенный язык 1С». Это не универсальный язык вроде Python или C++: он существует только внутри платформы и заточен под одну задачу — описание бизнес-логики учёта, торговли, зарплаты, складских и финансовых операций.
Главная особенность языка — предметная ориентация. Вместо абстрактных классов разработчик работает с готовыми прикладными объектами: документами, справочниками, регистрами накопления, отчётами. Платформа сама берёт на себя хранение данных, построение форм, проведение документов и работу с СУБД, а программист описывает, что должно происходить с данными при действиях пользователя.
Вторая характерная черта — русскоязычный синтаксис. Ключевые слова можно писать по-русски («Если», «Тогда», «КонецЕсли») или по-английски («If», «Then», «EndIf»), и оба варианта эквивалентны. Это снижает порог входа для бухгалтеров и аналитиков, которые переходят в разработку без классического программистского бэкграунда.
Что представляет собой встроенный язык 1С
Встроенный язык 1С — это интерпретируемый высокоуровневый язык, исполняемый платформой. Код не компилируется в отдельную программу: он хранится внутри конфигурации и выполняется в контексте прикладных объектов. Разработчик не управляет памятью, не пишет SQL-запросы к таблицам напрямую и не создаёт интерфейс с нуля — всё это генерирует платформа по описанию конфигурации.
Язык слабо типизирован: тип переменной определяется значением в момент присваивания и может меняться в процессе выполнения. Это ускоряет написание кода, но требует аккуратности — ошибка типа всплывёт только во время выполнения, а не при проверке модуля.
Код в 1С распределяется по модулям: модуль объекта, модуль формы, общий модуль, модуль менеджера. У каждого типа модуля свой контекст исполнения — клиент или сервер. Директивами &НаКлиенте и &НаСервере разработчик указывает, где должна выполняться процедура, что критично для производительности клиент-серверных решений.
Как устроен синтаксис: базовые конструкции
Синтаксис напоминает классические структурные языки. Есть условия, циклы, процедуры и функции, обработка исключений через Попытка ... Исключение ... КонецПопытки. Переменные объявляются явно через Перем или создаются неявно при первом присваивании.
Функция РассчитатьСкидку(СуммаПокупки) Экспорт
Если СуммаПокупки >= 100000 Тогда
Возврат СуммаПокупки * 0.1;
ИначеЕсли СуммаПокупки >= 50000 Тогда
Возврат СуммаПокупки * 0.05;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Обратите внимание на типичные признаки: ключевые слова пишутся по-русски, разделитель операторов — точка с запятой, комментарии начинаются с двойного слэша. Строки задаются в двойных кавычках, даты — в литералах вида '20260115'.
Циклы представлены конструкциями Для ... Цикл, Для Каждого ... Из ... Цикл и Пока ... Цикл. Наиболее частый сценарий — обход выборки результата запроса или табличной части документа.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура, Количество ИЗ РегистрНакопления.ОстаткиТоваров.Остатки";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Номенклатура);
КонецЦикла;Прикладные объекты, с которыми работает язык
Сила языка 1С — в тесной интеграции с объектами метаданных. Разработчик манипулирует не таблицами базы данных, а осмысленными сущностями предметной области.
- Справочники — условно постоянные списки: номенклатура, контрагенты, сотрудники.
- Документы — факты хозяйственной деятельности: поступление товара, реализация, начисление зарплаты. Документы проводятся и формируют записи в регистрах.
- Регистры накопления и сведений — структуры для хранения остатков, оборотов и произвольных данных в разрезе измерений.
- Отчёты и обработки — инструменты анализа данных и пакетных операций, обычно построенные на системе компоновки данных (СКД).
Типовой сценарий разработки выглядит так: создаётся документ, в модуле объекта описывается обработка проведения — код, который формирует движения по регистрам. Платформа сама обеспечивает транзакционность и откат при ошибке.
- 1Создать или доработать объект метаданных (документ, регистр, отчёт) в конфигураторе
- 2Написать код в нужном модуле: обработка проведения, обработчики событий формы
- 3При необходимости построить запрос к данным и настроить отчёт на СКД
- 4Проверить работу в режиме отладки на копии базы
- 5Обновить конфигурацию рабочей базы и убедиться в корректности данных
Язык запросов 1С — вторая половина разработки
Кроме встроенного языка, разработчик 1С обязан владеть языком запросов — декларативным диалектом, похожим на SQL, но работающим с объектами метаданных, а не с физическими таблицами. Запросы применяются для выборки данных в отчётах, обработках и при проведении документов.
Ключевые отличия от классического SQL: обращение идёт к регистрам и справочникам по именам метаданных, доступны виртуальные таблицы (остатки, обороты, срезы последних), а соединения и группировки описываются похожим синтаксисом. Платформа сама транслирует запрос в команды конкретной СУБД — MS SQL Server, PostgreSQL, Oracle или файлового варианта.
Практическое правило: массовую обработку данных нужно делать запросом, а не перебором объектов в цикле. Выборка тысячи элементов через Справочники.Номенклатура.Выбрать() с обращением к каждому объекту работает на порядки медленнее одного запроса.
Где выполняется код и что такое конфигуратор
Единственная среда разработки — конфигуратор «1С:Предприятие» (для новых проектов также доступна среда 1C:Enterprise Development Tools на базе Eclipse). В конфигураторе разработчик редактирует дерево метаданных, пишет код модулей, конструирует запросы и формы, запускает отладчик с точками останова и просмотром значений переменных.
Код исполняется в трёх контекстах: на тонком или толстом клиенте (интерфейсная логика), на сервере 1С (бизнес-логика, запросы, проведение) и во внешнем соединении. Правильное распределение кода между клиентом и сервером — базовый навык: всё, что обращается к данным, должно выполняться на сервере.
Чем 1С-программирование отличается от разработки на других языках
| Критерий | Встроенный язык 1С | Универсальные языки (Python, C#, Java) |
|---|---|---|
| Область применения | Только учётные и бизнес-задачи внутри платформы | Любые задачи: веб, игры, аналитика, системы |
| Синтаксис | Русский и английский варианты ключевых слов | Англоязычный |
| Работа с данными | Через объекты метаданных и язык запросов | Через библиотеки, ORM, SQL |
| Интерфейс | Генерируется платформой по описанию форм | Создаётся вручную или фреймворками |
| Среда исполнения | Только платформа «1С:Предприятие» | ОС, браузер, серверы, мобильные устройства |
Из таблицы видно главное: 1С — это не конкурент универсальных языков, а специализированный инструмент. Выбирать его стоит, если цель — автоматизация учёта и работа в экосистеме 1С, а не разработка произвольного ПО.
Кому подходит изучение языка 1С
Низкий порог входа за счёт русского синтаксиса и понятной предметной области; ограничение — навыки слабо конвертируются в другую IT-сферу
Быстрое освоение синтаксиса, но придётся изучать специфику платформы: регистры, проведение, СКД, механизмы обмена
Реальный спрос на рынке труда и понятные задачи; ограничение — привязка карьеры к одной экосистеме
С чего начать изучение и как проверить результат
Рациональный путь входа: установить учебную версию платформы, пройти базовый курс по конфигурированию (создание справочников, документов, простейшего проведения), затем освоить язык запросов и СКД. Только после этого имеет смысл браться за механизмы обмена, расширения и оптимизацию.
Признак того, что база освоена: вы можете самостоятельно создать небольшую конфигурацию «с нуля» — справочник товаров, документ продажи, регистр остатков и отчёт по ним — без подглядывания в пошаговую инструкцию. Это и есть минимальный рабочий контур языка.
Что важно запомнить
1С-программирование — это разработка на встроенном предметно-ориентированном языке платформы «1С:Предприятие» с русскоязычным синтаксисом. Язык неотделим от платформы, работает с объектами метаданных и дополняется языком запросов. Осваивать его стоит для задач автоматизации учёта, а эксперименты — только на копиях баз.
Частые вопросы
1С — это язык программирования или программа?
И то и другое в зависимости от контекста. «1С:Предприятие» — это технологическая платформа, а встроенный язык — её часть. Когда говорят «программист 1С», имеют в виду разработчика, пишущего на встроенном языке и настраивающего конфигурации платформы.
Сложно ли выучить язык 1С без опыта программирования?
Порог входа ниже, чем у универсальных языков: русскоязычный синтаксис и понятная предметная область помогают быстро получить первый результат. Сложность появляется позже — при изучении механизмов платформы: проведения, регистров, СКД, клиент-серверного взаимодействия.
Можно ли писать на 1С по-английски?
Да, у каждого русского ключевого слова есть английский эквивалент, и оба варианта работают одинаково. На практике в российских проектах преобладает русский синтаксис, а английский чаще встречается в международных командах.
Чем расширение конфигурации отличается от доработки конфигурации?
Расширение — это надстройка, которая не изменяет исходную конфигурацию и потому не мешает её штатному обновлению. Прямая доработка меняет типовой код и усложняет обновления. Для большинства доработок типовых решений рекомендуется начинать с расширения.
Нужно ли знать SQL для работы с 1С?
Классический SQL не требуется — платформа сама формирует запросы к СУБД. Но нужно освоить собственный язык запросов 1С, который похож на SQL по структуре. Понимание принципов реляционных баз данных заметно облегчает работу.
Где можно практиковаться в 1С-программировании бесплатно?
Фирма «1С» распространяет учебную версию платформы с ограничениями, достаточную для обучения. На ней можно создавать собственные конфигурации, писать код, строить запросы и отчёты — этого хватает для освоения всех базовых навыков.