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