gifts2017

Сравнение баз запросом

Опубликовал Василий Тёркин (1С_Мастер) в раздел Обработки - Универсальные обработки

Консоль запросов с возможностью сравнить результаты выполнения запроса в разных базах через COM-соединение

Обмен данными между разнми базами практически никогда не работает абсолютно идеально. Периодически приходится сравнивать данные из разных баз, чтобы найти, какая информация присутствует в одной базе, а какая в другой. На Инфостарте выложено достаточно много инструментов для сравнения данных через COM-Соединение, однако ни один из них не приближается по удобству и гибкости к старой доброй консоли запросов. 

Данный метод сравнения сработает даже на совсем разных конфигурациях. Главное, чтобы запрос мог исполниться и в первой, и во второй базе. 

Для ссылочных типов перед сравнением происходит поиск ссылок в той базе, в которой исполняется запрос, этим данный вариант отличается, например вот от этой публикации, где сравнение происходит только по примитивным типам. 

Для использования сравнения баз:

  • Пишем запрос
  • Переходим в консоли запросов на вкладку "Сравнение баз"
  • Добавляем в табличу новую строку, задаем параметры соединения
  • Нажимаем на гиперссылку"Выполнить сравнение"
В качестве механизма для сравнения используется стандратная возможность платформы - сравнение файлов. Результаты запрсов сохраняются в mxl и сравниваются самой платформой.

За основу была взята одна из лучших консолей запросов - Запросник

Скачать файлы

Наименование Файл Версия Размер
КонсольЗапросовИОбработчик.epf 35
.epf 137,74Kb
17.12.14
35
.epf 137,74Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Римма Герасименко (WhiteOwl) 17.12.14 16:57
2. Иван Иванов (kosmo0) 01.09.15 09:33
Если вдруг есть в коде подобное
обMSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl");

то весьма желательно указывать в описании нечто типа "Для работы обработки необходимы следующие компоненты - ..."

Потому что где, в каких условиях и на каких компах будет использоваться данная обработка предугадать невозможно.
3. Иван Иванов (kosmo0) 01.09.15 14:28
Если реквизит является перечислением, то краш на строке
пРезультат = пМенеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(V8COM.String(ппЗначение.UUID())));
конкретно на ппЗначение.UUID()

По этому поводу есть Получение значений перечислений через внешнее соединение или Automation сервер
4. Николай Гончаров (JohnConnor) 29.11.16 04:43
ошибка
{Форма.Форма.Форма(2903)}: Метод объекта не обнаружен (UUID)
пРезультат = пМенеджер.ПолучитьСсылку(Новый УникальныйИдентификатор(V8COM.String(ппЗначение.UUID())));
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа