Консоль запросов с возможностью сравнения данных между базами (управляемые формы)











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

Возможности консоли:

  1. Поддерживается дерево для хранения данных, есть возможность сохранять на внешний диск.
  2. «Конструктор запросов» для внешней базы автоматически открывает внешнюю базу и открывает конструктор запросов с дальнейшим возвратом результата.
  3. Гибкая настройка параметров как для текущей, так и для внешней базы данных.
  4. Для выведенных табличных документов есть ряд удобных настроек на форме, это сохранение, фиксация области, поиск по названию, суммирование ячеек, вывод выделенного текста в поле.
  5. На странице «Результат сравнения данных и настройки»:

Указываем как связывать таблицы источника (А) и (Б), это левое, правое, внутреннее или внешнее соединение,

Для условия связи, выбираем поля из выпадающего списка. Для ссылочных типов обязательно указываем «Сравнивать по УИД» (иначе ссылка внешней базы будет конвертироваться в строковое представление). Если поставить галочку «Выводить поле как УИД», тогда для этого поля в табличном документе будет выводится УИД ссылки, иначе выводится ссылка для текущего источника данных и представление для внешнего источника данных,

Условия отбора устанавливаются из выпадающего списка полей источника (А) и (Б), логический оператор устанавливается для каждой строки для связи со следующей строкой (по умолчанию устанавливается "И"),

Поля для группировки можно устанавливать из полей источника (А) и (Б).

  1. В выведенном результате сравнения данных отличающиеся строки, которые имеют тип число подсвечиваются серым цветом и строки для которых со стороны источника (А) или (Б) отсутствуют данные, также будут подсвечиваться серым цветом.

 

 

Это консоль будет помогать вам при переходах, когда нужно будет сравнивать данные между старой и новой базой по вашему условию или если вы уже работаете с базами, между которыми настроены обмены и нужно проанализировать отличие в данных.

Тестировалась на платформе 8.3.13.1644, 8.3.15.1534.

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

 

Мне очень нравится визуальное оформление автора консоли запросов //infostart.ru/public/335504/, поэтому такое же оформление частично использовал и у себя. Основной логикой этой обработки является гибкое сравнение данных между базами.

 

Возможные ошибки:

  1. «Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса»

Первое что необходимо сделать — зарегистрируйте на компьютере COM объект V83.COMConnector, пример строки регистрации (измените путь на нужную версию):
для 32 разрядной платформы
regsvr32 "C:Program Files (x86)1cv88.3.15.1534incomcntr.dll"
для 64 разрядной платформы

C:WindowsSystem32
egsvr32 "C:Program Files1cv88.3.15.1534incomcntr.dll"

    Выполните данную команду от имени Администратора.

Если регистрации компоненты не помогла, на этом сайте подробно расписано, как решить проблему при помощи регистрации библиотеки в ручную https://efsaver.ru/docs/reshenie-problemy-nedopustimaya-stroka-s-ukazaniem-klassa.html

 

Другие разработки:

  1. Перенос данных из КА 1.1 в БП 3.0. Переносятся документы (обороты за период) и справочная информация
  2. Перенос данных из КА 1.1 в КА 2.4. Переносятся документы (обороты за период), справочная информация и остатки
  3. Универсальный обмен данными XML (1.8) 8.3 (управляемые формы) и 8.2 (обычные формы) с возможностью подключения самописных правил и добавлением во внешние обработки
  4. Количество документов и справочников с отбором по организации для обычных и управляемых форм
  5. Сравнение объектов между собой (справочников и документов) и вывод в табличный документ (управляемые формы)
  6. Очистка и перезаполнение видов запасов с перепроведением документов в КА 2.4 и ERP 2.4

 

Сравнение версий

 

 Описание изменений и исправления ошибок:

  •  09.10.2024 — Добавлена возможность заполнения данных источника (Б) запросом и параметрами из источника (А). Теперь корректно работает копирование и удаление строк из дерева запросов и исправлены др. небольшие замечания.

 

9 Comments

  1. Evg-Lylyk

    (0) Скажите это нормально когда берут код и формы другой обработки дорабатывают публикуют как свою?

    Как минимум ссылку на оригинал добавить, согласовывать с автором

    Reply
  2. Dadriel619960

    (1) Эту обработку делал давно, руководствовался несколькими и обработками, и многими процедурами БСП. Функционал именно сравнения данных разрабатывал сам, сама логика гибкого сравнения на 90% моя, касательно вывода и визуального оформления обработки 50% на 50% получилось, точно тяжело сказать. В этой обработке ещё не делал чистку от ненужных реквизитов, процедур и функций, который остались с момента создания и которые уже не используются. И по поводу форму, её я тоже сам вырисовывал и все размещал. Сейчас даже не знаю, как правильно сделать, указывать чем руководствовался или нет. Мне очень нравится визуальное оформление автора обработки https://infostart.ru/public/335504/, которым использовал и у себя.

    Эту обработку первоначально разрабатывал под свои нужды, так как много работаю с обменами, РИБами и переносами данных, хотелось создать гибкий и простой механизм без лишних настроек и галочек. Вроде он получился, хотя я думаю его ещё можно дальше развивать.

    Reply
  3. Evg-Lylyk

    (2) Разработка принадлежит автору, вы публикуете чужое со своими доработками

    Reply
  4. user1255359

    при попытке открыть «Конструктор заапроса» для другого источника данных пишет :

    «Ошибка при подключении к внешней базе: {ВнешняяОбработка.КонсольЗапросовСВозможностьюСравненияДанныхМеждуБазами.Форма.Форма.Форма(729)}: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса » , хотя при проверке соединения по кнопке пишет, что все «OK»

    Пробовал на однотипных базах (УТ-УТ) и на разных (УТ-БП)

    Reply
  5. Dadriel619960

    Эти базы они обе серверные? Они на одной платформе работают? И можно номер платформы, попробую на ней?

    Reply
  6. Dadriel619960

    (4) Попробуйте исправить ошибку как написано в описание, через регистрацию компоненты.

    Раз выполняется подключение по кнопке, попробуйте во внешней базе написать запрос, скопировать его в обработку, если есть параметры, нажать кнопку на форме «Перезаполнить параметры» и выполните запрос. Если отработает, можете сравнивать данные.

    А так, в обработке используются 2 конструктора для соединения с внешней базе «Новый COMОбъект(V83(2).COMConnector)» и «Новый COMОбъект(V83(2).Application)»

    Reply
  7. user1255359

    (5) Обе базы серверные, находятся на одном сервер, хотя пробовал и на разных — ошибка та же

    Пробовал перерегистрировать компоненту — тоже самое.

    Обмены между УТ->БП, через COM работают

    EVSAVER использую для бекапа баз.

    Пользователей он выкидывает исправно, а он вкидывает тоже через COM

    Запрос сделать во внешней базе и использовать его здесь попробую, но тогда теряется весь «цимус» обработки

    У меня есть обработка которая сравнивает документы в двух базах, но там все жестко и чтобы делать что-то свое надо переписывать, а хотелось что-то для быстрой выборочной проверки

    платформа — 8.3.14.1779

    Reply
  8. sertak

    О, какая обработка. И ни слова об этой: https://infostart.ru/public/581794/.

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

    Так можно?

    Reply
  9. Dadriel619960

    (8) Чтобы не было вопросов к моей обработке, сменил дизайн на свой.

    А алгоритм сравнения в обработке мой, делал чтобы он был гибким и простым без лишних настроек и галочек.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *