Как правильно оформлять отступы и табуляции в коде 1С:Предприятие

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

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

Настройка конфигуратора для корректной работы с текстом

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

  1. Отображать пробелы и табуляции: включение этой опции позволит вам видеть «лишние» символы. Пробелы обычно отображаются едва заметными точками, а табуляции — стрелками. Это первый шаг к тому, чтобы понять масштаб проблемы в существующем модуле.
  2. Автоотступ: эта опция должна быть включена всегда. Она позволяет системе автоматически выставлять уровень вложенности при переходе на новую строку.
  3. Заменять табуляцию пробелами: согласно внутренним стандартам 1С, эта опция должна быть выключена. В 1С принято использовать именно символ табуляции для отступов в начале строки. Использование пробелов вместо табуляций считается нарушением правил оформления.
  4. Ширина табуляции: стандартное значение — 4. Хотя некоторые разработчики предпочитают 2, использование именно символа табуляции позволяет каждому программисту настраивать визуальную ширину под себя, не меняя при этом сам файл кода.

Основные правила оформления отступов (Best Practices)

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

Отступы слева: для формирования структуры вложенности (внутри циклов Для, условий Если, процедур и функций) используйте только символ табуляции. Никогда не используйте пробелы для этих целей.

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


Параметры = Новый Структура;
Параметры.Вставить("Имя",          "Иван");
Параметры.Вставить("Фамилия",      "Иванов");
Параметры.Вставить("Город",        "Москва");

В данном примере отступ перед словом Параметры сделан табуляцией, а выравнивание вторых параметров метода Вставить выполнено пробелами. Это эталонный вариант.

Очистка кода от «мусорных» символов

Рассмотрим проблему лишних символов, которые визуально не заметны, но присутствуют в тексте модуля. К ним относятся:

Выясним причину, почему это важно. При работе в ОС Linux или использовании веб-клиента интерпретация символов может отличаться. Лишние пробелы в пустых строках иногда приводят к некорректному рендерингу текста в окне отладки или при сравнении версий файлов. Кроме того, системы автоматизированной проверки кода (линтеры) всегда помечают такие строки как ошибку.

Автоматизация форматирования: Alt+Shift+F и другие инструменты

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

Встроенное форматирование: выделите нужный блок кода (или весь текст модуля через Ctrl+A) и нажмите комбинацию клавиш Alt+Shift+F. Конфигуратор самостоятельно выставит правильные отступы табуляцией в начале строк. Однако помните, что встроенный механизм не всегда удаляет пробелы в конце значимых строк и в абсолютно пустых строках.

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

EDT (Enterprise Development Tool): если вы перешли на разработку в среде Eclipse (EDT), вам доступен функционал EditorConfig. Это специальный файл настроек проекта, который заставляет среду разработки автоматически удалять концевые пробелы и следить за использованием табуляций при каждом сохранении файла.

Стандарты именования методов: Глаголы или Существительные?

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

Функции: если метод возвращает значение, его имя должно быть существительным, описывающим результат. Например, вместо ПолучитьТекущиеДанные() следует использовать ТекущиеДанные(). Это связано с тем, что функция в выражении воспринимается как само значение. Рассмотрим пример:


// Плохо
Данные = ПолучитьТекущиеДанные();

// Хорошо (согласно стандарту)
Данные = ТекущиеДанные();

Процедуры: так как процедура всегда выполняет какое-то действие, её имя должно начинаться с глагола. Например: РассчитатьНалог(), ЗаполнитьДокумент(), ВывестиСообщение().

Исключения: глаголы в именах функций допускаются только тогда, когда процесс получения результата первичен (например, НайтиФайл() или ВычислитьСложныйПроцент()). В этих случаях глагол подчеркивает, что программа выполняет трудоемкий поиск или расчет.

Влияние на системы контроля версий (Git)

Проанализируем ситуацию: два программиста работают над одним общим модулем. Один использует пробелы для отступов, а второй нажал Alt+Shift+F и переформатировал модуль под табуляции. При попытке объединить изменения (Merge) система Git покажет, что изменены все строки в файле. Это делает невозможным использование инструмента Blame (кто и когда изменил конкретную строку) и крайне затрудняет код-ревью. Именно поэтому соблюдение единого стандарта отступов — это не прихоть, а производственная необходимость в крупных проектах.

Для предотвращения подобных ситуаций в современных командах используются линтеры и системы статического анализа, такие как SonarQube. Они автоматически блокируют попытку загрузить код в основную ветку, если в нем обнаружены неверные отступы или лишние пробелы в пустых строках.

Заключение и рекомендации

Подведем итог нашему разбору. Для поддержания высокого качества кода в 1С рекомендуем придерживаться следующего алгоритма:

  1. Настройте Конфигуратор на использование табуляций и включите видимость пробелов.
  2. Приучите себя регулярно использовать Alt+Shift+F для выравнивания структуры модуля.
  3. Следите за именованием методов: функции — существительные, процедуры — глаголы.
  4. Не оставляйте «хвосты» из пробелов в конце строк и не используйте пробелы для имитации отступов.
  5. Используйте современные инструменты проверки (например, BSL Language Server в VS Code или PhoenixBSL), чтобы автоматизировать рутину контроля качества.

Соблюдение этих простых правил не только избавит вас от проблем с кроссплатформенностью, но и сделает ваш код понятным и приятным для коллег, что является важным признаком профессионального роста разработчика.

← На главную