Простая и наглядная обработка, которая позволяет сравнить два и более XML файлов, (без учета порядка тегов, используя Фабрику XDTO). Управляемый интерфейс.
На вход подаются имена xml файлов, на выходе — дерево значений со структурой файлов. В качестве иерархии выступает иерархия наименований свойств, при этом сравниваются значения, соответствующие одинаковым наименованиям свойств. Тестировалось на платформе 8.3.6, 8.3.12, работает на всех стандартных конфигурациях на управляемых формах.
Действительно нормально сравнивает файлы и даже разные теги
А по размерам файлов как она? Если, скажем 100 — 500 меговые файлы в нее запихать — умрет?
(2) Существенным недостатком обработки является то, что она сначала формирует ОбъектыXDTO (стандартными средствами 1С) в памяти, а потом их сравнивает, поэтому при работе с 2-3 большими файлами (3-4 мб) процесс затягивается на 2-3 минуты. Но при этом результат сравнения правильный.
У меня процедурная часть обработки используется для сравнения двух сравнительно небольших файлов (16-32 кб) и это работает доли секунды.
Еще один недостаток/фича — это то что не сравниваются имена «самых верхних» (скобочных) тегов файлов, но это особенность считывания при помощи Фабрики XDTO
(3) Ух, не, я не дождусь тогда конца сравнения, 1С и так его с трудом кушает. Обычным объектом ЧтениеXML до двух часов один файл открывается и обходится. Чтением через фабрики все сократил, все отлично, за несколько минут обрабатывается, но есть на горизонте задача ежедневного сравнения файлов поставщика и мониторинг этих изменений — пока не очень понимаю как к ней подойти.
Я правильно понимаю, что можно сравнить структуры файлов, игнорируя содержимое тегов? Может ли обработка сделать вывод об идентичности структур, с учётом атрибутов или без?
(5) игнорируется порядок тегов, но не содержимое тегов. Обработка может сделать вывод об идентичности структур без учета порядка тегов, но с учетом их содержимого.
(6) Понял, спасибо. Эх, придётся свою сделать, без учёта содержимого…
Сделал:https://infostart.ru/public/1133766/