Разработка и Конфигурация · 8 мин
Как выровнять код в 1С 8.3: горячие клавиши и настройки форматирования
Как выровнять код в 1С 8.3 горячими клавишами: Ctrl+Shift+F, сдвиг блоков Tab и Shift+Tab, автоматические отступы в конфигураторе, настройки и типичные ошибки.
Аккуратное форматирование кода в модуле 1С — не эстетическая прихоть, а рабочий инструмент: ровные отступы по структурным скобкам «Если…КонецЕсли», «Цикл…КонецЦикла» и «Попытка…КонецПопытки» позволяют с первого взгляда видеть вложенность логики и быстро находить ошибки. В конфигураторе 1С 8.3 для этого предусмотрены встроенные горячие клавиши и автоматическое форматирование, которое работает без дополнительных плагинов.
Главное сочетание клавиш для выравнивания кода — Ctrl+Shift+F. Оно форматирует выделенный фрагмент или весь модуль целиком: расставляет отступы по уровням вложенности, выравнивает переносы строк и приводит текст к единому стилю. Команда доступна также через меню «Текст» → «Форматировать».
Ниже разобраны все способы выравнивания: автоформатирование целого модуля, ручной сдвиг блоков клавишами Tab, настройки отступов в конфигураторе и типичные ситуации, когда форматирование не срабатывает.
Форматирование всего модуля клавишами Ctrl+Shift+F
Основной способ выровнять код — встроенная команда автоформатирования. Откройте нужный модуль (модуль объекта, формы, общий модуль), установите курсор в любое место текста и нажмите Ctrl+Shift+F. Конфигуратор автоматически пройдёт по всему тексту и выставит отступы в соответствии с вложенностью управляющих конструкций.
Если требуется отформатировать только часть кода — например, одну процедуру или проблемный блок — выделите его мышью или клавишами Shift и стрелками, затем нажмите то же сочетание Ctrl+Shift+F. Форматирование применится только к выделенному фрагменту, остальной текст модуля останется без изменений.
Команда не меняет логику кода: она затрагивает только пробельные символы в начале строк и переносы. Имена переменных, строковые литералы и комментарии остаются нетронутыми, поэтому операция безопасна для работоспособности конфигурации.
- 1Откройте модуль в конфигураторе 1С 8.3
- 2Выделите фрагмент кода или оставьте курсор в любом месте для форматирования всего модуля
- 3Нажмите Ctrl+Shift+F
- 4Проверьте результат: отступы должны соответствовать уровням вложенности
- 5Сохраните модуль и при необходимости обновите конфигурацию базы данных
Сдвиг блоков кода клавишами Tab и Shift+Tab
Когда нужно вручную сдвинуть одну строку или целый блок вправо или влево, используются клавиши Tab и Shift+Tab. Выделите несколько строк и нажмите Tab — весь блок сместится на один шаг табуляции вправо. Shift+Tab выполняет обратное действие — убирает один уровень отступа.
Этот приём удобен, когда автоформатирование не требуется, а нужно быстро поправить конкретное место: например, переместить строки внутрь условия или вытащить код из лишнего уровня вложенности после рефакторинга. Сдвиг работает и для одной строки без выделения — достаточно поставить курсор в начало строки.
Учтите ограничение: если курсор стоит в середине строки, Tab вставит символ табуляции в позицию курсора, а не сдвинет строку целиком. Поэтому для сдвига блоков выделяйте строки полностью или ставьте курсор в начало.
Автоматические отступы при наборе кода
Конфигуратор 1С 8.3 умеет выравнивать код уже в момент набора. Когда вы вводите закрывающее слово «КонецЕсли», «КонецЦикла» или «КонецПроцедуры» и нажимаете Enter, редактор автоматически выравнивает текущий блок по структуре. Это работает при включённой настройке автоотступа.
Проверить и включить настройку можно через меню «Сервис» → «Параметры» → вкладка «Модули» (в разных релизах платформы расположение может немного отличаться). Там же задаётся ширина табуляции и режим замены табуляции пробелами. Рекомендуемый стандарт для 1С — отступ в один символ табуляции, что соответствует стандартам разработки фирмы «1С».
Если в команде принят единый стиль, договоритесь об одинаковых настройках табуляции у всех разработчиков. Смешение пробелов и табуляции в одном модуле приводит к «плавающим» отступам при просмотре кода в других редакторах и при сравнении версий в хранилище конфигурации.
Полезные сочетания клавиш для работы с текстом модуля
Помимо форматирования, в редакторе модулей 1С есть набор сочетаний, которые ускоряют приведение кода в порядок. Их стоит использовать в связке с автоформатированием.
| Сочетание | Действие |
|---|---|
| Ctrl+Shift+F | Форматировать выделенный фрагмент или весь модуль |
| Tab / Shift+Tab | Сдвинуть выделенные строки вправо / влево |
| Ctrl+Alt+F | Поиск и замена в модуле |
| Ctrl+Shift+Num- / Num+ | Свернуть / развернуть блоки кода |
| Ctrl+/ | Закомментировать или раскомментировать выделенные строки |
| Ctrl+L | Удалить текущую строку |
Комбинация комментирования особенно полезна при отладке: выделенный блок мгновенно превращается в комментарий и так же быстро возвращается обратно, при этом отступы не нарушаются.
Почему форматирование может не сработать
Самая частая причина, по которой Ctrl+Shift+F не выравнивает код, — синтаксическая ошибка в модуле. Если конструкция не закрыта (не хватает «КонецЕсли» или «КонецЦикла»), редактор не может определить структуру вложенности и либо отказывается форматировать, либо выравнивает код непредсказуемо. Сначала выполните проверку синтаксиса модуля (кнопка с «галочкой» на панели инструментов), исправьте ошибки и повторите форматирование.
Вторая причина — код внутри строковых литералов и запросов. Текст запроса внутри конструкции «Текст.ТекстЗапроса» редактор воспринимает как строку и не форматирует её содержимое. Для выравнивания текста запроса используйте конструктор запроса или вручную расставляйте отступы.
Также форматирование не затрагивает участки внутри препроцессорных инструкций (#Если … #КонецЕсли) в части управляемого и обычного приложения — там отступы сохраняются такими, какими их задал разработчик, поскольку ветки могут быть взаимоисключающими.
Как проверить результат форматирования
После применения Ctrl+Shift+F пройдитесь по модулю и убедитесь, что отступы отражают реальную логику. Каждый уровень «Если», «Для», «Пока», «Попытка» должен смещать вложенный код на один шаг вправо, а закрывающие слова — стоять на одном уровне с открывающими.
Дополнительная проверка — сворачивание блоков. Если структурные скобки сворачиваются корректно и визуально совпадают с отступами, форматирование выполнено правильно. Если блок сворачивается «не туда», значит, в коде есть логическая ошибка, которую выравнивание помогло обнаружить.
Перед сохранением изменений в хранилище конфигурации полезно сравнить модуль с предыдущей версией: так видно, что изменились только отступы, а не логика. Это особенно важно при командной разработке, чтобы не затруднять код-ревью коллег.
Как проверить результат
Код внутри Если/Цикла смещён на один уровень вправо
Строки стоят на одном уровне с открывающей конструкцией
КонецЕсли и КонецЦикла на одном уровне с открывающими
Закрывающее слово смещено или отсутствует — ошибка синтаксиса
Проверка проходит без сообщений об ошибках
Есть ошибки — форматирование может быть некорректным
Частые вопросы о выравнивании кода в 1С 8.3
Можно ли выровнять код во всех модулях конфигурации сразу?
Штатной команды массового форматирования всех модулей в конфигураторе нет — Ctrl+Shift+F работает только в открытом модуле. Для пакетной обработки используют внешние инструменты и скрипты, но применять их стоит осторожно и с обязательным сравнением версий.
Изменяет ли форматирование логику работы программы?
Нет. Команда Ctrl+Shift+F меняет только пробельные символы и переносы строк, не затрагивая операторы, имена переменных и значения. Выполняемый код остаётся тем же самым.
Почему после форматирования часть кода съехала вправо?
Обычно это признак незакрытой конструкции выше по тексту: редактор считает код вложенным в блок, который не был завершён. Проверьте модуль синтаксической проверкой и найдите пропущенное «КонецЕсли» или «КонецЦикла».
Как выровнять текст запроса внутри модуля?
Автоформатирование не затрагивает текст внутри строковых литералов. Используйте конструктор запроса (правый клик по тексту запроса → «Конструктор запроса») — он приводит текст к стандартному виду, либо расставляйте отступы вручную.
Работают ли эти горячие клавиши в 1С:EDT?
В EDT, построенной на платформе Eclipse, форматирование вызывается тем же сочетанием Ctrl+Shift+F, но настройки стиля находятся в параметрах самой среды и заметно богаче: можно задать правила переноса, пробелы вокруг операторов и другие соглашения.
Что важно запомнить
Основной способ выровнять код в 1С 8.3 — сочетание Ctrl+Shift+F для всего модуля или выделенного фрагмента, а Tab и Shift+Tab — для ручного сдвига блоков. Перед форматированием убедитесь, что модуль проходит синтаксическую проверку, иначе выравнивание будет некорректным.