Разработка и Конфигурация · 8 мин
Как сделать многострочный комментарий в 1С
Как сделать многострочный комментарий в 1С: символ //, горячие клавиши Ctrl+/ и Ctrl+Shift+/, приём с #Если Ложь. Разбор ошибок и рекомендации для разработчика.
Во встроенном языке 1С нет отдельного синтаксиса для многострочных комментариев вроде / ... / в C или Python. Комментарий всегда начинается с двойного слеша // и действует до конца строки. Однако задача «закомментировать блок кода» решается несколькими штатными способами: массовым комментированием через горячие клавиши конфигуратора и приёмом с директивой препроцессора.
Выбор способа зависит от цели. Если нужно навсегда задокументировать логику — используйте обычные комментарии с //. Если требуется временно отключить фрагмент кода при отладке — удобнее конструкция с #Если Ложь, которую легко включить и выключить обратно. Ниже разобраны оба подхода, их ограничения и типичные ошибки.
Однострочный комментарий как основа
Единственный комментарий, который понимает компилятор встроенного языка 1С, — это текст после двойного слеша //. Всё, что находится правее // до конца строки, игнорируется при выполнении. Комментарий может занимать всю строку или идти после исполняемого кода.
// Рассчитываем скидку по накопительной программе
Скидка = СуммаДокумента * 0.05; // базовый процент скидки
Если пояснение длинное, его разбивают на несколько строк, и каждую начинают с //. Это и есть «многострочный комментарий» в терминах 1С — формально это набор однострочных.
// Проверяем остатки перед проведением.
// Если остатка не хватает, документ не проводится,
// а пользователю выводится сообщение с дефицитом.
Массовое комментирование горячими клавишами
Конфигуратор умеет автоматически проставлять и убирать // для выделенного блока. Это самый быстрый способ закомментировать десятки строк, не редактируя каждую вручную.
- 1Выделите мышью или клавишами Shift + стрелки нужный фрагмент кода в модуле.
- 2Нажмите Ctrl+/ — в начало каждой строки блока добавится //.
- 3Чтобы снять комментарий, снова выделите блок и нажмите Ctrl+Shift+/.
- 4Проверьте результат: закомментированный текст подсвечивается серым цветом.
Те же команды доступны через меню «Текст» → «Блок» → «Добавить комментарий» / «Удалить комментарий». Горячие клавиши работают во всех модулях: объектных, форм, общих модулей, модуле приложения.
Важная деталь: команда добавляет // только к строкам, где есть текст. Пустые строки внутри выделения остаются пустыми, что не мешает компиляции.
Отключение кода через #Если Ложь
Директивы препроцессора позволяют полностью исключить фрагмент из компиляции. Конструкция #Если Ложь Тогда ... #КонецЕсли фактически работает как блочный комментарий: код внутри не выполняется и даже не проверяется синтаксисом при исполнении.
#Если Ложь Тогда
// Временно отключённый расчёт
СтараяСкидка = СуммаДокумента * 0.1;
Итог = СуммаДокумента - СтараяСкидка;
#КонецЕсли
Чтобы снова включить код, достаточно заменить Ложь на Истина или удалить директивы. Это удобно при отладке, когда фрагмент планируется вернуть.
Отличие от обычного комментария
Директивы препроцессора обрабатываются до компиляции, поэтому внутри #Если Ложь допустим даже синтаксически неверный текст — он не вызовет ошибку. С обычными // так не получится: если забыть слеш в одной из строк, модуль не скомпилируется.
Комментарии в запросах
Текст запроса внутри 1С — это отдельный язык, и там действуют те же правила: комментарий начинается с // и идёт до конца строки. Блочного синтаксиса в языке запросов тоже нет.
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура, // основной товар
| Товары.Количество КАК Количество
|ИЗ
| Документ.Реализация.Товары КАК Товары";
Какой способ выбрать
Сравнение вариантов
Подходит для постоянной документации кода. Минус — чтобы убрать комментарий, нужно снова выделять блок.
Подходит для временного отключения кода при отладке. Включается и выключается одним словом. Не подходит для постоянных пояснений.
Правильный вариант для устаревшего кода, который больше не нужен. Требует подключения к хранилищу конфигурации или системе контроля версий.
Для постоянных пояснений к логике всегда используйте // — это стандарт, который поймёт любой разработчик. Для экспериментов и отладки — #Если Ложь. Для навсегда устаревшего кода — удаление, а не комментирование.
Как выбрать действие
Типичные ошибки и проверка результата
Как проверить результат
Закомментированный текст отображается серым цветом
Текст остался чёрным — // отсутствует или стоит не в начале комментария
Ошибок нет
Синтаксическая ошибка указывает на строку рядом с комментарием
Закомментированный фрагмент не выполняется
Код срабатывает — значит, он не закомментирован полностью
Часто задаваемые вопросы
Есть ли в 1С комментарий вида / ... /?
Нет. Встроенный язык 1С поддерживает только комментарии с // до конца строки. Попытка использовать / / приведёт к синтаксической ошибке при проверке модуля.
Как быстро закомментировать 100 строк?
Выделите весь фрагмент мышью или сочетанием Shift со стрелками и нажмите Ctrl+/. Конфигуратор добавит // к каждой непустой строке. Снятие комментария — Ctrl+Shift+/.
Чем #Если Ложь лучше обычного комментария?
Тем, что блок включается и выключается изменением одного слова (Ложь ↔ Истина), а внутри директив допустим даже нерабочий код — он не проверяется компилятором. Это удобно при отладке, но не заменяет пояснительные комментарии.
Работают ли комментарии в тексте запроса?
Да, в языке запросов комментарий тоже начинается с // и действует до конца строки. Но конструктор запросов может удалить такие комментарии при редактировании, поэтому важные пояснения лучше держать в коде модуля.
Влияют ли комментарии на производительность?
Нет. Комментарии удаляются на этапе компиляции модуля и никак не попадают в исполняемый код. Их количество влияет только на читаемость, а не на скорость работы программы.
Как закомментировать код в толстом или тонком клиенте?
Комментирование выполняется в конфигураторе на этапе разработки, а не в клиентском приложении. Горячие клавиши Ctrl+/ и Ctrl+Shift+/ одинаково работают в конфигураторе независимо от того, под какой клиент пишется код.
Что важно запомнить
Блочных комментариев в 1С нет: используйте // на каждой строке, а для массового комментирования — Ctrl+/ и Ctrl+Shift+/. Для временного отключения кода применяйте #Если Ложь ... #КонецЕсли, но не оставляйте такие блоки в готовой конфигурации. Устаревший код удаляйте, а не комментируйте.