Как добавить и использовать форматтер кода в среде 1С:Предприятие?

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

Вопрос автоматического форматирования кода является одним из самых актуальных для разработчиков, стремящихся к чистоте и единообразию своих модулей. В классическом Конфигураторе 1С, к сожалению, отсутствует встроенный мощный механизм «форматирования по одной кнопке», аналогичный тем, что есть в современных IDE (Visual Studio, IntelliJ IDEA или PyCharm). Однако сообщество и фирма «1С» предлагают несколько альтернативных путей решения этой задачи. Разберем подробно каждый из них.

Штатные возможности Конфигуратора: Шаблоны и Автозамена

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

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

Использование внешних расширений: Снегопат и Турбоконф

Поскольку официального API для расширения функционала редактора 1С не существует, разработчики создали инструменты, которые внедряются в работу Конфигуратора извне. Рассмотрим их подробнее.

Снегопат (Snegopat) — это наиболее близкое решение к понятию «Add-In» для Excel. Он работает как динамическая библиотека, которая загружается вместе с Конфигуратором и предоставляет объектную модель для доступа к окнам и текстам модулей. С помощью скриптов на JavaScript или VBScript в Снегопате реализованы полноценные форматтеры, которые умеют:

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

До форматирования:


перем строка;
строка="Привет мир!";
Если а=б тогда
сообщить(строка);
конецесли;

После форматирования форматтером:


Перем Строка;
Строка = "Привет мир!";

Если А = Б Тогда
    Сообщить(Строка);
КонецЕсли;

Переход на современные среды разработки: EDT и VS Code

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

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

  1. Количество пробелов в отступе (или использование табуляции).
  2. Необходимость пробелов вокруг операторов присваивания и сравнения.
  3. Правила переноса длинных строк.
  4. Группировку объявлений переменных.

Visual Studio Code (VS Code) с установленным расширением BSL Language Server. Многие команды используют VS Code как основной редактор для написания кода 1С, синхронизируя изменения с базой. BSL Language Server поддерживает стандарт «Format on Save» — как только вы нажимаете Ctrl + S, код автоматически перестраивается по заданным правилам оформления. Это исключает появление «грязного» кода в хранилище.

Разбор заблуждения о файлах расширений (.cfe)

Важно прояснить технический момент, упомянутый в обсуждении. Файлы с расширением .cfe (Configuration Extension) не являются редакторами кода или плагинами для Конфигуратора.

Расширение конфигурации — это механизм, позволяющий изменять логику типового решения (например, «Бухгалтерии предприятия»), не снимая его с поддержки. Внутри расширения вы пишете код в том же стандартном редакторе Конфигуратора. Оно помогает модифицировать программу, но никак не добавляет функции автоматического форматирования в саму среду разработки.

Стандарты оформления кода «1С»

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

Соблюдение этих правил делает код понятным для любого другого разработчика, а использование инструментов автоматизации (Snegopat, TurboConf или EDT) позволяет не тратить на это время вручную.

Подведем итог: если вы хотите остаться в классическом Конфигураторе, ваш выбор — TurboConf или Snegopat. Если вы готовы к более современным инструментам с мощной встроенной поддержкой стандартов кодирования, стоит рассмотреть переход на 1C:EDT.

← На главную