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

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

Как выровнять код в 1С: форматирование в конфигураторе

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

Читаемый код в 1С — это не эстетика, а рабочая необходимость: с ровными отступами проще находить логические ошибки, отслеживать вложенность условий и циклов, а также проводить ревью чужих доработок. Когда код «разъезжается» после копирования, правок и вставок из разных источников, разобраться в нём становится заметно сложнее.

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

Ниже разобраны основные способы выровнять код, настройки редактора, влияющие на отступы, типичные ошибки и проверка результата. Материал ориентирован на работу в конфигураторе обычного и управляемого приложения, а также кратко затрагивает EDT.

Быстрое выравнивание выделенного блока

Самый простой способ выровнять код — воспользоваться встроенной командой форматирования. Она анализирует структуру конструкций («Если…Тогда…КонецЕсли», «Цикл…КонецЦикла», «Процедура…КонецПроцедуры») и расставляет отступы автоматически, исходя из уровня вложенности.

Чтобы выровнять фрагмент, выделите его мышью или клавишами Shift+стрелки, затем нажмите Ctrl+Shift+F. Либо откройте главное меню «Текст» и выберите пункт «Блок», далее — «Форматировать». Та же команда доступна в контекстном меню по правой кнопке мыши в разделе форматирования текста.

Если нужно выровнять весь модуль целиком, сначала выделите весь текст комбинацией Ctrl+A, а затем примените форматирование. Команда работает и с незакрытыми конструкциями, но результат в таком случае может быть неожиданным — об этом ниже в разделе про ошибки.

Порядок действий
  1. 1
    Откройте модуль в конфигураторе и убедитесь, что изменения сохранены или есть копия
  2. 2
    Выделите нужный фрагмент кода (или весь модуль через Ctrl+A)
  3. 3
    Нажмите Ctrl+Shift+F либо выберите «Текст → Блок → Форматировать»
  4. 4
    Проверьте, что отступы соответствуют вложенности конструкций
  5. 5
    Сохраните модуль и при необходимости сравните изменения с предыдущей версией

Настройка отступов и табуляции в редакторе

Результат форматирования зависит от настроек текстового редактора конфигуратора. Откройте «Сервис → Параметры» и перейдите на вкладку «Модули» (в разных версиях платформы расположение может немного отличаться). Здесь задаётся ширина табуляции и поведение при нажатии клавиши Tab.

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

Отдельно обратите внимание на параметр «Заменять символы табуляции пробелами» (в некоторых версиях формулировка отличается). Если в команде часть разработчиков использует табуляцию, а часть — пробелы, при совместном редактировании код визуально «расползается» в разных редакторах. Договоритесь об едином варианте и зафиксируйте его в настройках.

Автоотступ при наборе кода

Конфигуратор умеет автоматически добавлять отступ при переходе на новую строку: после открывающих конструкций («Если», «Цикл», «Процедура») курсор смещается вправо, после закрывающих — возвращается назад. Эта функция включается параметром «Автоотступ» в настройках модулей.

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

Полезно сочетание автоотступа с шаблонами текста (Ctrl+Q для вставки шаблона). Готовые шаблоны конструкций уже содержат правильные отступы, и вероятность «разъезда» кода снижается.

Выравнивание в EDT и при работе с внешними файлами

В среде разработки 1C:EDT форматирование работает аналогично: выделите код и нажмите Ctrl+Shift+F — это стандартное сочетание форматирования в Eclipse-подобных средах. Настройки форматирования (ширина отступа, использование табуляций или пробелов) находятся в разделе параметров проекта и могут сохраняться вместе с проектом, что удобно для команды.

Если код хранится во внешних файлах (например, выгруженные модули .bsl в системе контроля версий), выравнивание можно выполнять и в сторонних редакторах — VS Code с расширением для bsl, Notepad++ и других. Но помните: такие редакторы не знают семантики встроенного языка 1С, поэтому автоматическое форматирование по структуре конструкций надёжнее делать в конфигураторе или EDT.

Сравнение вариантов

