Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 06:12:38 am

Автор Тема: Создание QlikView-файлов из 1С  (Прочитано 7335 раз)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Создание QlikView-файлов из 1С
« : Декабрь 17, 2012, 11:06:40 pm »
Формирование QlikView из 1с, возможно ли это? Почему бы и нет.
Подробности и файлики здесь. Спасибо автору.

Оффлайн Aleksey

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +2/-0
    • Просмотр профиля
Re: Создание QlikView-файлов из 1С
« Ответ #1 : Апрель 03, 2013, 08:51:15 pm »
В данной ветке не увидел описания, либо вложенных файлов.
Ошибка отображения либо открытая тема? Могу поделиться опытом подключения к 1С.
Тоже самое относится к теме коннекторов 1С...

Оффлайн Aleksey

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +2/-0
    • Просмотр профиля
Re: Создание QlikView-файлов из 1С
« Ответ #2 : Апрель 05, 2013, 02:21:38 pm »
Даже не знаю с конца приступить :)

Наверное с темы: "Создание QlikView-файлов из 1С". Конечно никаких файлов QlikView создавать из 1С не умею, а вот как выгружать информацию из 1С в QlikView немного расскажу.
*Рассматривается версия 1С 8.х

Начнем с аксиом. 1С работает в 2-х режимах:
• файловый
• клиент-серверный

1. Файловый режим
Файловый режим хранит таблицы данных в файле с форматом собственного приготовления ".1CD".
Пытаться читать из него, на мой взгляд, безумие. При внедрении и реальных задачах с "QlikView + 1С" вы наверняка будите работать с клиент серверным вариантом.
Если потребуется работа именно с файлом, то начать копать можно отсюда: http://infostart.ru/public/19633/

2. Клиент-Серверный режим
Вот тут все понятно. Имеем СУБД на которой крутится 1С, выгружаем данные именно из нее.
Для этого используется поддерживаемый QlikView интерфейс OLE DB.

Для интеграции на сервере QlikView должен быть установлен драйвер ODBC от поставщика СУБД.
Если говорить о MSSQL, то он поставляется и устанавливается автоматически при установке оснастки среды.

В самой модели QlikView подключение выполняется помощи оператора Connect

Цитировать
Синтаксис:
OLEDB CONNECT TO connect-string [ ( access_info ) ]

Где
connect-string - строка подключения, содержащая информацию по расположению СУБД, пользователю и пр. мелочей.
access_info - генеирируемый в зашифрованном виде пароль для подключения к СУБД. Можно конечно пароль указать явно в первом параметре. Но это не совсем секурно.


Для создания рекомендую использовать конструктор  (вставить -> оператор Connect)

После выполнения подключения можно скачивать данные и загружать в таблицы QlikView.
Для этого используется секция SQL SELECT очень похожая на язык SQL.

У меня выглядит примерно так:
OLEDB CONNECT TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[b][i]UserName[/i][/b];Initial Catalog=[b][i]BaseName[/i][/b];Data Source=[b][i]ServerIP[/i][/b];Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=[b][i]QlikServerName[/i][/b];Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is [b][i]26СгенерированныхКликомЗнаковПароля[/i][/b]);

СправочникНоменклатура:
LOAD
Код,
Наименование;
SQL SELECT
    СпрНоменклатура._Code Код,
    СпрНоменклатура._Description Наименование
FROM
    _Reference35 СпрНоменклатура;

Если потребуется использовать несколько баз в качестве источников данных, необходимо объявить новый оператор соединения непосредственно перед обращением к таблицам.
При этом подключения к прошлому источнику автоматически завершится.


А теперь пара не очень приятных вещей:
1. Именование таблиц и полей внутри СУБД генерируются 1С-кой автоматически на основе ведомой только ей логике.
Так что в дальнейшем придется работать с наименованиями на подобии _InfoRg14103, Q_001_F_003RRef, _Reference59 и т.п.
Таким образом, потребуется разбираться со структурой хранения таблиц.
Тут на помощь придут инструменты анализа запросов СУБД (например SQL Server Profiler), а так-же обработки для просмотра структуры конфигурации 1С.
Кроме того существуют уже готовые наработки "Коннекторы", которые позволяют интерактивно строить запросы по выборке данных непосредственно из 1С, но об этом наверное расскажу в отдельной теме по коннекторам 1С+QlikView.

2. Любые разработки моделей QlikView для СУБД 1С будут уникальными. Дело в том, что даже если конфигурация совпадает, в каждой развернутой СУБД именование полей будет своим.
Аналогичная ситуация при работе с распределенной ИБ. Именование таблиц в периферийных узлах также отличается - не во всех таблицах, но % на 20 отклонения проскакивают. Закономерности пока выявить не удалось.
Самое страшное - если ваша базы вышла из строя, а бэкап имеет месячную давность. Обновив до последнего релиза вы можете обнаружить, что настроенная ранее модель QlikView перестанет обновляться по причине несоответствия полей. Вот такие пироги.

По большому счету ничего страшного нет.
Если не превращать модель в хаос (не копипастить как-есть запросы из профайлера), и вдумчиво назначать алиасы, то устранение проблем займет не более 20-ти минут.

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

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Создание QlikView-файлов из 1С
« Ответ #2 : Апрель 05, 2013, 02:21:38 pm »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Создание QlikView-файлов из 1С
« Ответ #3 : Апрель 05, 2013, 05:12:06 pm »

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

Механизм несложен, правда практическая польза в рабочих условиях сомнительна.
Но пригодится может, например для экспресс анализа.

По поводу загрузки из базы 1с, есть уже несколько коннекторов, не приходилось пользоваться?

Оффлайн Aleksey

  • Новичок
  • *
  • Сообщений: 15
  • Рейтинг: +2/-0
    • Просмотр профиля
Re: Создание QlikView-файлов из 1С
« Ответ #4 : Апрель 05, 2013, 06:45:08 pm »
Механизм несложен, правда практическая польза в рабочих условиях сомнительна.

Новый COMОбъект("QlikTech.QlikView") Все гениальное просто! Как то даже не приходило в голову...
Значит в теории можно не только создавать, но и модифицировать скрипты существующих моделей.
В качестве применения - можно разработать некую панель управления скриптом загрузки.

Текущий встроенный интерфейс разработки оставляет желать лучшего...
За обработку спасибо! Попробую поковырять.

Что касается коннекторов - пользовался. Но я думаю стоит в отдельной ветке обсудить.
Кроме того существуют уже готовые наработки "Коннекторы", которые позволяют интерактивно строить запросы по выборке данных непосредственно из 1С, но об этом наверное расскажу в отдельной теме по коннекторам 1С+QlikView.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Создание QlikView-файлов из 1С
« Ответ #5 : Апрель 05, 2013, 09:05:10 pm »
Значит в теории можно не только создавать, но и модифицировать скрипты существующих моделей.
В качестве применения - можно разработать некую панель управления скриптом загрузки.
Насчет модифицировать - не уверен, слишком много моментов следует учесть.
А вот формирование скрипта на основе шаблонов, т.е. формирование скрипта в режиме диалога с пользователем в среде 1С - почему бы нет. Тоже, своего рода коннектор-"выгружалка"  :).
Настроить запуск по расписанию - и готов универсальный генератор хранилища для начального уровня.
Выложенная обработка носит характер научного эксперимента  :D, все в руках энтузиастов ;)  ...