Разработка и Конфигурация · 12 мин
Как понять язык 1С: практическое руководство для начинающих
Как понять язык 1С: структура встроенного языка, модули, запросы, синтаксис. Практические шаги для чтения и написания кода 1С без путаницы.
Язык 1С — это встроенный язык программирования платформы «1С:Предприятие», на котором описывается вся бизнес-логика: проведение документов, расчёт зарплаты, формирование отчётов. Внешне он похож на упрощённый Pascal с русскими ключевыми словами: Если, Тогда, КонецЕсли, Для Каждого. Именно русскоязычный синтаксис одновременно облегчает старт и сбивает с толку тех, кто пришёл из других языков.
Главная сложность не в синтаксисе, а в понимании контекста: один и тот же код ведёт себя по-разному в модуле объекта, модуле формы или общем модуле. Пока новичок не осознает, где именно выполняется код и какие данные ему доступны, язык кажется набором непонятных заклинаний. Разобравшись в структуре модулей и типовых конструкциях, читать чужой код становится заметно проще.
Отдельного внимания заслуживает язык запросов 1С — он похож на SQL, но имеет собственные особенности: виртуальные таблицы, обращение через точку к реквизитам, итоги. Большая часть реальной работы с данными в конфигурациях идёт именно через запросы, поэтому понимать оба языка необходимо.
Из чего состоит язык 1С: синтаксис и базовые конструкции
Встроенный язык 1С использует русские ключевые слова, хотя платформа поддерживает и английский вариант синтаксиса. Базовый набор конструкций невелик: условия Если ... Тогда ... Иначе ... КонецЕсли, циклы Для ... Цикл ... КонецЦикла и Для Каждого ... Из ... Цикл, процедуры и функции с явным окончанием КонецПроцедуры и КонецФункции.
Каждая инструкция завершается точкой с запятой — пропущенный символ это самая частая синтаксическая ошибка новичков. Переменные объявляются неявно или через Перем, типизация динамическая: одна и та же переменная может сначала хранить строку, а затем число. Это удобно, но порождает ошибки, когда в переменной оказывается значение неожиданного типа.
Комментарии начинаются с двойного слэша //. Строковые литералы заключаются в двойные кавычки, перенос строки внутри литерала обозначается вертикальной чертой |. Даты записываются в одинарных кавычках: '20260115'. Этих правил достаточно, чтобы начать читать простой код.
Где живёт код: система модулей
Ключ к пониманию языка 1С — осознать, что код не существует сам по себе, а привязан к модулям. Модуль объекта содержит обработчики событий самого объекта, например ОбработкаПроведения у документа. Модуль формы отвечает за поведение экранной формы: что происходит при открытии, при нажатии кнопки, при изменении поля.
Общие модули — это библиотеки переиспользуемых процедур и функций, доступных из любого места конфигурации. Модуль приложения и модуль сеанса содержат код, выполняемый при старте системы и установке соединения. Модули менеджеров объектов хранят логику, относящуюся к типу в целом, а не к конкретному экземпляру.
Читая чужой код, первым делом определите, в каком модуле вы находитесь — это подскажет, какие переменные и события доступны. Например, в модуле формы доступны реквизиты формы и элементы интерфейса, а в модуле объекта — реквизиты самого объекта через контекст ЭтотОбъект.
Как читать типовые обработчики событий
Большая часть кода в конфигурациях — это обработчики событий: процедуры с зарезервированными именами, которые платформа вызывает автоматически. У документа это ПередЗаписью, ПриЗаписи, ОбработкаПроведения, ОбработкаПроверкиЗаполнения. У формы — ПриСозданииНаСервере, ПриОткрытии, ПередЗаписью.
Порядок вызова событий фиксирован платформой. Например, при проведении документа сначала выполняется проверка заполнения, затем обработчик проведения, где формируются движения по регистрам. Понимание этой последовательности позволяет предсказать, когда и в каком контексте сработает тот или иной фрагмент кода.
Практический приём: поставьте точку останова в интересующем обработчике и выполните действие в пользовательском режиме. Отладчик покажет не только сам код, но и стек вызовов — вы увидите, откуда платформа пришла в эту процедуру и какие параметры передала.
- 1Определите модуль, в котором находится код, и директивы компиляции процедуры
- 2Найдите имя процедуры: обработчик события или обычная процедура
- 3Проследите, какие объекты конфигурации используются (справочники, документы, регистры)
- 4Запустите отладку с точкой останова и посмотрите значения переменных
- 5Проверьте результат выполнения в пользовательском режиме
Язык запросов: второй язык внутри первого
Запросы в 1С пишутся на отдельном языке, внешне напоминающем SQL: ВЫБРАТЬ ... ИЗ ... ГДЕ .... Текст запроса передаётся в объект Запрос как строка, затем устанавливаются параметры и выполняется метод Выполнить(). Результат обходится через Выбрать() или выгружается в таблицу значений методом Выгрузить().
Особенности, которые сбивают новичков: обращение к реквизитам через точку («разыменование»), виртуальные таблицы регистров (РегистрНакопления.Товары.Остатки), соединения таблиц и группировки с итогами. Всегда используйте параметры запроса через &ИмяПараметра вместо подстановки значений прямо в текст — это защищает от ошибок форматирования и упрощает отладку.
Конструктор запроса в конфигураторе позволяет собрать запрос визуально и посмотреть сгенерированный текст — это лучший способ учиться. Сравнивайте текст конструктора с тем, что пишете вручную, и разбирайте отличия.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить(Результат.Товар);
КонецЦикла;Работа с объектами: ссылки, объекты и движения
Фундаментальное различие, которое нужно понять: ссылка и объект — не одно и то же. Ссылка — это лёгкий идентификатор записи в базе, через неё можно читать реквизиты, но нельзя изменять данные. Чтобы изменить документ или элемент справочника, вызывают метод ПолучитьОбъект(), меняют реквизиты и записывают методом Записать().
Движения документа — это записи в регистрах, которые формируются при проведении. В обработчике ОбработкаПроведения программист заполняет коллекции Движения.ИмяРегистра, добавляя строки методом Добавить() и устанавливая вид движения, период и ресурсы. Пока вы не освоите эту механику, учётная логика конфигурации будет оставаться «чёрным ящиком».
Типичная ошибка — обходить механизм проведения и писать в регистры напрямую. Это нарушает целостность учёта: документ перестаёт быть источником движений, и отчёты начинают расходиться с первичными данными.
Инструменты, которые помогают понять код
Конфигуратор — основная среда разработки. В нём доступны синтакс-помощник (вызов по Ctrl+F1 на любом ключевом слове), контекстная подсказка, поиск по всей конфигурации и переход к определению процедуры. Синтакс-помощник — это полный справочник по языку, встроенный прямо в среду.
Отладчик позволяет пошагово выполнять код, смотреть значения переменных и стек вызовов. Для запросов полезна консоль запросов — внешняя обработка, где можно интерактивно выполнять и дорабатывать тексты запросов. Замер производительности показывает, какие строки кода выполняются дольше всего.
Изучение типовой конфигурации — лучший учебник: откройте простой документ, проследите его проведение от обработчика до движений по регистрам. Начинайте с небольших самописных конфигураций или учебных примеров, а не с типовых решений уровня ERP, где объём кода подавляет.
Способы изучения языка 1С
Даёт реальные примеры и понимание архитектуры, но требует начальной базы и терпения
Лучший вариант для старта: вы видите причину и следствие каждой строки кода
Незаменим как справочник, но без практики не формирует навык
Быстро даёт понимание потока выполнения, но требует доступа к базе и аккуратности
Типичные ошибки новичков
Первая ошибка — попытка учить язык отдельно от платформы. Без понимания объектов конфигурации (справочников, документов, регистров) синтаксис бесполезен: код 1С всегда работает с этими сущностями. Вторая ошибка — игнорирование разделения клиент-сервер: попытка выполнить запрос в клиентской процедуре приводит к ошибке компиляции.
Третья ошибка — изменение данных через запрос напрямую или обход проведения. Четвёртая — копирование фрагментов кода без понимания контекста модуля, из которого они взяты. Пятая — пренебрежение отладкой: попытка понять поведение кода «на глаз» вместо пошагового выполнения.
Как проверить, что вы поняли язык
Признак понимания — способность предсказать поведение кода до его выполнения: какие события сработают, в каком порядке, какие данные изменятся. Если вы можете объяснить, почему документ не проводится, найдя причину в обработчике проверки заполнения, — базовый уровень достигнут.
Следующий уровень — уверенное написание собственных процедур: обработчиков, запросов с параметрами, формирования движений. Финальный ориентир — чтение незнакомой типовой конфигурации без ступора: вы видите структуру, а не набор символов.
Как проверить результат обучения
Понимаете, какие регистры затрагиваются и почему
Код выглядит как набор непонятных строк
Запрос с параметрами выполняется и возвращает ожидаемые данные
Ошибки синтаксиса или пустой результат без понимания причины
Точки останова срабатывают, значения переменных предсказуемы
Код выполняется «мимо» ожиданий, причина неясна
Что важно запомнить
Язык 1С состоит из встроенного языка с русским синтаксисом и языка запросов. Ключ к пониманию — система модулей и контекст выполнения. Учитесь на копии базы, используйте отладку и синтакс-помощник, начинайте с простых учебных конфигураций.
Частые вопросы
Нужно ли знать другой язык программирования перед изучением 1С?
Нет, встроенный язык 1С вполне подходит как первый: синтаксис простой, а русские ключевые слова снижают порог входа. Знание основ SQL поможет при освоении запросов, но это можно изучать параллельно.
Чем язык запросов 1С отличается от обычного SQL?
Запрос 1С работает не с физическими таблицами базы, а с объектами конфигурации: справочниками, документами, регистрами. Есть виртуальные таблицы для остатков и оборотов, разыменование реквизитов через точку и отсутствие команд изменения данных — запросы в 1С только читают.
Можно ли писать код 1С на английском синтаксисе?
Да, платформа поддерживает английский вариант ключевых слов, и конфигуратор отображает оба. На практике в русскоязычных проектах используется русский синтаксис, поэтому читать его нужно уметь в любом случае.
Где безопасно практиковаться в написании кода?
Создайте пустую файловую информационную базу на своём компьютере и разверните в ней учебную или самописную конфигурацию. Для экспериментов с типовой конфигурацией сделайте копию рабочей базы. Никогда не отлаживайте новый код на базе с реальными учётными данными.
Что делать, если конфигуратор выдаёт ошибку, которую я не понимаю?
Прочитайте текст ошибки полностью — платформа обычно указывает модуль, строку и суть проблемы. Дважды щёлкните по сообщению, чтобы перейти к строке. Если причина неясна, проверьте точки с запятой, парность конструкций Если/КонецЕсли и правильность имён вызываемых процедур.
Сколько времени нужно, чтобы начать понимать код 1С?
При регулярной практике читать простые обработчики и писать базовые процедуры реально через несколько недель. Уверенное понимание типовых конфигураций с их архитектурой требует месяцев работы с реальными задачами — здесь многое зависит от интенсивности практики.