К статье
Практический материал

Разработка и Конфигурация · 8 мин

Как сделать многострочный комментарий в 1С

Как сделать многострочный комментарий в 1С: символ //, горячие клавиши Ctrl+/ и Ctrl+Shift+/, приём с #Если Ложь. Разбор ошибок и рекомендации для разработчика.

Во встроенном языке 1С нет отдельного синтаксиса для многострочных комментариев вроде / ... / в C или Python. Комментарий всегда начинается с двойного слеша // и действует до конца строки. Однако задача «закомментировать блок кода» решается несколькими штатными способами: массовым комментированием через горячие клавиши конфигуратора и приёмом с директивой препроцессора.

Выбор способа зависит от цели. Если нужно навсегда задокументировать логику — используйте обычные комментарии с //. Если требуется временно отключить фрагмент кода при отладке — удобнее конструкция с #Если Ложь, которую легко включить и выключить обратно. Ниже разобраны оба подхода, их ограничения и типичные ошибки.

Однострочный комментарий как основа

Единственный комментарий, который понимает компилятор встроенного языка 1С, — это текст после двойного слеша //. Всё, что находится правее // до конца строки, игнорируется при выполнении. Комментарий может занимать всю строку или идти после исполняемого кода.

// Рассчитываем скидку по накопительной программе

Скидка = СуммаДокумента * 0.05; // базовый процент скидки

Если пояснение длинное, его разбивают на несколько строк, и каждую начинают с //. Это и есть «многострочный комментарий» в терминах 1С — формально это набор однострочных.

// Проверяем остатки перед проведением.

// Если остатка не хватает, документ не проводится,

// а пользователю выводится сообщение с дефицитом.

Массовое комментирование горячими клавишами

Конфигуратор умеет автоматически проставлять и убирать // для выделенного блока. Это самый быстрый способ закомментировать десятки строк, не редактируя каждую вручную.

Как закомментировать блок кода
  1. 1
    Выделите мышью или клавишами Shift + стрелки нужный фрагмент кода в модуле.
  2. 2
    Нажмите Ctrl+/ — в начало каждой строки блока добавится //.
  3. 3
    Чтобы снять комментарий, снова выделите блок и нажмите Ctrl+Shift+/.
  4. 4
    Проверьте результат: закомментированный текст подсвечивается серым цветом.

Те же команды доступны через меню «Текст» → «Блок» → «Добавить комментарий» / «Удалить комментарий». Горячие клавиши работают во всех модулях: объектных, форм, общих модулей, модуле приложения.

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

Отключение кода через #Если Ложь

Директивы препроцессора позволяют полностью исключить фрагмент из компиляции. Конструкция #Если Ложь Тогда ... #КонецЕсли фактически работает как блочный комментарий: код внутри не выполняется и даже не проверяется синтаксисом при исполнении.

#Если Ложь Тогда

// Временно отключённый расчёт

СтараяСкидка = СуммаДокумента * 0.1;

Итог = СуммаДокумента - СтараяСкидка;

#КонецЕсли

Чтобы снова включить код, достаточно заменить Ложь на Истина или удалить директивы. Это удобно при отладке, когда фрагмент планируется вернуть.

Отличие от обычного комментария

Директивы препроцессора обрабатываются до компиляции, поэтому внутри #Если Ложь допустим даже синтаксически неверный текст — он не вызовет ошибку. С обычными // так не получится: если забыть слеш в одной из строк, модуль не скомпилируется.

Комментарии в запросах

Текст запроса внутри 1С — это отдельный язык, и там действуют те же правила: комментарий начинается с // и идёт до конца строки. Блочного синтаксиса в языке запросов тоже нет.

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

"ВЫБРАТЬ

| Товары.Номенклатура КАК Номенклатура, // основной товар

| Товары.Количество КАК Количество

|ИЗ

| Документ.Реализация.Товары КАК Товары";

Какой способ выбрать

Сравнение вариантов

Обычные // по строкам (Ctrl+/)

