CfeUpdater — обновление расширений 1С

CfeUpdater — обновление расширений 1С

1C Configurations

Not specified.

Pricing

Free or price is not specified.

README

Для чего создан проект и какие проблемы решает

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


* Директивы &Вместо, &После и &Перед. Когда вендор изменяет логику метода, расширение продолжает применяться без каких-либо предупреждений — даже если переопределённый метод полностью потерял актуальность. Понять, требует ли он доработки, штатными средствами невозможно.
* Переопределённые обработчики событий форм и реквизитов. Типовая проверка применимости расширения принципиально не охватывает эти обработчики. Хотя по умолчанию и предлагает переопределить обработчик, а не метод модуля.

image

Предлагаемое решение представляет собой внешнюю обработку (CfeUpdater.epf), позволяющую увидеть и исправить все проблемные и потенциально проблемные места в расширении, связанном с основной конфигурацией при обновлении последней на новый релиз.

Обработка использует для разбора текстов с помощью регулярных выражений внешнюю компоненту https://github.com/alexkmbk/RegEx1CAddin и работает как Windows, так и в Linux системах.

Как пользоваться

  1. Выгрузить основную конфигурацию до обновления в файлы (через конфигуратор или при помощи автономного сервера), аналогичным образом необходимо поступить с новой конфигурацией (новый релиз обновляемой конфигурации) и собственно с самим расширением.
  2. Открыть в любой конфигурации, содержащей БСП в режиме 1С: Предприятия обработку CfeUpdater.epf
  3. При первом запуске возникнет запрос на разрешение подключения внешней компоненты RegEx, отвечаем "Да"
![image](https://github.com/user-attachments/assets/f5048657-4065-4e3a-bf9e-18784ebef71f)
  1. Так же при первом запуске автоматически откроется окно настроек, предлагающее выбрать какую программу использовать для трехстороннего объединения и указать ее место расположение
    image

Поддерживается Kdiff3 и P4Merge. Рекомендуется выбрать Kdiff3 https://download.kde.org/stable/kdiff3/ (более богатые возможности по фильтрации изменений, хотя у P4Merge более приятный интерфейс)

image
  1. После закрытия настроек в основной форме указать путь к каталогам с выгруженными конфигурациями и расширением, созданным на этапе 1.
    image

  2. Результат обновления расширения сохраняются в виде xml файлов. Для этого необходимо указать пустой каталог, в который будут автоматически скопированны исходные файл расширения и произведены необходимые изменения.
    image
    После выполнения всех объединений из этого каталога необходимо загрузить обновленную версию расширения.

  3. Нажать кнопку Анализ и дождаться его завершения ( несколько секунд)

![image](https://github.com/user-attachments/assets/e8b76368-0ebe-46a4-a671-eeae46f5a92f)
  1. Результат анализа выводится на разных вкладках. На вкладке "Проблемы" показаны критические проблемы, из-за которых расширение не будет применено или будет работать некорректно
    image
    Результат представлен в виде дерева, строки которого указывают на проблемные методы.


    Часть проблем (конфликтов) могут быть разрешены автоматически, они отмечены в колонке "Авто", остальные требуют запуска программы сравнения. Это можно сделать либо двойным щелчком или выбрав команду "Объединить"
![image](https://github.com/user-attachments/assets/a47866ca-9e91-4fc7-8cf3-e3f77ed9b68f).

После этого запустится настроенная программа просмотра изменений (на скрине Kdiff3), в которой необходимо будет разрешить конфликт обновления.
image
Результат внесенных изменений автоматически записывается в каталог с результатами объединения, указанный в п.6

P.S. Просмотреть результат объединения можно по команде "Показать результат объединения"

![image](https://github.com/user-attachments/assets/9db7bb75-e664-4797-9386-9971af4ec583).

Т.к. повторное нажатие "Объединить" сбрасывает результаты прошлого объединения и производит его заново.

  1. Вкладка "Информация" отображает методы, которые были переопределены при помощи директив "После" или "Перед" и позволяет просмотреть не повлияли ли изменения в конфигурации на логику в расширении.
    image
    Тут при показе отличий открывается программа просмотра изменений без возможности объединения. Выводимые данные носят информационный характер. Все изменения в расширении при необходимости необходимо сделать в среде разработки в зависимости от того насколько поменялась логика переопределяемого метода.
    image

  2. После разрешения вопросов по проблемным методам их рекомендуется помечать флажком в колонке "Отм."

    ![image](https://github.com/user-attachments/assets/6516da9d-7251-491c-aecf-eaedecba4869)

  3. Необходимо в конфигураторе загрузить конфигурацию из файлов, выбрав каталог с результатами, указанный в п.6

Ограничения

  1. Анализируются исходники в формате конфигуратора
  2. Для просмотра изменений поддерживаются только Kdiff3, P4Merge