Конфигуратор (Ctrl+Shift+F)

Понимает структуру конструкций языка, подходит для точечного и полного форматирования. Ограничение — форматирует только отступы, не переносит длинные строки.

1C:EDT

Гибкие настройки форматирования на уровне проекта, единые правила для команды. Требует перехода на EDT-формат разработки.

Сторонние редакторы

Удобны для файлов в Git, но не знают семантику языка 1С — выравнивание может быть некорректным.

Типичные ошибки при выравнивании кода

Самая частая проблема — форматирование модуля с синтаксическими ошибками. Если конструкция не закрыта (нет «КонецЕсли» или «КонецЦикла»), команда форматирования выровняет код по фактической вложенности, и отступы визуально «уедут» вправо. Поэтому перед форматированием большого модуля полезно выполнить синтаксическую проверку (Ctrl+F7 или через меню «Конфигурация»).

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

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

Типичные ошибки
01
Форматирование модуля с незакрытыми конструкциями — отступы смещаются и маскируют реальную ошибку
02
Смешение табуляций и пробелов — код по-разному выглядит у разных разработчиков
03
Вставка кода из почты и мессенджеров без очистки — неразрывные пробелы ломают компиляцию
04
Форматирование всего модуля без необходимости — в системе контроля версий появляется масса ложных изменений, затрудняющих ревью

Проверка результата и работа в команде

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

Если конфигурация находится в хранилище или Git, форматируйте только те фрагменты, которые реально меняли. Полное форматирование большого модуля создаёт сотни строк различий, из-за чего найти содержательные изменения в ревью становится почти невозможно.

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

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

Отступы вложенных конструкций
Норма

Каждый уровень вложенности смещён ровно на один отступ

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

Строки внутри «Если» или «Цикл» стоят на том же уровне, что и сама конструкция

Синтаксическая проверка модуля
Норма

Проверка завершается без ошибок

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

Ошибки о незакрытых конструкциях или лишних ключевых словах

Сравнение версий в хранилище
Норма

Изменились только реально отредактированные строки

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

Весь модуль помечен как изменённый без содержательных правок

Часто задаваемые вопросы

Почему после Ctrl+Shift+F код не выровнялся?

Чаще всего причина в незакрытой конструкции выше по модулю: форматировщик не может определить границы блока. Выполните синтаксическую проверку, исправьте ошибки и повторите форматирование. Также проверьте, что фрагмент действительно выделен.

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

Нет. Команда меняет только пробельные символы в начале строк и не затрагивает операторы, имена переменных и порядок команд. Логика выполнения остаётся прежней — меняется исключительно визуальное представление.

Какой размер отступа принят в 1С?

В типовых конфигурациях и стандартах разработки используется отступ шириной 4 позиции. Это значение стоит установить в параметрах редактора, чтобы ваше форматирование совпадало с типовым кодом.

Можно ли автоматически переносить длинные строки?

Встроенная команда форматирования переносы строк не делает — она выравнивает только отступы. Длинные выражения переносите вручную по логическим границам (после запятых, операторов), продолжение строки смещайте на один отступ вправо.

Как выровнять код сразу во многих модулях?

Штатной пакетной команды форматирования в конфигураторе нет — модули обрабатываются по одному. При массовой обработке удобнее выгрузить конфигурацию в файлы и использовать скрипты или EDT, но учитывайте объём изменений в системе контроля версий.

Что делать, если в модуле смешаны табуляции и пробелы?

Надёжнее всего выделить весь модуль и применить форматирование — команда заменит начальные отступы на единый стиль в соответствии с текущими настройками редактора. После этого согласуйте единый вариант (табуляция или пробелы) со всей командой.

Итог

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

Выравнивание кода в 1С выполняется командой «Форматировать» (Ctrl+Shift+F) по выделенному фрагменту или всему модулю. Результат зависит от настроек табуляции, а корректность — от отсутствия синтаксических ошибок. В командной разработке форматируйте только изменённые фрагменты и используйте единые настройки отступов.