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

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

Как свернуть код в 1С: области, горячие клавиши и настройка конфигуратора

Как свернуть код в 1С: горячие клавиши сворачивания блоков, директивы #Область и #КонецОбласти, настройка группировки в конфигураторе и типичные ошибки.

Когда модуль в 1С вырастает до нескольких тысяч строк, ориентироваться в нём без сворачивания практически невозможно. Конфигуратор поддерживает два механизма: автоматическое сворачивание синтаксических конструкций (процедур, функций, циклов, условий) и ручную разметку кода областями через директивы #Область и #КонецОбласти. Оба способа работают в редакторе модулей и не влияют на выполнение кода — это чисто визуальный инструмент.

Сворачивание доступно в обычном конфигураторе и в 1C:EDT, но сочетания клавиш и поведение немного различаются. Ниже разобраны оба варианта, а также настройки, которые включают или отключают группировку, и ошибки, из-за которых области «ломаются» и перестают сворачиваться.

Как свернуть отдельный блок кода

Любую синтаксическую конструкцию — процедуру, функцию, цикл, условие, попытку — конфигуратор помечает вертикальной линией слева от кода с квадратным значком «минус» в начале блока. Клик по этому значку сворачивает конструкцию до одной строки, повторный клик по «плюсу» разворачивает её обратно.

С клавиатуры то же самое делается сочетаниями: Ctrl + - (серый минус на цифровом блоке) сворачивает текущий блок, Ctrl + + разворачивает. Курсор при этом должен находиться внутри нужной конструкции. Если цифрового блока нет (ноутбук), используйте мышь или переназначьте клавиши — стандартные сочетания завязаны именно на NumPad.

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

Сворачивание всех блоков сразу

Когда нужно быстро получить обзор структуры модуля, удобно свернуть всё разом. Для этого служат сочетания Ctrl + Shift + - (свернуть все блоки) и Ctrl + Shift + * (развернуть всё). После сворачивания модуль превращается в компактный список заголовков процедур и областей, по которому легко оценить состав модуля.

Те же команды доступны через контекстное меню редактора: правый клик в тексте модуля → пункты группировки (названия пунктов могут отличаться в зависимости от версии платформы). Через меню команды работают и там, где сочетания клавиш перехватываются операционной системой или ПО удалённого доступа.

Как быстро свернуть весь модуль
  1. 1
    Откройте нужный модуль в конфигураторе и установите курсор в текст.
  2. 2
    Нажмите Ctrl + Shift + минус (на цифровом блоке) — свернутся все блоки и области.
  3. 3
    Разверните только нужную секцию кликом по «плюсу» или Ctrl + плюс.
  4. 4
    Для возврата к полному виду нажмите Ctrl + Shift + * (звёздочка).

Группировка кода областями: #Область и #КонецОбласти

Автоматическое сворачивание работает только на уровне синтаксических конструкций. Чтобы объединить в сворачиваемую секцию произвольный набор процедур — например, все обработчики событий формы или программный интерфейс модуля, — используются директивы препроцессора #Область ИмяОбласти в начале секции и #КонецОбласти в конце.

#Область ПрограммныйИнтерфейс

Функция ПолучитьОстаток(Номенклатура) Экспорт

// ...

КонецФункции

#КонецОбласти

Имя области отображается в свёрнутом виде, поэтому его стоит давать осмысленно. Стандарты разработки фирмы «1С» рекомендуют типовые имена: ПрограммныйИнтерфейс, СлужебныеПроцедурыИФункции, ОбработчикиСобытийФормы, ОписаниеПеременных. Следование этим именам упрощает чтение чужого кода и прохождение проверок в EDT.

Области можно вкладывать друг в друга — внутри большой области «СлужебныеПроцедурыИФункции» допустимы вложенные подобласти по смыслу. Главное правило: каждой директиве #Область должна соответствовать своя #КонецОбласти, иначе редактор подсветит ошибку структуры.

bsl
#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // код
КонецПроцедуры

#КонецОбласти

Настройка группировки в конфигураторе

Если значки сворачивания не отображаются вовсе, проверьте настройки редактора: меню Сервис → Параметры → Модули → Группировка. Там задаётся, какие виды конструкций можно сворачивать: процедуры и функции, области, циклы, условия, комментарии. Снимите или установите флажки под свои задачи — например, некоторые разработчики отключают сворачивание циклов, чтобы случайно не скрыть логику внутри процедуры.

В 1C:EDT сворачивание (folding) включено по умолчанию и настраивается через общие параметры редактора кода Eclipse-платформы, а области поддерживаются с учётом стандартов разработки — EDT умеет проверять корректность имён областей и выдавать предупреждения.

Типичные ошибки при работе с областями

