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