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

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

Как выровнять текст в модуле 1С

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

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

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

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

Как работает автоформатирование кода в модуле

Основной инструмент выравнивания — команда «Форматировать», доступная в меню «Текст» внутри группы «Блок». Она автоматически расставляет отступы в соответствии со структурой кода: тела процедур, циклов, условий и вложенных конструкций получают корректные сдвиги относительно родительских операторов.

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

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

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

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

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

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

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

Табуляция или пробелы: что выбрать

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

Выравнивание отдельных строк и блоков вручную

Иногда автоформатирование не даёт нужного результата: например, нужно сдвинуть группу строк вправо или влево, не меняя остальную структуру. Для этого в редакторе есть команды увеличения и уменьшения отступа блока. Выделите строки и используйте Tab для сдвига вправо и Shift+Tab для сдвига влево — это работает для любого количества выделенных строк одновременно.

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

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

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

Выравнивание текста в элементах формы

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

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

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

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

Автоформатирование (Ctrl+Shift+F)

Подходит для приведения всего модуля или большого блока к единому стилю. Ограничение: требует синтаксически корректного выделенного фрагмента.

Ручной сдвиг Tab / Shift+Tab

Подходит для точечного выравнивания нескольких строк и исправления вставок из внешних источников. Ограничение: не проверяет структуру кода.

Свойство ГоризонтальноеПоложение

Подходит для текста в элементах форм и надписях. Не влияет на код модуля — работает только с визуальным отображением.

Выравнивание в макетах печатных форм и текстовых документах

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

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

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

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

Проверка результата и типичные ошибки

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

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

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

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

Отступы в модуле
Норма

Вложенность отступов совпадает с вложенностью конструкций, синтаксический контроль проходит

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

Строки сдвинуты хаотично, контроль сообщает об ошибках структуры

Выравнивание в форме
Норма

Текст занимает заданное положение при любой длине содержимого

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

При длинных значениях текст обрезается или смещается

Печатная форма
Норма

Числа выровнены по правому краю, заголовки по центру, ничего не налезает на границы

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

Значения выходят за границы ячеек, выравнивание отличается от макета

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

Почему команда «Форматировать» неактивна или ничего не делает?

Команда работает только с выделенным текстом. Если ничего не выделено, пункт меню недоступен. Выделите фрагмент или весь модуль через Ctrl+A и повторите попытку. Также проверьте, что модуль открыт на редактирование, а не только на просмотр.

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

Встроенной опции «форматировать при сохранении» в конфигураторе нет. Форматирование вызывается вручную через Ctrl+Shift+F. Дисциплину поддерживают договорённостью в команде и периодическим форматированием модулей перед помещением изменений в хранилище.

Как выровнять текст запроса внутри кода?

Конструктор запроса форматирует текст запроса автоматически при закрытии. Если запрос написан вручную, выровняйте его сами: каждое ключевое слово (ВЫБРАТЬ, ИЗ, ГДЕ, СГРУППИРОВАТЬ ПО) принято начинать с новой строки, а поля — с отступом. Автоформатирование модуля текст внутри строковых литералов не изменяет.

Выравнивание в управляемой форме не применяется — в чём причина?

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

Как привести к единому стилю модули всей конфигурации?

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

Почему после вставки кода из браузера отступы «лесенкой»?

Веб-страницы часто содержат смесь пробелов и неразрывных пробелов, которые редактор 1С воспринимает иначе, чем табуляцию. После вставки выделите фрагмент и примените Ctrl+Shift+F — форматтер заменит отступы корректными. Если фрагмент неполный, выровняйте его вручную через Tab и Shift+Tab.

Итог

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

Код в модуле выравнивается автоформатированием: выделение плюс Ctrl+Shift+F. Единый стиль отступов задаётся в параметрах конфигуратора. Текст в формах и макетах выравнивается свойством ГоризонтальноеПоложение, а не пробелами. После любых правок проверяйте модуль синтаксическим контролем, а печатные формы — предпросмотром.