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