Разработка и Конфигурация · 10 мин
Как закомментировать много строк в 1С
Как быстро закомментировать несколько строк в конфигураторе 1С: горячие клавиши Ctrl+Num /, кнопки панели, многострочный комментарий, ошибки и проверка результата.
В модуле 1С комментарием считается любой текст, который начинается с двойного слэша // — всё, что идёт после него до конца строки, компилятор игнорирует. Отдельного синтаксиса многострочного комментария, как в C или JavaScript (/ ... /), во встроенном языке 1С нет, поэтому большой фрагмент кода «выключают», проставляя слэши в начале каждой строки.
Вручную ставить // на десятках строк не нужно: редактор модулей конфигуратора умеет комментировать и раскомментировать выделенный блок одной командой. Это стандартный приём при отладке, временном отключении обработчиков и проверке гипотез без удаления кода.
Ниже разобраны все рабочие способы: горячие клавиши, кнопки панели инструментов, пункт контекстного меню, а также ограничения, частые ошибки и способы проверить, что код действительно отключён.
Как закомментировать блок строк горячими клавишами
Основной способ — комбинация Ctrl + Num /, то есть клавиша «деления» на цифровой (num) части клавиатуры, нажатая вместе с Ctrl. Выделяете мышью или клавишами Shift + стрелки нужный фрагмент, нажимаете комбинацию — и в начале каждой выделенной строки появляется //.
Та же комбинация работает в обратную сторону: если все выделенные строки уже закомментированы, повторное нажатие убирает слэши. Это делает приём удобным для временного отключения кода на время отладки: закомментировали, проверили поведение, вернули обратно одним нажатием.
- 1Откройте модуль в конфигураторе и найдите нужный фрагмент кода
- 2Выделите строки мышью или Shift + стрелки вниз/вверх
- 3Нажмите Ctrl + Num / (клавиша деления на цифровом блоке)
- 4Убедитесь, что каждая строка начинается с // и подсветка кода сменилась на цвет комментария
- 5Для возврата кода выделите блок и нажмите Ctrl + Num / ещё раз
Если выделена только часть строк, команда применяется к тем строкам, которые затронуты выделением, — не обязательно выделять каждую строку целиком от первого до последнего символа.
Кнопки панели инструментов и контекстное меню
Те, кто не любит запоминать сочетания, могут использовать кнопки «Закомментировать» и «Раскомментировать» на панели инструментов редактора модуля (панель «Текст»). Кнопки выглядят как строки текста со слэшами; они активны, когда в модуле есть выделенный фрагмент.
Те же команды доступны через контекстное меню по правой кнопке мыши: выделите блок, кликните правой кнопкой и найдите пункты комментирования в разделе работы с текстом. Команды также присутствуют в главном меню «Текст» конфигуратора.
Все три пути — горячие клавиши, кнопки и меню — выполняют одну и ту же операцию, поэтому выбирайте тот, который быстрее в вашем рабочем процессе. Разницы в результате нет.
На ноутбуках без отдельного цифрового блока комбинация Ctrl + Num / часто недоступна. В этом случае удобнее держать под рукой кнопки панели «Текст» или включить виртуальный Num-блок через Fn, если он предусмотрен моделью клавиатуры.
Ручное комментирование и его разумные пределы
Для одной-двух строк проще поставить // вручную в начале строки. Курсор можно установить в любое место строки — компилятору важно лишь, чтобы слэши стояли до исполняемого кода. Ставить // в самое начало строки — хорошая привычка: такой код легче заметить при визуальном просмотре.
Ручной способ также нужен, когда комментарий ставится в конец строки после кода, например: Сумма = Сумма + НДС; // добавляем налог. Здесь блочная команда не подходит — она закомментирует строку целиком.
Для больших фрагментов ручное проставление слэшей не имеет смысла: это медленно и чревато пропусками. Если строк больше трёх-четырёх — используйте блочную команду.
Многострочный комментарий: что есть и чего нет в языке
Частый вопрос от переходящих с других языков: есть ли в 1С конструкция вида / ... /. Прямого аналога нет — парных символов, открывающих и закрывающих комментарий на несколько строк, во встроенном языке не существует. Каждая строка комментируется своими //.
Исключение — механизм инструкций препроцессору и областей (#Область ... #КонецОбласти), но они не комментируют код, а лишь сворачивают его в редакторе или управляют компиляцией. Свёрнутую область код продолжает исполняться.
Если нужно отключить большой фрагмент вместе с уже существующими комментариями внутри него, блочная команда справляется корректно: строки, имевшие //, получат двойные слэши ////, и при раскомментировании всё вернётся в исходное состояние.
Как проверить, что код действительно отключён
Первый признак — визуальный: закомментированные строки окрашиваются в цвет комментариев (по умолчанию серый или зелёный в зависимости от настроек редактора). Если часть строк осталась в цвете исполняемого кода — выделение было неполным.
Второй способ — синтаксическая проверка модуля (кнопка с «галочкой» или пункт меню «Конфигурация — Проверка конфигурации»). Если в закомментированный блок попал обрыв конструкции — например, закомментирован Если, а КонецЕсли; остался активным, — проверка сразу покажет ошибку.
Как проверить результат
Весь отключённый фрагмент окрашен как комментарий
Часть строк осталась в цвете исполняемого кода
Ошибок нет или остались только прежние, не связанные с блоком
Появились ошибки про несоответствие Если/КонецЕсли, Попытка/КонецПопытки
Отключённая логика больше не срабатывает
Код продолжает выполняться — закомментирован не тот экземпляр процедуры
Третья проверка — функциональная: запустите сценарий, который раньше выполнял отключённый код, и убедитесь, что поведение изменилось. Помните, что в клиент-серверном режиме изменения модулей требуют обновления конфигурации базы данных и перезапуска сеанса.
Типичные ошибки и ограничения
Самая распространённая ошибка — разрыв парных конструкций. Если закомментировать начало условия, цикла или попытки, оставив закрывающий оператор активным, модуль перестанет компилироваться. Выделяйте блок целиком, от Если до КонецЕсли; включительно.
Вторая ошибка — комментирование объявления процедуры или функции, на которую есть ссылки из других модулей. Сам модуль проверку пройдёт, а вот вызовы извне начнут падать с ошибкой «Процедура или функция не обнаружена».
Третья ошибка — оставлять закомментированный код в конфигурации надолго «на всякий случай». История изменений хранилища конфигурации или внешней системы контроля версий хранит старые варианты надёжнее, чем мёртвые строки в модуле. Временное отключение — инструмент отладки, а не способ архивации.
Альтернативы комментированию для отключения кода
Иногда вместо комментирования удобнее обернуть фрагмент в условие, которое заведомо не выполняется, либо в инструкцию препроцессору — например, выделить отладочный код в ветку, работающую только на сервере или только в файловом варианте. Это сохраняет код «живым» для синтаксической проверки, что снижает риск рассинхронизации при дальнейших правках.
Ещё один вариант — вынести сомнительный фрагмент в отдельную процедуру и просто убрать её вызов. Так проще управлять включением-выключением одной строкой и проще найти точку отключения через поиск ссылок.
Как выбрать действие
Что важно запомнить
Многострочного синтаксиса в 1С нет: блок комментируют выделением и командой Ctrl + Num / или кнопкой «Закомментировать». Выделяйте парные конструкции целиком, после правки выполняйте синтаксическую проверку, а закомментированный код не храните в модуле долго.
Частые вопросы
Как закомментировать строки в 1С на ноутбуке без цифрового блока?
Используйте кнопки «Закомментировать» и «Раскомментировать» на панели инструментов «Текст» или одноимённые команды в контекстном меню по правой кнопке мыши. На части ноутбуков также работает эмуляция Num-блока через клавишу Fn.
Можно ли закомментировать сразу весь модуль?
Да: выделите весь текст (Ctrl + A) и примените команду комментирования. Но практического смысла в этом мало — проще отключить вызовы процедур модуля. Кроме того, в модуле могут быть обязательные для компиляции конструкции, и полное комментирование вызовет ошибки в связанных местах.
Почему после комментирования модуль перестал компилироваться?
Почти всегда причина в разрыве парной конструкции: закомментировано начало условия, цикла или попытки, а закрывающий оператор остался активным. Раскомментируйте блок, выделите его заново целиком — от открывающего до закрывающего оператора — и повторите команду.
Влияют ли комментарии на быстродействие программы?
Нет. Комментарии удаляются на этапе компиляции модуля и в исполняемый код не попадают, поэтому на скорость работы они не влияют. Влияет лишь объём текста в редакторе при очень больших модулях.
Как найти все закомментированные фрагменты в конфигурации?
Используйте глобальный поиск по конфигурации (Ctrl + Shift + F) с шаблоном, например, по строке «//» с ограничением по модулям. Для поиска именно отключённого кода, а не обычных пояснений, ищите характерные фрагменты: «//Если», «//КонецЦикла» и тому подобное.
Работает ли комментирование в запросах внутри кода?
Да, но по своим правилам: в тексте запроса комментарий также начинается с //. При этом блочная команда редактора закомментирует строки целиком вместе с кавычками литерала, поэтому текст запроса внутри строкового литерала корректнее комментировать внутри самого запроса.