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

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

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

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

Комментарии во встроенном языке 1С — это текст, который платформа игнорирует при выполнении кода. Их используют, чтобы пояснить логику процедуры, временно отключить фрагмент при отладке или оставить пометку для коллег. Базовый способ один: двойной слэш // в начале комментария, но у него есть особенности в разных контекстах — модуле, запросе, тексте макета.

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

Основной синтаксис: двойной слэш

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

// Рассчитываем сумму с НДС

СуммаНДС = Сумма * 0.2; // ставка 20%

// Старая формула: СуммаНДС = Сумма * 0.18;

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

Важно понимать: слэши внутри строкового литерала не являются комментарием. Запись Текст = "путь // к файлу"; — это обычная строка, и платформа выполнит её полностью. Комментарием считается только тот //, который стоит вне кавычек.

Горячие клавиши для комментирования блока

Конфигуратор 1С умеет комментировать и раскомментировать сразу несколько строк. Выделите нужный фрагмент мышью или клавишами Shift и стрелками, затем нажмите комбинацию — платформа добавит // в начало каждой выделенной строки.

Как закомментировать блок кода
  1. 1
    Выделите нужные строки в модуле
  2. 2
    Нажмите Ctrl+/ — в начало каждой строки добавится //
  3. 3
    Для снятия комментария выделите строки и нажмите Ctrl+Shift+/
  4. 4
    Проверьте результат через контроль синтаксиса (Ctrl+F7 или кнопка проверки модуля)

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

Комбинация работает и для частично выделенных строк: достаточно, чтобы выделение захватывало хотя бы один символ строки. Комментарий при этом ставится в самое начало строки, а не в позицию курсора.

Комментарии внутри запросов

Текст запроса в 1С — это строка, заключённая в кавычки, но внутри неё действует собственный язык запросов со своими комментариями. И здесь тоже используется двойной слэш //, который обрабатывает уже компилятор запросов, а не встроенный язык.

Запрос.Текст =

"ВЫБРАТЬ

| Товары.Ссылка,

| Товары.Цена // цена из справочника

|ИЗ

| Справочник.Товары КАК Товары

|// отбор по группе временно отключен

|ГДЕ

| Товары.Цена > 0";

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

Многострочные комментарии и их отсутствие

В отличие от многих языков, во встроенном языке 1С нет парного блочного комментария вида / ... /. Каждая строка пояснения должна начинаться со своего //. Для длинных блоков это компенсируется горячей клавишей Ctrl+/, которая обрабатывает выделение за одно нажатие.

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

При редактировании текстов запросов в консоли кода или внешних инструментах помните: символ | в начале строк — это признак продолжения многострочного строкового литерала, а не комментарий. Удаление вертикальной черты сломает строку.

Комментарии в макетах, формах и других местах

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

В коде модулей формы, общих модулей, модуле объекта и менеджера комментирование работает одинаково — через // и горячие клавиши. Различий между управляемым и обычным приложением в этом вопросе нет.

Как проверить, что комментарий сработал

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

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

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

Синтаксис модуля
Норма

Проверка модуля завершается без ошибок

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

Ошибка вида «Ожидается символ» или «Непарный оператор»

Выполнение кода
Норма

Закомментированный фрагмент не выполняется, программа работает

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

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

Внешний вид
Норма

Комментарий подсвечен другим цветом в редакторе

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

Цвет не изменился — // попал в строковый литерал

Редактор кода подсвечивает комментарии отдельным цветом (обычно зелёным). Если после добавления слэшей цвет строки не изменился, значит, текст находится внутри строкового литерала и комментарием не является.

Типичные ошибки при комментировании

Типичные ошибки
01
Попытка использовать /<em> </em>/ — такого синтаксиса в 1С нет, будет ошибка компиляции
02
Комментирование только части условной конструкции — остаётся непарный Если или КонецЕсли
03
Постановка // внутри строки в кавычках — текст не становится комментарием, код выполняется
04
Забытый закомментированный код в рабочей базе — логика молча отключена, ошибку ищут часами
05
Комментирование строки запроса снаружи кавычек — синтаксическая ошибка модуля

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

При массовом комментировании через Ctrl+/ проверяйте границы выделения: легко захватить лишнюю строку, например закрывающий КонецПроцедуры;, и получить неработающий модуль.

FAQ: частые вопросы о комментариях в 1С

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

Нет, парного блочного комментария во встроенном языке 1С не существует. Каждая строка должна начинаться с //. Для удобства выделите блок и нажмите Ctrl+/ — слэши добавятся ко всем строкам автоматически.

Как убрать комментарий с нескольких строк?

Выделите закомментированные строки и нажмите Ctrl+Shift+/ или используйте пункт меню «Текст» → «Раскомментировать блок». Платформа удалит // в начале каждой выделенной строки.

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

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

Влияют ли комментарии на производительность?

Нет. Комментарии отбрасываются на этапе компиляции модуля и не попадают в исполняемый код, поэтому на скорость работы программы они не влияют.

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

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

Видно ли комментарии пользователям программы?

Нет, пользователи работают с готовым исполняемым кодом и не видят текст модулей. Комментарии доступны только тем, кто открывает конфигуратор, поэтому не размещайте в них конфиденциальные данные.

Итог

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

Строка в 1С комментируется символами //, блок — выделением и клавишами Ctrl+/, снятие комментария — Ctrl+Shift+/. Блочного комментария в языке нет. В тексте запроса // ставится внутри кавычек, а после любого комментирования стоит проверить модуль на синтаксические ошибки.