Сравнение данных РИБ или баз с одинаковыми конфигурациями по контрольным суммам объектов/записей, работающих на платформе 8.3...и выше
27.10.17 23:58

Кратко о возможностях обработки:

  • Удобный интерфейс с этапами работы в виде мастера.
  • Высокая скорость получения данных из баз для сравнения методом вычисления контрольной суммы объекта/записи с использованием своего специального алгоритма, который не приводит к переполнению памяти при получении объектов.
  • Высокая скорость сравнения за счет сравнения только контрольных сумм объектов из базы-источника(главного узла) и базы-приемника (подчиненного узла) или наоборот.
  • При выгрузке данных для сравнения из базы-источника (главного узла или периферийного) можно указать какие объекты и с какими отборами будут выгружены для КАЖДОГО выбранного узла плана обмена в отдельности. 
  • Просмотр объектов перед выгрузкой по указанным отборам для каждого вида объекта.
  • Сравнение данных происходит с помощью файла, который формируется на основании данных базы-источника, и данных базы-приемника (подчиненного узла) . Причем, данные для сравнения в базе-приемнике формируются по точно таким же настройкам, которые использовались при получении данных из базы-источника и считываются автоматически из файла.
  • Файл для сравнения может быть сохранен в указанную папку на локальном компьютере или в каталоге сервера FTP. 
  • Вывод результата сравнения в виде дерева с указанием, какие данные различаются, какие данные отсутствуют в базе-источнике, какие данные отсутствуют в базе-приемнике.
  • Данные, которые имеются в базе-приемнике можно открыть для просмотра.
  • Произвольный выбор данных для обмена из результата сравнения с указанием произвольного узла.
  • Пакетный выбор данных для регистрации из дерева результата по критериям.
  • Возможность сохранения и восстановления результата сравнения для отложенной обработки в будущем или вывода в файл.
  • Регистрация движений при регистрации документа на обмен.
  • Регистрация объектов, находящихся в реквизитах регистрируемого объекта для поддержания целостности данных объекта. Актуально и для записей регистров сведений.
  • Регистрация ссылочных данных, которые отсутствуют в базе-приемнике (подчиненном узле)  (Объект не найден) на обмен, с возможностью удаления этих объектов в базе-источнике (главном узле).
  • Сохранение в файл и восстановление из файла всех настроек обработки.

ВНИМАНИЕ! Объекты считается одинаковым, если их контрольные суммы равны. Контрольная сумма определяется как совокупность значений каждого реквизита объекта/записи/табличной части (кроме реквизита «Ссылка»). Следовательно, если ссылка в одном и том же реквизите сравниваемых объектов различны (различные УИ), но имеют одинаковое наименование, например, то данные объекты будут иметь различные контрольные суммы и следовательно, будут не равны!

Немного технических данных об обработке:

  • Код полностью моего производства (мои наработки)
  • Код открыт, можно дорабатывать самостоятельно
  • Общее количество строк кода около 3100
  • Выгрузка документов для сравнения с подсчетом контрольных сумм из главного узла (клиент-серверная, 9 подчиненных узлов) за 6 месяцев с отбором по региону для одного узла заняло 17 мин (120 000 документов). Объем файла - 47,4 Мб в несжатом состоянии.
  • Загрузка полученного файла узлом и получение данных для сравнения по настройкам из файла заняло около 17 мин. 
  • Сам процесс сравнения занял 4 секунды!!! Итого - средняя скорость сравнения документов с учетом времени загрузки и выгрузки - 59 объектов/сек!
  • Для регистрации реквизитов объекта не используется ПолучитьОбъект(), что дает возможность регистрировать большие объемы данных, без возникновении проблем с памятью и дает прирост скорости.
  • В скором будущем планируется доработка в плане выбора определенных реквизитов для каждого вида объекта конфигурации, по которым будет рассчитываться контрольная сумма, и следовательно, будет идти сравнение.

Может быть встроены в дополнительные отчеты/обработки. 

Обработка написана для 2х видов конфигураций:

  • Использующие/Не использующие модальные окна - УТ 11, БП 3.0, УНФ 1.6, Розница 2.2, ERP 2, ЗУП 3.0 и т.д.
  • Использующие модальные окна - УТ 10.3, БП 2.0, Розница 1.1, ЗУП 2.5, УПП 1.6 и т.д. Для работы она должна быть встроена в конфигурацию, так как в обычном приложении внешние управляемые формы не открываются! 

Как встроить обработку с поддержкой модальности в конфигурацию УТ 10.3, БП 2 и похожих:

  1. Открыть базу в режиме "Конфигуратор" с администраторскими правами
  2. Открыть окно конфигурации, выбрав в верхнем меню "Конфигурация" - "Открыть конфигурацию"
  3. В дереве конфигурации найти узел "Обработки"
  4. Стать на узел "Обработки" и выбрать в контекстном меню "Вставить внешнюю обработку"
  5. Выбрать данную обработку. Она будет добавлена в дерево конфигурации
  6. На корне конфигурации нажать правой клавишей мыши - "Свойства" и установить справа флаг "Использовать управляемые формы в обчном приложении"
  7. Применить изменения, нажав F5, и согласиться с изменениями.
  8. В режиме "Предприятия" можно вызвать данную обработку из меню "Операции" - "Обработки"

    Возможно, что при выборе справочника/документа/регистра/ПВХ, в таблице отбора, не будет доступных полей для отбора в управляемой форме. Это значит у Вас не включена функциональная опция, которая блокирует использование данного объекта! Это особенности управляемого приложения и СКД!

    Все, купившие обработку, получают обновления БЕСПЛАТНО  в течении года с момента покупки (от даты заказа)! Обновления высылаются на почту, указанную при покупке.

    Для удаления дублей рекомендую использовать //infostart.ru/public/127859/

    Для удаления лишних данных рекомендую использовать //infostart.ru/public/175028/

    Для проведения/перезаписи документов и не только рекомендую использовать //infostart.ru/public/201119/

    Для ведения истории изменений данных рекомендую //infostart.ru/public/621962/

Read Full Article