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