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

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

Как закомментировать блок кода в 1С

Как закомментировать блок кода в 1С: горячие клавиши Ctrl+Num/ и Ctrl+Shift+Num/, команды меню, многострочные комментарии, типичные ошибки и проверка результата.

Комментирование блока кода — одна из самых частых операций при разработке и отладке в 1С. В отличие от многих языков программирования, во встроенном языке 1С нет специального синтаксиса для многострочных комментариев: существует только однострочный комментарий через двойной слэш //. Поэтому «закомментировать блок» в 1С означает поставить двойной слэш в начале каждой строки выделенного фрагмента.

К счастью, делать это вручную не нужно: конфигуратор умеет комментировать и раскомментировать выделенный блок одной командой. Ниже разобраны все рабочие способы — горячие клавиши, команды меню, альтернативные приёмы через директивы препроцессора, а также типичные ошибки, из-за которых код после комментирования перестаёт работать.

Как устроены комментарии во встроенном языке 1С

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

Конструкций вида / ... /, знакомых по C, Java или JavaScript, в 1С нет. Попытка использовать их приведёт к синтаксической ошибке, потому что символ * в таком контексте будет воспринят как оператор умножения. Это принципиальное ограничение языка, а не настройка конфигуратора.

Из-за отсутствия многострочного синтаксиса закомментировать блок можно только одним способом — добавить // к каждой строке фрагмента. Именно эту операцию и автоматизируют штатные команды конфигуратора.

Комментирование блока горячими клавишами

Самый быстрый способ — сочетания клавиш, которые работают в модуле конфигуратора и в редакторе встроенного языка:

  • Ctrl + Num/ — закомментировать выделенный блок (клавиша «делить» на цифровой клавиатуре справа);
  • Ctrl + Shift + Num/ — снять комментарий с выделенного блока.

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

Порядок действий
  1. 1
    Откройте модуль в конфигураторе и найдите нужный фрагмент кода.
  2. 2
    Выделите строки, которые нужно отключить: мышью или Shift + стрелки.
  3. 3
    Нажмите Ctrl + Num/ (клавиша деления на цифровом блоке).
  4. 4
    Убедитесь, что каждая строка начинается с // и подсвечена зелёным.
  5. 5
    Для возврата кода выделите блок и нажмите Ctrl + Shift + Num/.

Если нажать Ctrl + Num/ без выделения, закомментируется только текущая строка, в которой стоит курсор. Это удобно для быстрого отключения одиночных операторов при отладке.

Что делать, если Num/ не работает

На ноутбуках без полноценного цифрового блока клавиша Num/ может отсутствовать или требовать комбинации с Fn. В этом случае есть три варианта: использовать команды меню «Текст», подключить внешнюю клавиатуру либо переназначить сочетание в настройках конфигуратора (меню «Сервис» → «Параметры», если версия платформы это позволяет). В 1С:EDT горячие клавиши настраиваются гибче — там комментирование блока по умолчанию привязано к Ctrl + / и Ctrl + Shift + C по аналогии с Eclipse.

Комментирование через меню конфигуратора

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

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

Комментирование в запросах и других редакторах

В тексте запроса на языке запросов 1С комментарии тоже существуют, и синтаксис тот же — двойной слэш //. Однако команда блочного комментирования в конструкторе запросов и в редакторе текста запроса может быть недоступна: зависит от версии платформы. Если горячие клавиши не срабатывают, добавляйте // вручную в начале каждой строки отключаемого фрагмента запроса.

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

Альтернатива: отключение кода через директивы препроцессора

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

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

// старый код, который временно не выполняется

Сообщить("Устаревшая ветка");

#КонецЕсли

У этого подхода есть преимущество: внутри такого блока можно свободно использовать обычные комментарии, не боясь «вложенности», а включение и отключение фрагмента делается правкой одного слова. Недостаток — код внутри ложной ветки всё равно проверяется синтаксически, поэтому оставлять там заведомо битый фрагмент нельзя.

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

Ctrl + Num/ (блочный комментарий)

Подходит для быстрого временного отключения при отладке. Ограничение: при раскомментировании легко забыть фрагмент.

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

Подходит для долговременного отключения целых процедур. Ограничение: код внутри должен оставаться синтаксически корректным.

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

Подходит, если конфигурация в хранилище или под git — старый код восстанавливается из истории, а модуль остаётся чистым.

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

Первая и самая частая ошибка — попытка использовать / / по привычке из других языков. Платформа выдаст синтаксическую ошибку, а начинающий разработчик может долго искать её причину. Запомните: в 1С только //.

