Skip to content

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

@johnnyshut

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

    No fields configured for Task.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions