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

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

Работа с legacy-кодом (устаревшим кодом), который был написан без соблюдения стандартов оформления, является одной из самых сложных задач для любого разработчика 1С. Когда перед вами десятки тысяч строк кода, написанных «от руки» в нижнем регистре, попытка прочитать и проанализировать такие алгоритмы для последующего перевода на управляемые формы превращается в пытку. Давайте разберем, как автоматизировать процесс приведения кода в читабельный вид и снизить уровень технического долга.

Анализ проблемы: почему код становится «говнокодом»

Чаще всего нечитаемость кода связана не с плохой логикой, а с нарушением базовых стандартов 1С: отсутствием верблюжьей нотации (CamelCase), игнорированием автодополнения и отсутствием структурированного форматирования. В условиях, когда проект должен быть переведен на управляемые формы, визуальный шум мешает аналитикам и разработчикам понять, как именно реализована бизнес-логика. Важно понимать, что автоформатирование не заменит рефакторинг архитектуры, но оно является первым и обязательным шагом для того, чтобы «глаза не вытекали» при чтении.

Использование автоматических обработок для форматирования

Вместо ручного исправления тысяч строк, разберем методы автоматизации:

  1. Использование внешних обработок для автоформатирования: Существуют готовые решения (обработки), которые умеют подставлять правильный регистр для методов встроенного языка и объектов метаданных. Принцип их работы заключается в сравнении вашего текста кода с библиотекой методов 1С.
  2. Работа с метаданными: Если вы столкнулись с кодом вида справочники.номенклатура.получитьформу(...), специализированные инструменты позволяют массово заменить их на Справочники.Номенклатура.ПолучитьФорму(...). Это значительно ускоряет навигацию по объектам.
  3. Ограничения автоматизации: Важно помнить, что любые значения в кавычках (например, тексты запросов или сообщения пользователю) нельзя изменять автоматически. Автоматика должна затрагивать только платформенные методы, свойства и обращения к метаданным, оставляя строковые литералы нетронутыми.

Алгоритм приведения кода к читабельному виду

Рассмотрим пошагово, как эффективно подготовить код к рефакторингу:

Шаг 1: Очистка и первичная обработка.

Сначала используйте инструменты для приведения ключевых слов языка 1С к стандарту (например, Если, Процедура, КонецФункции). Стандартные инструменты из ИТС или встроенные средства EDT отлично справляются с этой задачей.

Шаг 2: Обработка имен метаданных и методов.

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


// Было:
ф=сп.получитьформу(имяформы);
// Стало:
ф = Справочники.Номенклатура.ПолучитьФорму("ФормаСписка");

Шаг 3: Глобальный поиск и замена.

После автоматического форматирования, используйте Глобальный поиск в Конфигураторе для выявления подозрительных конструкций, которые не были распознаны обработкой. Помните о важности регулярных выражений, если вы используете VS Code или EDT для массовых правок.

Стратегия перевода на управляемые формы

Не пытайтесь перевести всё «залпом». Используйте стратегию Душителя:

Почему важно инвестировать время в форматирование

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

Совет: Если вы планируете продолжать работу с проектом, обязательно внедрите BSL Language Server или плагины для SonarQube. Это позволит вам видеть нарушения стандартов прямо во время написания кода и предотвратит появление «грязного» кода в будущем.

← На главную