Вторая ошибка — комментирование части конструкции, из-за которого нарушается парность. Например, закомментирована строка с КонецЕсли; или КонецЦикла;, а открывающая часть осталась. Модуль перестанет компилироваться, и проверка синтаксиса укажет на место, порой далёкое от реальной причины.

Типичные ошибки
01
Синтаксис /<em> </em>/ из других языков — в 1С он не поддерживается и даёт ошибку компиляции.
02
Закомментирован КонецЕсли или КонецЦикла при живом открывающем операторе — модуль не компилируется.
03
Отключённый код забыли вернуть: обработка молча работает по-старому, и ошибка всплывает у пользователей.
04
Комментарий внутри строки запроса проверяется только при выполнении — ошибка обнаруживается поздно.
05
Раскомментирование лишнего блока: Ctrl+Shift+Num/ снимает // со всех выделенных строк, включая настоящие пояснения.

Третья типичная проблема — забытый закомментированный код. После отладки фрагмент так и остаётся отключённым, и логика работает не так, как ожидается. Хорошая привычка — помечать временно отключённые блоки меткой, например // TODO: вернуть после отладки, и искать такие метки перед обновлением рабочей базы.

Проверка результата и полезные приёмы

После комментирования или раскомментирования блока выполните синтаксическую проверку модуля: меню «Конфигурация» → «Проверка конфигурации» либо клавиша Ctrl + F7 для проверки текущего модуля. Отсутствие ошибок — минимальное подтверждение, что парность конструкций не нарушена.

Контрольные точки

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

Цвет фрагмента в редакторе
Норма

Весь блок подсвечен зелёным, каждая строка начинается с //

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

Часть строк осталась обычного цвета — блок выделен не полностью

Синтаксическая проверка (Ctrl+F7)
Норма

Ошибок нет

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

Ошибка про КонецЕсли/КонецЦикла — нарушена парность конструкций

Поведение в режиме предприятия
Норма

Сценарий выполняется как ожидалось после отключения кода

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

Логика не изменилась — возможно, отключён не тот фрагмент

Для навигации по длинным модулям используйте поиск по // в сочетании с группировкой процедур и функций. Если конфигурация находится в хранилище или под системой контроля версий, предпочитайте удалять ненужный код вместо комментирования: история изменений сохранит старую реализацию, а модуль останется читаемым.

На ноутбуках без цифрового блока многие разработчики годами комментируют строки вручную, не зная про меню «Текст → Блок». Проверьте этот пункт меню один раз — он сэкономит заметное время при отладке больших модулей.
ПЗ
Практическое замечание

Частые вопросы

Есть ли в 1С многострочный комментарий, как / / в других языках?

Нет. Встроенный язык поддерживает только однострочный комментарий через //. Многострочный эффект достигается командой блочного комментирования (Ctrl + Num/), которая проставляет // в начале каждой строки выделенного фрагмента.

Почему Ctrl + Num/ не срабатывает на ноутбуке?

На многих ноутбуках цифровой блок отсутствует или включается через Fn, и клавиша Num/ недоступна. Используйте меню «Текст → Блок → Добавить комментарий», внешнюю клавиатуру или работайте в 1С:EDT, где сочетания клавиш можно переназначить.

Как быстро раскомментировать большой блок?

Выделите фрагмент и нажмите Ctrl + Shift + Num/ либо выберите «Текст → Блок → Удалить комментарий». Учтите: команда снимает // со всех выделенных строк, включая обычные пояснения, поэтому выделяйте точно тот блок, который отключали.

Можно ли закомментировать часть запроса в коде?

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

Что лучше: комментировать старый код или удалять его?

Если конфигурация в хранилище или под git, удаление предпочтительнее: старая версия восстанавливается из истории, а модуль не засоряется мёртвым кодом. Комментирование оправдано только для кратковременного отключения при отладке.

Закомментировал блок, а модуль перестал компилироваться. В чём причина?

Чаще всего вместе с блоком отключена завершающая конструкция — КонецЕсли, КонецЦикла или КонецПроцедуры, либо наоборот, осталась закрывающая часть без открывающей. Найдите нарушенную парность по сообщению проверки синтаксиса и восстановите структуру.

Итог

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

В 1С есть только однострочный комментарий //. Блок комментируется выделением и нажатием Ctrl + Num/, снимается — Ctrl + Shift + Num/; те же команды есть в меню «Текст → Блок». После правок всегда выполняйте проверку модуля и не оставляйте временно отключённый код в рабочей базе.