Выгрузка в QlikView из консоли запросов

Некоторое время назад увлекся вопросом обмена между QlikView и 1С. В результате, все наработки вылились в доработку к консоли запросов. Разработка заточена под платформу 8.2, обычное приложение. Консоль может выгружать любые доступные данные из любой базы в QlikView без коннектора 1С, используя COM-соединение.

Консоль запросов взял с у Чистова, весь код вынесен в отдельную форму. Полагаю, при желании можно без проблем адаптировать разработку под любую платформу, любую другую консоль или обработку. Обработка работает с данными, выгруженными в результирующую таблицу консоли. Скрипт загрузки генерируется на основании результата запроса и передается в документ QlikView. Обработка позволяет формировать .qvd файлы на основе загруженных данных. Тэги используются для поиска уже существующего скрипта 1С в скрипте загрузки QlikView (на будущее). 

Механизм работы следующий:

1. У документа QlikView включается возможность динамического обновления, прописано в коде обработки.

2. Формируется скрипт загрузки, передается в документ QlikView, создается пустая таблица.

3. Для передачи данных формируется строка SQL запроса (INSERT INTO * …), при необходимости ее можно формировать частями (для больших объемов). Выполняется динамическое обновление.

4. Если указано создание файлов .qvd, происходит запуск частичной загрузки. При этом повторно выполняется скрипт загрузки, на основе загруженных данных формируется .qvd.

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

Видео работы:

13 Comments

  1. uinx

    Познакомился с системой QlikView буквально 10 часов назад,

    за 20 минут сформировал нужные запросы напрямую в SQL сервер, софтина отобрала за 25 минут 70млн. записей регистров накопления, съела при этом 4гига оперативки на «простом» компе, смотрел на итоговый результат — ненарадовался, потом вручную прицепил названия таблицам и вообще все классно стало.

    сейчас вот руководство поставило задачу — разобраться в кликвью полностью 🙁

    обращался на прямую к SQL базе 1С, таблицы смотрел из функции — ПолучитьСтруктуруХраненияБД ..

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

    Reply
  2. SerLeon

    Автор респект и огромное спасибо, сэкономил кучу времени и решил проблему

    Reply
  3. Lepochkin

    Подскажите как побороть ошибку

    {Форма.ФормаНастройкиQlikView.Форма(177)}: Ошибка при вызове конструктора (COMОбъект)

    Qlik = Новый COMОбъект(«QlikTech.QlikView»);

    по причине:

    -2147221005(0x800401F3): Недопустимая строка с указанием класса

    Reply
  4. mickey.1cx

    (3) на машине не зарегистрирован COMОбъект(«QlikTech.QlikView»).

    Варианты:

    — QlikView не установлен на машине, где выполняется обращение

    — установлен, но слетела регистрация

    — в новых версиях имя COM-объекта отличается

    Reply
  5. Lepochkin

    Очень похоже на последний вариант. Не подскажете как это можно проверить?

    Reply
  6. mickey.1cx

    (5) какую версию используете?

    Reply
  7. Lepochkin

    11.11.3

    Reply
  8. mickey.1cx

    (7) попробуйте переустановить. Скачал с http://us-d.demo.qlik.com/download/ последнюю версию personal edition.

    Код вызова com-объекта отработал, поиск в реестре по сочетанию «QlikTech.QlikView» находит ветки компонента.

    Reply
  9. Lepochkin

    Не помогла переустановка…

    Есть еще мысли как можно решить данную проблему?

    Reply
  10. Lepochkin

    Проблему решил. Спасибо.

    Есть еще один вопросик. Можно ли как-то на сервере 1с запускать вот этот механизм загрузки?

    Reply
  11. mickey.1cx

    (10) если COM объект будет доступен на сервере, то можно.

    Как победили, если не секрет?

    Reply
  12. Lepochkin

    Все снес. Заново виртуалку поднял и завелось.

    Reply
  13. Lepochkin

    То есть получается, на сервере 1с надо устанавливать qlik… Не очень решение.

    Попробовал из qlik к 1ске цепануться вылезает «Невозможно создание объекта контейнером ActiveX: ‘V83.ComConnector'». Причем между 1с базами конектор ходит. С версиями клиента поигрался ил 32 и 64 ставил. не взлетает зараза.

    Reply

Leave a Comment

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