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

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

Как закомментировать много строк в 1С

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

В модуле 1С комментарием считается любой текст, который начинается с двойного слэша // — всё, что идёт после него до конца строки, компилятор игнорирует. Отдельного синтаксиса многострочного комментария, как в C или JavaScript (/ ... /), во встроенном языке 1С нет, поэтому большой фрагмент кода «выключают», проставляя слэши в начале каждой строки.

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

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

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

Основной способ — комбинация Ctrl + Num /, то есть клавиша «деления» на цифровой (num) части клавиатуры, нажатая вместе с Ctrl. Выделяете мышью или клавишами Shift + стрелки нужный фрагмент, нажимаете комбинацию — и в начале каждой выделенной строки появляется //.

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

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

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

Кнопки панели инструментов и контекстное меню

Те, кто не любит запоминать сочетания, могут использовать кнопки «Закомментировать» и «Раскомментировать» на панели инструментов редактора модуля (панель «Текст»). Кнопки выглядят как строки текста со слэшами; они активны, когда в модуле есть выделенный фрагмент.

Те же команды доступны через контекстное меню по правой кнопке мыши: выделите блок, кликните правой кнопкой и найдите пункты комментирования в разделе работы с текстом. Команды также присутствуют в главном меню «Текст» конфигуратора.

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

На ноутбуках без отдельного цифрового блока комбинация Ctrl + Num / часто недоступна. В этом случае удобнее держать под рукой кнопки панели «Текст» или включить виртуальный Num-блок через Fn, если он предусмотрен моделью клавиатуры.
ПЗ
Практическое замечание

Ручное комментирование и его разумные пределы

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

Ручной способ также нужен, когда комментарий ставится в конец строки после кода, например: Сумма = Сумма + НДС; // добавляем налог. Здесь блочная команда не подходит — она закомментирует строку целиком.

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

Многострочный комментарий: что есть и чего нет в языке

Частый вопрос от переходящих с других языков: есть ли в 1С конструкция вида / ... /. Прямого аналога нет — парных символов, открывающих и закрывающих комментарий на несколько строк, во встроенном языке не существует. Каждая строка комментируется своими //.

Исключение — механизм инструкций препроцессору и областей (#Область ... #КонецОбласти), но они не комментируют код, а лишь сворачивают его в редакторе или управляют компиляцией. Свёрнутую область код продолжает исполняться.

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

Как проверить, что код действительно отключён

Первый признак — визуальный: закомментированные строки окрашиваются в цвет комментариев (по умолчанию серый или зелёный в зависимости от настроек редактора). Если часть строк осталась в цвете исполняемого кода — выделение было неполным.

Второй способ — синтаксическая проверка модуля (кнопка с «галочкой» или пункт меню «Конфигурация — Проверка конфигурации»). Если в закомментированный блок попал обрыв конструкции — например, закомментирован Если, а КонецЕсли; остался активным, — проверка сразу покажет ошибку.

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

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

Цвет строк в редакторе
Норма

Весь отключённый фрагмент окрашен как комментарий

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

Часть строк осталась в цвете исполняемого кода

Синтаксическая проверка модуля
Норма

Ошибок нет или остались только прежние, не связанные с блоком

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

Появились ошибки про несоответствие Если/КонецЕсли, Попытка/КонецПопытки

Поведение программы
Норма

Отключённая логика больше не срабатывает

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

Код продолжает выполняться — закомментирован не тот экземпляр процедуры

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

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Закомментировано начало условия или цикла, а конец оставлен — модуль не компилируется
02
Отключена экспортная процедура, которую вызывают другие модули — ошибки в местах вызова
03
Забыли вернуть код после отладки — доработка теряется, а в рабочей базе логика не выполняется
04
Комментирование вместо удаления накапливается — модуль превращается в свалку мёртвого кода

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

Альтернативы комментированию для отключения кода

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

Ещё один вариант — вынести сомнительный фрагмент в отдельную процедуру и просто убрать её вызов. Так проще управлять включением-выключением одной строкой и проще найти точку отключения через поиск ссылок.

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

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

Нужно временно отключить 2–50 строк на время отладкиВыделите блок и нажмите Ctrl + Num /
Код должен остаться под синтаксическим контролемОберните фрагмент в условие или инструкцию препроцессору
Фрагмент больше не нужен вообщеУдалите его — историю храните в хранилище конфигурации, а не в комментариях
Отключается целая процедураУберите вызов процедуры, а само тело оставьте или удалите целиком
Итог

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

Многострочного синтаксиса в 1С нет: блок комментируют выделением и командой Ctrl + Num / или кнопкой «Закомментировать». Выделяйте парные конструкции целиком, после правки выполняйте синтаксическую проверку, а закомментированный код не храните в модуле долго.

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

Как закомментировать строки в 1С на ноутбуке без цифрового блока?

Используйте кнопки «Закомментировать» и «Раскомментировать» на панели инструментов «Текст» или одноимённые команды в контекстном меню по правой кнопке мыши. На части ноутбуков также работает эмуляция Num-блока через клавишу Fn.

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

Да: выделите весь текст (Ctrl + A) и примените команду комментирования. Но практического смысла в этом мало — проще отключить вызовы процедур модуля. Кроме того, в модуле могут быть обязательные для компиляции конструкции, и полное комментирование вызовет ошибки в связанных местах.

Почему после комментирования модуль перестал компилироваться?

Почти всегда причина в разрыве парной конструкции: закомментировано начало условия, цикла или попытки, а закрывающий оператор остался активным. Раскомментируйте блок, выделите его заново целиком — от открывающего до закрывающего оператора — и повторите команду.

Влияют ли комментарии на быстродействие программы?

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

Как найти все закомментированные фрагменты в конфигурации?

Используйте глобальный поиск по конфигурации (Ctrl + Shift + F) с шаблоном, например, по строке «//» с ограничением по модулям. Для поиска именно отключённого кода, а не обычных пояснений, ищите характерные фрагменты: «//Если», «//КонецЦикла» и тому подобное.

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

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