Самая частая проблема — непарные директивы. После рефакторинга или слияния версий при сравнении/объединении конфигураций легко потерять #КонецОбласти. Признак: весь код ниже области «съезжает», сворачивание работает странно, редактор выдаёт ошибку структуры модуля. Лечится поиском по тексту: количество вхождений #Область и #КонецОбласти должно совпадать.

Вторая ошибка — размещение директив внутри процедуры или функции. Область должна охватывать целые методы, а не разрывать их. Если #Область стоит в середине тела процедуры, редактор либо выдаст ошибку, либо сворачивание будет вести себя непредсказуемо.

Типичные ошибки
01
Непарные #Область и #КонецОбласти после слияния версий — ломается структура модуля, сворачивание ведёт себя хаотично.
02
Область внутри тела процедуры — редактор выдаёт ошибку или сворачивает код некорректно.
03
Бессмысленные имена областей вроде «Область1» — свёрнутый модуль не даёт информации о структуре, смысл группировки теряется.
04
Попытка свернуть код клавишами с основной клавиатуры вместо цифрового блока — сочетание не срабатывает, пользователь считает функцию сломанной.
05
Ожидание, что области сохранят свёрнутое состояние навсегда — после переоткрытия модуля вид может сброситься.

Сворачивание в 1C:EDT и при работе через удалённый доступ

В EDT сворачивание работает по клику на значки в левой части редактора, а горячие клавиши соответствуют стандартам Eclipse: Ctrl + Numpad_Divide сворачивает всё, Ctrl + Numpad_Multiply разворачивает. Если сочетания не работают, проверьте, не перехвачены ли они видеодрайвером или утилитами раскладки.

При работе через RDP или удалённый рабочий стол сочетания с цифровым блоком часто не доходят до конфигуратора — их перехватывает клиент удалённого доступа. В этом случае используйте контекстное меню редактора или включите эмуляцию цифрового блока на ноутбуке (Fn + соответствующие клавиши).

Маршрут решения

Как выбрать способ

Нужно свернуть одну процедуру или циклКликните по значку «минус» слева от блока или нажмите Ctrl + серый минус.
Нужен обзор всего модуляНажмите Ctrl + Shift + минус, затем разверните только нужные секции.
Нужно сгруппировать несколько процедур по смыслуОбрамите их директивами #Область Имя и #КонецОбласти.
Значки сворачивания не видныПроверьте Сервис → Параметры → Модули → Группировка и включите нужные виды конструкций.

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

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

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

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

Количество директив в модуле
Норма

Число #Область равно числу #КонецОбласти

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

Числа не совпадают — где-то потеряна директива

Вид модуля после «свернуть всё»
Норма

Компактный список областей и методов с понятными именами

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

Ошибки структуры, код сворачивается частично или хаотично

Положение директив
Норма

Области охватывают целые процедуры и функции

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

Директива стоит внутри тела метода

Итог

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

Сворачивание в 1С — это значки «минус» слева от блоков и сочетания Ctrl с клавишами цифрового блока, а для логической группировки служат директивы #Область/#КонецОбласти. Директивы не влияют на выполнение кода, но должны быть парными и стоять вне тел процедур. Если сворачивание не работает — проверьте настройки группировки в параметрах конфигуратора.

Частые вопросы

Почему не работают горячие клавиши сворачивания в 1С?

Стандартные сочетания завязаны на цифровой блок клавиатуры (NumPad). На ноутбуке без него используйте Fn-эмуляцию, мышь или контекстное меню. Также клавиши могут перехватываться при работе через RDP.

Влияют ли области #Область на скорость работы программы?

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

Можно ли вкладывать области друг в друга?

Да, вложенность поддерживается. Например, внутри области «СлужебныеПроцедурыИФункции» можно создать подобласти по функциональным блокам. Главное — соблюдать парность открывающих и закрывающих директив.

Что делать, если после обновления конфигурации сворачивание сломалось?

При сравнении и объединении модулей директивы областей иногда теряются или дублируются. Найдите в тексте модуля все вхождения #Область и #КонецОбласти, сопоставьте их и восстановите парность вручную.

Какие имена областей считаются правильными?

Стандарты разработки 1С рекомендуют фиксированный набор: ОписаниеПеременных, ПрограммныйИнтерфейс, ОбработчикиСобытийФормы, СлужебныеПроцедурыИФункции. Придерживайтесь их — это упрощает чтение кода коллегами и прохождение автоматических проверок в EDT.

Можно ли свернуть многострочный комментарий?

Да, если в настройках группировки (Сервис → Параметры → Модули → Группировка) включено сворачивание комментариев. Последовательность строк комментария тогда сворачивается в одну строку так же, как и другие конструкции.