Разработка и Конфигурация · 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Откройте модуль в конфигураторе и найдите нужный фрагмент кода.
- 2Выделите строки, которые нужно отключить: мышью или Shift + стрелки.
- 3Нажмите Ctrl + Num/ (клавиша деления на цифровом блоке).
- 4Убедитесь, что каждая строка начинается с // и подсвечена зелёным.
- 5Для возврата кода выделите блок и нажмите Ctrl + Shift + Num/.
Если нажать Ctrl + Num/ без выделения, закомментируется только текущая строка, в которой стоит курсор. Это удобно для быстрого отключения одиночных операторов при отладке.
Что делать, если Num/ не работает
На ноутбуках без полноценного цифрового блока клавиша Num/ может отсутствовать или требовать комбинации с Fn. В этом случае есть три варианта: использовать команды меню «Текст», подключить внешнюю клавиатуру либо переназначить сочетание в настройках конфигуратора (меню «Сервис» → «Параметры», если версия платформы это позволяет). В 1С:EDT горячие клавиши настраиваются гибче — там комментирование блока по умолчанию привязано к Ctrl + / и Ctrl + Shift + C по аналогии с Eclipse.
Комментирование через меню конфигуратора
Если горячие клавиши недоступны или вы их не запомнили, те же операции доступны через интерфейс. Откройте модуль, выделите фрагмент и перейдите в главное меню: Текст → Блок → Добавить комментарий или Текст → Блок → Удалить комментарий. Названия пунктов могут незначительно отличаться в зависимости от версии платформы, но они всегда находятся в разделе «Текст» рядом с командами сдвига блока вправо и влево.
Эти же команды обычно продублированы в контекстном меню, которое открывается правой кнопкой мыши по выделенному тексту модуля. Для разработчика, который редко работает с кодом, этот путь надёжнее, чем поиск клавиши на цифровом блоке.
Комментирование в запросах и других редакторах
В тексте запроса на языке запросов 1С комментарии тоже существуют, и синтаксис тот же — двойной слэш //. Однако команда блочного комментирования в конструкторе запросов и в редакторе текста запроса может быть недоступна: зависит от версии платформы. Если горячие клавиши не срабатывают, добавляйте // вручную в начале каждой строки отключаемого фрагмента запроса.
Отдельный случай — отключение части выражения в строковом литерале. Если запрос задан строкой в коде, комментарий внутри неё обрабатывается уже механизмом запросов, а не компилятором встроенного языка. Ошибку в закомментированном фрагменте запроса вы увидите только при выполнении, а не при проверке модуля, поэтому после правок запросов всегда запускайте соответствующий сценарий в режиме предприятия.
Альтернатива: отключение кода через директивы препроцессора
Когда нужно отключить большой фрагмент надолго — например, старую реализацию процедуры, которую пока нельзя удалять, — вместо комментариев удобнее использовать директивы препроцессора #Если ... #КонецЕсли с заведомо ложным условием или обернуть код в недостижимую ветку. Классический приём выглядит так:
#Если Ложь Тогда
// старый код, который временно не выполняется
Сообщить("Устаревшая ветка");
#КонецЕсли
У этого подхода есть преимущество: внутри такого блока можно свободно использовать обычные комментарии, не боясь «вложенности», а включение и отключение фрагмента делается правкой одного слова. Недостаток — код внутри ложной ветки всё равно проверяется синтаксически, поэтому оставлять там заведомо битый фрагмент нельзя.
Сравнение вариантов
Подходит для быстрого временного отключения при отладке. Ограничение: при раскомментировании легко забыть фрагмент.
Подходит для долговременного отключения целых процедур. Ограничение: код внутри должен оставаться синтаксически корректным.
Подходит, если конфигурация в хранилище или под git — старый код восстанавливается из истории, а модуль остаётся чистым.
Типичные ошибки при комментировании блоков
Первая и самая частая ошибка — попытка использовать / / по привычке из других языков. Платформа выдаст синтаксическую ошибку, а начинающий разработчик может долго искать её причину. Запомните: в 1С только //.
Вторая ошибка — комментирование части конструкции, из-за которого нарушается парность. Например, закомментирована строка с КонецЕсли; или КонецЦикла;, а открывающая часть осталась. Модуль перестанет компилироваться, и проверка синтаксиса укажет на место, порой далёкое от реальной причины.
Третья типичная проблема — забытый закомментированный код. После отладки фрагмент так и остаётся отключённым, и логика работает не так, как ожидается. Хорошая привычка — помечать временно отключённые блоки меткой, например // TODO: вернуть после отладки, и искать такие метки перед обновлением рабочей базы.
Проверка результата и полезные приёмы
После комментирования или раскомментирования блока выполните синтаксическую проверку модуля: меню «Конфигурация» → «Проверка конфигурации» либо клавиша Ctrl + F7 для проверки текущего модуля. Отсутствие ошибок — минимальное подтверждение, что парность конструкций не нарушена.
Как проверить результат
Весь блок подсвечен зелёным, каждая строка начинается с //
Часть строк осталась обычного цвета — блок выделен не полностью
Ошибок нет
Ошибка про КонецЕсли/КонецЦикла — нарушена парность конструкций
Сценарий выполняется как ожидалось после отключения кода
Логика не изменилась — возможно, отключён не тот фрагмент
Для навигации по длинным модулям используйте поиск по // в сочетании с группировкой процедур и функций. Если конфигурация находится в хранилище или под системой контроля версий, предпочитайте удалять ненужный код вместо комментирования: история изменений сохранит старую реализацию, а модуль останется читаемым.
На ноутбуках без цифрового блока многие разработчики годами комментируют строки вручную, не зная про меню «Текст → Блок». Проверьте этот пункт меню один раз — он сэкономит заметное время при отладке больших модулей.
Частые вопросы
Есть ли в 1С многострочный комментарий, как / / в других языках?
Нет. Встроенный язык поддерживает только однострочный комментарий через //. Многострочный эффект достигается командой блочного комментирования (Ctrl + Num/), которая проставляет // в начале каждой строки выделенного фрагмента.
Почему Ctrl + Num/ не срабатывает на ноутбуке?
На многих ноутбуках цифровой блок отсутствует или включается через Fn, и клавиша Num/ недоступна. Используйте меню «Текст → Блок → Добавить комментарий», внешнюю клавиатуру или работайте в 1С:EDT, где сочетания клавиш можно переназначить.
Как быстро раскомментировать большой блок?
Выделите фрагмент и нажмите Ctrl + Shift + Num/ либо выберите «Текст → Блок → Удалить комментарий». Учтите: команда снимает // со всех выделенных строк, включая обычные пояснения, поэтому выделяйте точно тот блок, который отключали.
Можно ли закомментировать часть запроса в коде?
Да, в тексте запроса работает тот же символ //. Но ошибка в закомментированном фрагменте запроса проявится только при выполнении, а не при проверке модуля, поэтому после правок запроса обязательно запускайте сценарий в режиме предприятия.
Что лучше: комментировать старый код или удалять его?
Если конфигурация в хранилище или под git, удаление предпочтительнее: старая версия восстанавливается из истории, а модуль не засоряется мёртвым кодом. Комментирование оправдано только для кратковременного отключения при отладке.
Закомментировал блок, а модуль перестал компилироваться. В чём причина?
Чаще всего вместе с блоком отключена завершающая конструкция — КонецЕсли, КонецЦикла или КонецПроцедуры, либо наоборот, осталась закрывающая часть без открывающей. Найдите нарушенную парность по сообщению проверки синтаксиса и восстановите структуру.
Что важно запомнить
В 1С есть только однострочный комментарий //. Блок комментируется выделением и нажатием Ctrl + Num/, снимается — Ctrl + Shift + Num/; те же команды есть в меню «Текст → Блок». После правок всегда выполняйте проверку модуля и не оставляйте временно отключённый код в рабочей базе.