Skip to content

[FEATURE] Автоматизировать перенос модулей из prometheus в расширение 1С и унифицировать оформление (области вместо комментариев) #2

Description

@johnnyshut

Описание

Нужно реализовать функцию/таск для OneScript (task onescript), которая при запуске будет автоматически переносить общие модули и связанные объекты из библиотеки prometheus в репозиторий расширения prometheus-e1c (каталог src/cfe/prometheus_client/...) с приведением оформления к единому стилю.

Дополнительно требуется унифицировать оформление модулей как в библиотеке, так и в расширении: вместо «ручных» комментариев-разделителей использовать стандартные области (#Область … / #КонецОбласти), согласованные по структуре и наименованиям.

Зачем это нужно

  • Синхронизация изменений между библиотекой prometheus и расширением prometheus-e1c сейчас делается вручную и легко ошибиться или что-то пропустить.
  • Единый стиль оформления (области вместо комментариев) упростит навигацию, сопоставление файлов между репозиториями и последующую поддержку.
  • Подготовка к дальнейшей автоматизации: единообразные области позволят позже писать более точные скрипты миграции и проверки расхождений.

Требования к реализации

  • Таск/команда:

    • Реализовать таск для OneScript (например, opm run sync-prometheus-e1c или аналогичный), который:
      • Читает исходные модули из репозитория prometheus (каталог src/Модули и/или нужные классы).
      • Находит соответствующие им объекты в prometheus-e1c (например, CommonModules/Prometheus*, другие общие модули).
      • Копирует/обновляет текст модулей в расширении с учетом правил форматирования.
    • Команда должна быть идемпотентной: повторный запуск не должен вносить «шумные» изменения, если исходные файлы не менялись.
  • Единое оформление (области):

    • Заменить существующие комментарии-разделители вида // --- ... --- (и подобные) на области:
      • #Область Интерфейс
      • #Область Инициализация
      • #Область РаботаСРеестром
      • #Область ВспомогательныеПроцедуры
        (конкретный набор и названия областей нужно согласовать, но они должны совпадать между prometheus и prometheus-e1c для соответствующих модулей).
    • В рамках таска обеспечить, чтобы при копировании/обновлении модуля:
      • Структура областей сохранялась.
      • Лишние комментарии-разделители не дублировались и не «расползались» по коду.
    • Области использовать и в исходных .os из prometheus там, где это уместно, чтобы структура модулей была максимально одинаковой.
  • Гарантии для публичного API и стиля:

    • Не менять имена и порядок экспортных процедур/функций фасада и ключевых модулей (совместимость с существующим кодом и с платформой 1С).
    • Соблюдать ограничения по длине строки (до 120 символов).
    • Не менять логику работы процедур и функций - только перенос и оформление.

Критерии приемки

  • Можно запустить один сценарий (одной командой), который:
    • Обновляет выбранный список модулей между prometheus и prometheus-e1c.
    • Не порождает лишних диффов при повторном запуске (кроме реальных изменений в исходной библиотеке).
  • Во всех затронутых модулях:
    • Вместо «ручных» комментариев-секций используются области.
    • Набор областей и их порядок совпадает между соответствующими модулями в двух репозиториях.
  • Тесты (opm test) в обоих проектах проходят без новых ошибок.
  • Дифф после первого запуска таска понятен и не содержит функциональных изменений (только перенос и оформление).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions