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