Подходит для постоянной документации кода. Минус — чтобы убрать комментарий, нужно снова выделять блок.

#Если Ложь ... #КонецЕсли

Подходит для временного отключения кода при отладке. Включается и выключается одним словом. Не подходит для постоянных пояснений.

Удаление кода с сохранением в хранилище

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

Для постоянных пояснений к логике всегда используйте // — это стандарт, который поймёт любой разработчик. Для экспериментов и отладки — #Если Ложь. Для навсегда устаревшего кода — удаление, а не комментирование.

Маршрут решения

Как выбрать действие

Нужно пояснить, что делает фрагмент кодаНапишите комментарии с // перед блоком или рядом со строками
Нужно временно отключить код при отладке и потом вернутьОберните фрагмент в #Если Ложь Тогда ... #КонецЕсли
Код устарел и больше не понадобитсяУдалите его, полагаясь на хранилище конфигурации или копию
Нужно быстро закомментировать много строкВыделите блок и нажмите Ctrl+/

Типичные ошибки и проверка результата

Типичные ошибки
01
Попытка использовать /<em> </em>/ как в других языках — компилятор 1С выдаст синтаксическую ошибку.
02
Пропуск // в одной из строк длинного пояснения — строка воспринимается как код, модуль не компилируется.
03
Комментирование части выражения внутри условия — нарушается структура оператора, возникает ошибка.
04
Оставленные в релизе блоки #Если Ложь — засоряют модуль и путают коллег.
05
Комментарий внутри текста запроса, который затирается при повторном открытии конструктора запроса.
Контрольные точки

Как проверить результат

Подсветка синтаксиса
Норма

Закомментированный текст отображается серым цветом

Тревожный признак

Текст остался чёрным — // отсутствует или стоит не в начале комментария

Проверка модуля (Ctrl+F7 или кнопка проверки)
Норма

Ошибок нет

Тревожный признак

Синтаксическая ошибка указывает на строку рядом с комментарием

Выполнение кода
Норма

Закомментированный фрагмент не выполняется

Тревожный признак

Код срабатывает — значит, он не закомментирован полностью

Часто задаваемые вопросы

Есть ли в 1С комментарий вида / ... /?

Нет. Встроенный язык 1С поддерживает только комментарии с // до конца строки. Попытка использовать / / приведёт к синтаксической ошибке при проверке модуля.

Как быстро закомментировать 100 строк?

Выделите весь фрагмент мышью или сочетанием Shift со стрелками и нажмите Ctrl+/. Конфигуратор добавит // к каждой непустой строке. Снятие комментария — Ctrl+Shift+/.

Чем #Если Ложь лучше обычного комментария?

Тем, что блок включается и выключается изменением одного слова (Ложь ↔ Истина), а внутри директив допустим даже нерабочий код — он не проверяется компилятором. Это удобно при отладке, но не заменяет пояснительные комментарии.

Работают ли комментарии в тексте запроса?

Да, в языке запросов комментарий тоже начинается с // и действует до конца строки. Но конструктор запросов может удалить такие комментарии при редактировании, поэтому важные пояснения лучше держать в коде модуля.

Влияют ли комментарии на производительность?

Нет. Комментарии удаляются на этапе компиляции модуля и никак не попадают в исполняемый код. Их количество влияет только на читаемость, а не на скорость работы программы.

Как закомментировать код в толстом или тонком клиенте?

Комментирование выполняется в конфигураторе на этапе разработки, а не в клиентском приложении. Горячие клавиши Ctrl+/ и Ctrl+Shift+/ одинаково работают в конфигураторе независимо от того, под какой клиент пишется код.

Итог

Что важно запомнить

Блочных комментариев в 1С нет: используйте // на каждой строке, а для массового комментирования — Ctrl+/ и Ctrl+Shift+/. Для временного отключения кода применяйте #Если Ложь ... #КонецЕсли, но не оставляйте такие блоки в готовой конфигурации. Устаревший код удаляйте, а не комментируйте.