Комментирование блока кода в 1С 8.3: Конфигуратор, EDT, запросы и расширения
Содержание
Чтобы закомментировать несколько строк в Конфигураторе 1С, выделите их мышью или клавишами Shift+↓ и нажмите Ctrl + / на цифровом блоке клавиатуры (Ctrl+Num/). Снять комментарий — Ctrl+Shift+Num/. Те же команды есть в меню Текст → Блок → Добавить комментарий и Удалить комментарий.
Проблемы начинаются, когда цифрового блока нет, код живёт в тексте запроса или в расширении, а после комментирования модуль перестаёт компилироваться. Всё это разобрано по порядку: от клавиш до правил, как писать комментарии, которые помогают через год.
Горячие клавиши для блока строк в Конфигураторе
В языке 1С есть только один вид комментария — однострочный. Он начинается с двух косых черт // и действует до конца строки. Блочных комментариев вроде /* ... */ в языке нет.
Поэтому «закомментировать несколько строк» — это поставить // в начало каждой из них. Вручную это делать незачем, платформа умеет сама.
Пошагово
- Откройте модуль в Конфигураторе.
- Выделите нужные строки. Захватывать строку целиком не обязательно: достаточно, чтобы выделение касалось хотя бы одного символа в первой и последней строке.
- Нажмите
Ctrl+Num/— клавиша/справа, на цифровом блоке. - В начале каждой выделенной строки появится
//, текст станет зелёным.
Чтобы вернуть код, выделите те же строки и нажмите Ctrl+Shift+Num/. Платформа уберёт по одной паре // в начале каждой строки. Если строка была закомментирована дважды, комментарий останется — нажмите сочетание ещё раз.
Сводная таблица команд редактора
| Действие | Клавиши | Меню |
|---|---|---|
| 💬 Закомментировать блок | Ctrl+Num/ | Текст → Блок → Добавить комментарий |
| ↩️ Раскомментировать блок | Ctrl+Shift+Num/ | Текст → Блок → Удалить комментарий |
| ➡️ Сдвинуть блок вправо | Tab | Текст → Блок → Сдвинуть вправо |
| ⬅️ Сдвинуть блок влево | Shift+Tab | Текст → Блок → Сдвинуть влево |
| 🧹 Отформатировать блок | Alt+Shift+F | Текст → Блок → Форматировать |
Те же команды доступны из контекстного меню: щёлкните правой кнопкой по выделенному тексту и откройте подменю Блок. Это самый надёжный путь, если сочетание клавиш «молчит».
Как закомментировать код на ноутбуке без цифрового блока
Обычная клавиша / рядом с правым Shift для этой команды не подходит. Платформа ждёт именно / с цифрового блока, а на компактных клавиатурах его нет.
Рабочие варианты:
- 📋 Меню или контекстное меню.
Текст → Блок → Добавить комментарий. Медленнее, зато работает везде. - ⌨️ Встроенный цифровой блок ноутбука. На многих моделях он включается сочетанием
Fn + NumLock(иногдаFn + F11или отдельной клавишей). Тогда/переезжает на одну из клавиш правой половины — обычно на неё нанесён второй символ мелким шрифтом. Порядок зависит от производителя, ищите его в инструкции к ноутбуку. - 🖥️ Экранная клавиатура Windows. Запустите
oskчерезWin+R, в параметрах включите цифровую клавиатуру и нажмитеCtrlи/мышью. - 🔁 Внешняя USB-клавиатура или отдельный цифровой блок — если код приходится писать каждый день.
- 🛠️ Программа переназначения клавиш (например, AutoHotkey). Ей можно поручить отправлять
Ctrl+Num/по любому удобному сочетанию, только назначьте его так, чтобы не перехватить системные клавиши.
Если вы работаете с Конфигуратором через удалённый рабочий стол, часть сочетаний может перехватывать клиент RDP или программа на вашем компьютере. Проверьте, срабатывает ли команда из меню: если да — дело в клавишах, а не в базе.
Комментарии в EDT и VS Code
В 1С:Enterprise Development Tools работают привычные для среды Eclipse сочетания. Ctrl+/ переключает комментарий у выделенных строк: если строки не закомментированы — ставит //, если закомментированы — снимает. Здесь подходит обычная клавиша / на основной части клавиатуры.
В VS Code с расширением для языка 1С (BSL) действует стандартное сочетание редактора — тоже Ctrl+/. Его поведение одинаково для всех языков, которые поддерживает VS Code.
| Среда | Закомментировать | Снять комментарий |
|---|---|---|
| Конфигуратор 8.3 | Ctrl+Num/ | Ctrl+Shift+Num/ |
| EDT | Ctrl+/ (переключает) | Ctrl+/ |
| VS Code + BSL | Ctrl+/ (переключает) | Ctrl+/ |
Синтаксис комментария во всех средах один и тот же — //. Код, закомментированный в EDT, после выгрузки в конфигурацию выглядит в Конфигураторе точно так же.
Особенности комментирования в разных модулях
Сами // везде одинаковы. Различаются последствия: что именно отключится, когда вы уберёте строки из работы.
Модуль управляемой формы
Над каждой процедурой формы стоит директива компиляции: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. Это обычная строка, и её легко случайно задеть выделением.
Если закомментировать только директиву, процедура не отключится, а «переедет» на сервер: без директивы метод модуля формы по умолчанию компилируется &НаСервере. Код с клиентскими вызовами после этого выдаст ошибку при проверке модуля. Комментируйте процедуру вместе с директивой.
Общие модули
Здесь место выполнения задаётся не директивами, а флажками в свойствах модуля: Клиент (управляемое приложение), Сервер, Вызов сервера и другие. Комментарий в тексте на них не влияет.
Отдельно следите за экспортными методами. Закомментировали Функция ... Экспорт — все модули, которые её вызывают, перестанут проходить синтаксическую проверку.
Инструкции препроцессора
Блоки #Если Сервер Тогда ... #КонецЕсли и #Область ... #КонецОбласти комментируются так же, через //. Но парность обязательна: закомментировали #Область — закомментируйте и её #КонецОбласти, иначе модуль не скомпилируется.
Текст запроса
В языке запросов 1С тоже работают комментарии //. Если запрос открыт в консоли или в конструкторе, выделенные строки комментируются тем же Ctrl+Num/.
Если запрос записан строкой прямо в модуле, ставьте // после вертикальной черты:
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование
|// , Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Так строка остаётся частью текста запроса, а // отключает поле уже внутри запроса. Обратите внимание на запятую: она перенесена в начало закомментированной строки, чтобы перед ИЗ не осталась лишняя запятая. Висячая запятая после последнего поля — самая частая ошибка при отключении полей запроса.
Расширения конфигурации
Если вы адаптируете типовой метод через расширение с аннотацией &ИзменениеИКонтроль, не комментируйте типовые строки через //. Для этого в расширениях есть отдельные инструкции:
&ИзменениеИКонтроль("ПриСозданииНаСервере")
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
#Удаление
Элементы.Склад.Видимость = Ложь;
#КонецУдаления
#Вставка
Элементы.Склад.Видимость = Истина;
#КонецВставки
КонецПроцедуры
Блок #Удаление убирает типовой код, #Вставка добавляет ваш. Остальной текст метода должен совпадать с типовым: на этом построен контроль. Когда поставщик изменит метод в новом релизе, платформа сообщит о расхождении, и вы увидите, что доработку пора проверить.
Комментарии к объектам метаданных
Кроме комментариев в коде, у объектов конфигурации есть свойство Комментарий. Это поле в палитре свойств справочника, документа, регистра, реквизита, общего модуля.
Как заполнить:
- В дереве конфигурации выделите объект или реквизит.
- Откройте палитру свойств (
Alt+Enterили двойной щелчок). - Найдите свойство
Комментарийи впишите пояснение.
Что сюда писать:
- 📌 зачем добавлен объект и по какой задаче;
- 📌 откуда берутся данные реквизита — заполняется вручную, обменом или обработкой;
- 📌 для доработок типовой конфигурации — пометку, что объект ваш, а не поставщика.
Пользователь в режиме 1С:Предприятие этот комментарий не видит, он нужен только разработчикам. Для подсказки пользователю есть другое свойство — Подсказка.
Как писать полезные комментарии и описания методов
Закомментированный код и пояснения к коду — разные вещи. Первый со временем должен исчезнуть, вторые остаются и помогают разобраться.
Описание над процедурой и функцией
В типовых конфигурациях принят единый формат описания метода. Его стоит повторять и в своих доработках:
// Возвращает остаток товара на складе на указанную дату.
//
// Параметры:
// Номенклатура - СправочникСсылка.Номенклатура - товар.
// Склад - СправочникСсылка.Склады - склад.
// Дата - Дата - момент, на который считается остаток.
//
// Возвращаемое значение:
// Число - количество в базовых единицах.
//
Функция ОстатокНаСкладе(Номенклатура, Склад, Дата) Экспорт
Комментарий должен стоять вплотную над объявлением, без пустой строки. Тогда Конфигуратор показывает его во всплывающей подсказке, когда вы набираете вызов функции в другом модуле, а EDT умеет проверять, что описанные параметры совпадают с объявленными.
Правила, которые экономят время команде
- ✅ Пишите, зачем сделано, а не что делает строка. «Счётчик +1» бесполезен, «пропускаем помеченные на удаление: их не выгружает обмен с сайтом» — полезно.
- ✅ Помечайте доработки: автор, дата, номер задачи. Например:
// Иванов 12.03 задача 4512: добавлен отбор по складу. По этой метке находят свои изменения при обновлении типовой. - ✅ Временные отключения подписывайте:
// ВРЕМЕННО до 01.11: не формировать проводки по НДС. Без такой метки чужой закомментированный код никто не решится удалить. - ✅ Используйте
#Областьдля группировки:ПрограммныйИнтерфейс,СлужебныйПрограммныйИнтерфейс,СлужебныеПроцедурыИФункции. Области сворачиваются, а модуль читается по оглавлению. - ❌ Не храните в модуле крупные куски старого кода «на всякий случай». Если конфигурация в хранилище или в Git, старая версия и так сохранится в истории.
Найти все свои пометки в конфигурации можно глобальным поиском: Правка → Глобальный поиск, строка поиска — например, ВРЕМЕННО или ваша фамилия.
Почему комментирование не срабатывает или ломает модуль
Текст → Блок → Добавить комментарий. Если она доступна и работает — сочетание перехватывает другая программа: переключатель раскладки, словарь, клиент удалённого рабочего стола. Закройте их по очереди и проверьте снова.Если без КонецЕсли, Цикл без КонецЦикла или начало процедуры без конца. Раскомментируйте блок и выделите его заново целиком — от открывающей строки до закрывающей.ИЗ, либо // стоит перед вертикальной чертой и строка выпала из текста запроса. Перенесите запятую и поставьте // после |.Правку в рабочей базе делайте только после выгрузки конфигурации в файл .cf или помещения изменений в хранилище. Сохранение модуля и обновление конфигурации базы данных при работающих пользователях может потребовать их переподключения.
Частые вопросы
Есть ли в 1С многострочный комментарий, как /* */ в других языках?
//. Блок из нескольких строк комментируется построчно — платформа делает это сама по Ctrl+Num/.Можно ли поставить комментарий в конце строки с кодом?
//, игнорируется до конца строки: Сумма = Цена * Количество; // без НДС. Единственное исключение — // внутри строкового литерала в кавычках, там это обычные символы.Влияют ли комментарии на скорость работы 1С?
Сохраняются ли комментарии при обновлении типовой конфигурации?
Видит ли пользователь комментарии из кода?
Подсказка реквизитов.