Как быстро выровнять код по знаку равенства в модулях 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Давайте сравним два варианта написания одного и того же участка кода. В первом случае автовыравнивание не использовалось:


Переменная1 = Истина;
ОченьДлиннаяПеременная = Истина;
К = Ложь;
ДополнительныйПараметрСвязи = "Значение";

А теперь посмотрим на тот же блок кода, но с выравниванием по знаку равенства:


Переменная1                 = Истина;
ОченьДлиннаяПеременная      = Истина;
К                           = Ложь;
ДополнительныйПараметрСвязи = "Значение";

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

Способ 1. Использование программы TurboConf

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

Для выравнивания текста в TurboConf предусмотрен штатный скрипт TextAlign (Выравнивание текста). Разберем пошагово, как им пользоваться:

  1. Установите и запустите приложение TurboConf на своем рабочем компьютере.
  2. Откройте Конфигуратор 1С и перейдите в нужный программный модуль.
  3. Выделите строки кода, которые необходимо выровнять по знаку равенства.
  4. Нажмите комбинацию горячих клавиш, настроенную для скрипта TextAlign (по умолчанию это сочетание можно задать или посмотреть в настройках TurboConf, обычно используется сочетание клавиш быстрого форматирования).
  5. Программа мгновенно проанализирует длину имен переменных в выделенном фрагменте, вычислит позицию самого длинного идентификатора и автоматически вставит необходимое количество пробелов перед знаком = во всех выделенных строках.

Этот способ удобен тем, что он работает прямо внутри «родного» Конфигуратора 1С и не требует переноса кода в сторонние редакторы.

Способ 2. Форматирование в Visual Studio Code (VS Code)

Современная разработка на платформе 1С все чаще выходит за рамки стандартного Конфигуратора. Многие программисты используют Visual Studio Code или среду 1С:EDT для написания модулей. В этих средах возможности форматирования практически безграничны благодаря экосистеме расширений.

Если мы пишем код 1С в VS Code, у нас есть два пути для автоматического выравнивания:

1. Использование специализированных плагинов выравнивания текста

Для VS Code существует замечательное и очень легкое расширение под названием Better Align (или его аналог Regex Align). Эти плагины не привязаны к конкретному языку программирования и выравнивают любой выделенный текст по заданному символу. Разберем алгоритм работы с ними:

  1. Откройте VS Code, перейдите во вкладку расширений (сочетание клавиш Ctrl+Shift+X).
  2. Найдите и установите расширение Better Align.
  3. Откройте файл с кодом 1С и выделите блок строк, где нужно выровнять операторы присваивания.
  4. Вызовите палитру команд (Ctrl+Shift+P) и введите команду Align (или воспользуйтесь настроенным сочетанием клавиш, например, Alt+A).
  5. Плагин автоматически выровняет все знаки равенства по вертикали. Вы также можете настроить выравнивание по двоеточиям, запятым или любым другим символам.

2. Использование BSL Language Server (BSL LS)

Если вы профессионально разрабатываете на 1С в альтернативных средах, у вас наверняка установлен инструмент статического анализа и форматирования BSL Language Server. В настройках форматтера BSL LS (конфигурационный файл в формате JSON) можно задать глобальные правила оформления кода для всего проекта. Это позволяет автоматически приводить весь код к единому стилю (включая расстановку пробелов вокруг операторов и каноническое написание ключевых слов) при каждом сохранении файла. Для этого также можно использовать инструмент для анализа и форматирования модулей.

Способ 3. Использование буфера обмена и внешних скриптов

Если вы по каким-то причинам не хотите устанавливать коммерческий TurboConf или полноценную среду VS Code, но вам периодически требуется выравнивать большие блоки кода в Конфигураторе, можно воспользоваться скриптами автоматизации на базе AutoHotkey (AHK) или OneScript.

Существуют открытые проекты (например, SmartConfigurator или консольные утилиты вроде ones-formatting), которые умеют перехватывать текст из буфера обмена, форматировать его по заданным правилам и возвращать обратно. Процесс выглядит следующим образом:

  1. Вы выделяете неровный код в Конфигураторе и копируете его в буфер обмена (Ctrl+C).
  2. Запускаете скрипт (или нажимаете глобальное системное сочетание клавиш, назначенное на скрипт AHK).
  3. Скрипт обрабатывает текст в буфере обмена, выстраивая знаки = в один ряд.
  4. Вы вставляете отформатированный код обратно в Конфигуратор (Ctrl+V).

Этот способ бесплатный и достаточно гибкий, однако требует первоначальной настройки стороннего ПО (например, интерпретатора AutoHotkey).

Анализ методологии: почему автовыравнивание — это спорная идея?

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

Плюсы выравнивания кода по знаку равенства:

Минусы и скрытые проблемы выравнивания (почему стандарты 1С это не рекомендуют):

Рекомендации и выводы

Мы рекомендуем придерживаться золотой середины:

← На главную