Когда эта обработка может быть полезна:
- После обновления конфигурации требуется выявить изменения в движениях
- Отличия в движениях двух баз (необязательно идентичных конфигураций)
- Сравнение движений нескольких документов в одной или разных базах
- Сравнение MXL-документов с игнорированием колонок, произвольной сортировкой
В повседневной работе мы используем эту обработку для контроля обновления. Перепроводим две базы до и после обновления и сравниваем различия в движениях. Таким образом избавляемся от сравнения вручную оборотно-сальдовых ведомостей.
Как это работает
Подготовка данных
Выгружаем движения из регистров в MXL-файлы и текстовые файлы. Наглядно демонстрирует видео на демо-базе БП:
Также можно выгрузить только конкретные документы или результат запроса и даже результат выполнения произвольного кода.
Сравнение данных
Подготовленные на предыдущем этапе данные сравниваются между собой. Для этого запускается попарное сравнение одноименных файлов. Если размер-хэш различаются, значит файлы различаются. Итоговые различия отображаются в ТЧ Различия
Различия можно посмотреть стандартным 1С-функционалом Сравнить файлы. Запускается по кнопке Сравнить файлы. Но есть более мощный функционал, который может игнорировать колонки и оставлять для сравнения и более наглядного представления только отличия в этих файлах. Действует сортировка. Запускается по кнопке Сравнить отличия, настройки содержатся в группе Настройки сравнения
Но лучше всего демонстрирует работу видео, на котором очевидно удобство сравнения вторым способом.
Известные сложности
В обработке присутствует exe-файл AHK, который вызывает штатный диалог Сравнение файлов. Увы, средствами 1С в тонком клиенте его не вызвать, поэтому стороннее ПО. В момент открытия происходит передача путей сравниваемых файлов и в этот момент у многих (см. комментарии) бывают трудности - ничего не открывается, путь не найден и т.д. С версии 1.13 созданы отдельные настройки:
Если окно сравнения не открывается, то меняем тип макета АХК. Если путь не найден - увеличиваем длительность задержки ввода.
На чем оттестировано
БП 3.0, УТ 11 платформы 8.3.16, 8.3.8 (на 8.3.7 вроде тоже работало), Windows
Благодарности
- klinval за всестороннее тестирование, критику и полезные идеи
- GusevNA, Alex_E за куски кода для «программного» сравнения файлов в тонком клиенте из его обработки. Ребята, ваш код становится народным в хорошем смысле этого слова ))) Продолжение темы.
- adapter за исправление ошибки с пустой mxl строкой
Изменения
Версия 1.16
- Исправлен баг с Организацией и некорректной обработкой сетевых путей, спасибо Sam13
Версия 1.15
- Исправлен баг "Не удалось создать файл сравнения .TZ"
Версия 1.13
- Настройки диалога Сравнение файлов
Версия 1.12
- Исправлен баг с пустой строкой mxl, спасибо adapter
Версия 1.11
- Исправлен баг с открытием обработки в конфигурациях отличных от Бухгалтерия предприятия
Версия 1.10
- Исправлена избыточная выгрузка данных из регистров, не относящихся к выбранной в настройках организации
- При повторном сравнении различающихся файлов MXL предлагается выбрать сравнение уже существующих файлов отличий или сформировать отличия заново
- При окончании выгрузки возникает соответствующее информационное окно
- Ускорена работа при сравнении каталогов файлов выгрузки двух баз
- В функционале "Выгрузка движений документов" добавлен функционал подбора документов запросом.
- Автоподстройка ширины таблицы "Различия" на вкладке "Сравнение"
- Изменено поведение кнопки "Сгенерировать код", убраны лишние "ручные" действия копирования.
Версия 1.9
- Исправлена некорректная работа при выборе "Включая подпапки"
- Исправлен функционал "Сравнить отличия". Разное количество идентичных строк не отображались как различные.