Столкнулся давеча с проблемой: после обновления нетиповой конфигурации на новый релиз конфигурации поставщика решил проверить правильность проведённого обновления, убедиться что в процессе обновления не были потеряны ни изменения основной конфигурации ни изменения новой конфигурации поставщика. Для этих целей необходимо сравнить отчёты о сравнении основной конфигурации и конфигурации поставщика до и после обновления. Если обновление проведено правильно, то отличий в этих отчётах быть не должно. За некоторыми исключениями. Данная обработка позволяет исключить ПСЕВДООТЛИЧИЯ из процесса сравнения.
Перед тем как пилить данный велосипед, немного посмотрел интернет и задал вопрос на форуме ИС.
Как это работает:
Из отчётов о сравнении удаляются символы и строки, выдающие псевдоотличия.
Необходимые условия:
До и после обновления метаданные конфигурации должны быть одинаково упорядочены. В нашей практике, упорядочиваем по алфавиту. Если этого не сделать, данные будут по разному упорядочены в отчётах о сравнении до и после обновления и применять данный метод будет бессмысленно.
О каких УДАЛЯЕМЫХ псевдоотличиях идёт речь:
- Номера позиций в конце строк вида:
Объект присутствует только в основной конфигурации: 2401 — 2411
Изменено: 280 — 280
Объект присутствует только в конфигурации поставщика: 890 — 891 - Строки вида:
#k8SjZc9DxkПорядок объекта изменен - Изменения нечитаемых символов, например:
Изменено: 41 — 41
< "·//<==ТОиР=·"
> "·//<==ТОиР=" - Лишние пустые строки:
Объект присутствует только в конфигурации поставщика: 63 — 64
""
"···"
Интерфейс:
- Чтобы разобраться, достаточно ткнуть кнопку "Показать работу на примере". В обработку заложено два небольших текстовых файла, на примере которых обработка покажет, что она умеет.
- Указываем пути к двум сравниваемым файлам отчёта.
- Жмём кнопку "Обработать и сравнить".
- Файлы будут обработаны, указаны в качестве файлов результатов, откроется окно сравнения файлов после обработки.
- Также можно посмотреть на остальные кнопки, их названия говорят сами за себя.
Результат применения обработки:
ДО ОБРАБОТКИ:
ПОСЛЕ ОБРАБОТКИ:
Особенности исполнения:
- Использованы обычные формы. Тестировалось на платформе 8.3.12.1412
- При очистке непечатных символов "·" могут быть удалены значащие символы из строковых констант. Необходимость поиска таких отличий в строковых константах крайне маловероятна, поэтому пока никак не обрабатываем.
Возможные улучшения в будущем:
опциональность применяемых видов обработки файла
обработка ВСЕЙ группировки строк "#k8SjZc9DxkПорядок объекта изменен". Сейчас считаем, что в группировке одна строка
Упорядочивание группировок — тогда покажется ещё меньше отличий
прогресс бар
выбор файлов из проводника
добавить опцию очистки непечатных символов ТОЛЬКО в начале и конце строки
оптимизация по скорости
————————————
ИНТЕРЕСНЫХ ВАМ ЗАДАЧ, ПЛОДОТВОРНОЙ РАБОТЫ И ОРИГИНАЛЬНЫХ/ОПТИМАЛЬНЫХ РЕШЕНИЙ!!