Коннекторы

Содержание

Компонент «Коннекторы» обеспечивает загрузку данных в справочники и реестры системы из внешних информационных систем и внешних файлов различных форматов.

Платформа NetDB предоставляет базовый набор адаптеров для следующих типов источников данных:

Адаптер работает под ОС Windows через COM. Внешнее COM-соединение применяется для программного доступа из внешних приложений к данным «1С:Предприятия» старых версий 1С (8.2 и ниже).
CSV
Адаптер использует Python-библиотеку csv. Спецификация RFC 4180, общий формат и MIME-тип для файлов значений, разделенных запятыми (CSV) (см. подробнее: http://tradeincome.ru/useful-content/RFC%204180%20rus.pdf). Коннектор обрабатывает не только CSV-файлы (Comma-separated values – значения, разделенные запятыми), но и файлы с другими разделителями (DSV delimiter-separated values - значения, разделённые разделителем), например SCSV (Semi-colon-separated values - значения, разделенные точкой с запятой), TSV (Tab-separated values - значения, разделенные символом табуляции). В качестве разделителя можно также использовать двоеточие, пробел, вертикальную черту.
DBF
Адаптер использует Python-библиотеку dbf, в которой реализована поддержка форматов dBase III, FoxPro и Visual FoxPro. Формат dBase IV w/memo этой библиотекой не поддерживается.
OData.v3
Поддерживается протокол OData версии 3.0 (Open Data Protocol v. 3.0). Протокол реализован частично, только для реализации возможности чтения данных с внешнего сервиса. Используется для подключения к данным 1С последних версий. Для старых версий 1С (8.2 и ниже) подключаемся по протоколу COM (см. выше).
SOAP

Обеспечивает загрузку данных по протоколу SOAP. При создании коннектора надо указать адрес сервера SOAP (в формате: http://login:password@address). После того, как коннектор будет создан, надо добавить JSON-запрос, определяющий параметры method, args и xpath:

{"method":"НазваниеМетода",
"args": ["Список", "аргументов"],
"xpath": "Путь/к/таблице"}
XLS
Адаптер использует Python-библиотеку xlrd, загружает файлы формата xls, xlsx.
XML
Коннектор для загрузки данных из XML-файла. После того как коннектор будет создан, надо добавить произвольный запрос в формате XPath, определяющий путь к загружаемой таблице. Спецификацию языка XML Path (XPath) версии 1.0 см. подробнее: http://citforum.ru/internet/xpath/index.shtml и https://www.w3.org/TR/1999/REC-xpath-19991116/.
БД по ODBC
Адаптер к базам данных PostgreSQL, MySQL, Firebird, MSSQL, ORACLE работает через ODBC-драйвер.
Текст
В отличие от формата CSV адаптер обрабатывает неструктурированный текст, без заданной структуры столбцов, не пытается разделить на столбцы «по умолчанию». При настройке коннектора нужно самостоятельно создавать вычисляемые поля на основе разбора строк данных.
Битрикс24
Адаптер работает через Rest API (см. подробнее: https://dev.1c-bitrix.ru/rest_help/).
RetailCRM
Адаптер работает через Rest API v. 5 (см. подробнее: https://www.retailcrm.ru/docs/Developers/ApiVersion5).
Google Adwords
Адаптер использует API отчетов (см. подробнее: https://developers.google.com/adwords/api/docs/appendix/reports/all-reports).
Google Spreadsheets
Адаптер использует API к таблицам Google (см. подробнее: https://developers.google.com/sheets/api/).

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

Создание нового коннектора

Для создания нового коннектора необходимо нажать на «плюс» в меню около раздела «Загрузка данных».

_images/connectors_04a.png

Откроется окно создания нового коннектора.

_images/kon_new.png

Во всплывающем окне необходимо ввести название нового коннектора и выбрать его тип (1С, MS SQL Server, MySQL, OData.v3, Oracle, PostgreSQL, XLS, коннектор к БД по ODBC и др.).

_images/kon_list_types.png

XLS-коннектор

Если выбран XLS-коннектор, необходимо, нажав на кнопку «Выберите файл», выбрать нужный файл в формате xls или xlsx, который закрепляется за коннектором. Когда появится надпись «Файл загружен» под кнопкой выбора файла, нажать кнопку «ОК». Начнется первичная обработка данных системой.

_images/connectors_04.png

Разные листы одного xls-файла будут рассмотрены системой как разные таблицы с данными. При этом названия таблиц будут совпадать с названиями листов в файле.

Обратите внимание, что при загрузке данных первая строка таблицы рассматривается как заголовки столбцов (названия будущих показателей в системе). Поэтому столбцы, в которых первая строка пуста, не будут загружены.

Если xls-файл размещен в интернете, то для загрузки можно указать его адрес. Для этого нужно переключить «Тип подключения» с «Файл» на «URL» и ввести адрес.

_images/connectors_56.png

Чекбокс «Дополнительные заголовки» позволяет задать дополнительные заголовки HTTP-запроса к источнику данных.

XML-коннектор

Коннектор позволяет загружать данные из xml-файла. Кроме того, XML-коннектор позволяет использовать XML API системы (см. подробнее раздел Компонент «XML API»).

Перед началом работы необходимо загрузить xml-файл или выбрать тип подключения URL (в окне ввода URL необходимо ввести адрес размещения файла).

_images/xml-conn-img.png

Чекбокс «Дополнительные заголовки» позволяет задать дополнительные заголовки HTTP-запроса к источнику данных.

После того, как источник открыт, необходимо нажать на плюс возле кнопки «Выбрать таблицу». Далее необходимо заполнить наименование таблицы, а в поле «Запрос к источнику данных» надо добавить запрос в формате XPath. Этот запрос определяет путь к таблице. Спецификацию языка XML Path (XPath) версии 1.0 см. подробнее: http://citforum.ru/internet/xpath/index.shtml.

ODBC-коннектор

Для настройки подключения к базе данных по ODBC в поле «Коннектор к» необходимо выбрать значение «БД по ODBC». После этого необходимо заполнить поле «Название».

Параметр «Способ предпросмотра» влияет на объем предварительно загружаемых данных и, как следствие, на время открытия коннектора и загрузки данных.

_images/connectors_58.png

В этом поле выбирается способ предпросмотра таблиц в БД:

  • Все таблицы и данные — загружается список всех таблиц в БД, после этого асинхронно подгружается содержимое каждой таблицы (позволяет видеть количество элементов в таблицах).
  • Все таблицы и данные (доступные пользователю) — загружается список всех доступных пользователю таблиц БД (проверка на доступность может занимать длительное время), после этого асинхронно подгружается содержимое каждой таблицы (позволяет видеть количество элементов в таблицах).
  • Только названия таблиц — загружаются названия всех таблиц БД, содержимое загружается только для выбранных таблиц.
  • Только названия таблиц (доступные пользователю) — загружаются названия всех доступных пользователю таблиц БД (проверка на доступность может занимать длительное время), содержимое загружается только для выбранных таблиц.
  • Только настроенные таблицы — при создании нового коннектора таблиц вообще не будет, для загрузки необходимо писать sql-запрос. Если коннектор уже настроен (например, при загрузке модуля), то будут загружены уже настроенные таблицы и ничего кроме них. Самый быстрый вариант загрузки.

Для БД с большим числом записей рекомендуется выбирать способ «Только названия таблиц».

В случае, если в поле «Подключение» выбрано значение «строка подключения», то в текстовое поле ниже необходимо ввести строку подключения.

_images/connectors_57.png

Строка подключения имеет вид:

DRIVER=PostgreSQL Unicode;SERVER=servername;DATABASE=dbname;UID=username;PWD=password;SCHEMA=

Параметры:

  • Servername — имя сервера.
  • Dbname — имя БД.
  • Username — пользователь БД.
  • Password — пароль к БД.

По умолчанию схема БД - public.

Если же в поле «Подключение» выбрано значение «указанные параметры», то потребуется выбрать подходящий драйвер в поле «Драйвер», а также ввести параметры:

  • Имя БД.
  • Сервер БД.
  • Пользователь БД.
  • Пароль к БД.
  • Схема БД (по умолчанию - public).

Oracle, MS SQL Server, Firebird, PostgreSQL

Коннекторы к СУБД Oracle, MS SQL Server, Firebird или PostgreSQL работают через ODBC-драйвер. Для создания коннектора в поле «Коннектор к» необходимо указать соответствующее значение (название СУБД). Остальные настройки повторяют описанные в предыдущем пункте (см. подраздел ODBC-коннектор).

OData-коннектор

Коннектор предназначен для работы с сервисами по протоколу OData версии 3.0.

После того, как в окне создания нового коннектора выбран тип «OData.v3», в поле URL необходимо указать адрес сервиса для подключения и нажать кнопку «ОК».

_images/connectors_36.png

Проверить подключение можно с помощью тестового адреса: http://services.odata.org/V3/OData/OData.svc.

Для доступа к сервису, использующему Basic Auth для аутентификации, имя пользователя (username) и пароль (userpass) необходимо включить в строку адреса в формате:

http://username:userpass@odata.service/odata.svc

1С-коннектор

Для настройки подключения к 1С понадобится загрузить несколько файлов на компьютер, где установлен 1С.

При создании коннектора в поле «Коннектор к» нужно выбрать значение «1С» и заполнить поле «Название» для последующей работы с коннектором.

Выбор способа предпросмотра таблиц из базы 1С влияет на объем загружаемых данных и скорость загрузки коннектора:

  • Все таблицы и данные — загружается список всех таблиц, после этого асинхронно подгружается содержимое каждой таблицы (позволяет видеть количество элементов в таблицах).
  • Только названия таблиц — загружаются названия всех таблиц 1C, содержимое загружается только для выбранных таблиц.
  • Только настроенные таблицы — имеет смысл только для уже настроенного коннектора: будут загружены уже настроенные таблицы и ничего кроме них. Самый быстрый вариант загрузки.

После заполнения полей «Коннектор к», «Название» и выбора способа предпросмотра можно нажать кнопку «ОК».

_images/1c_01.png

Затем система предложит перейти в настройки коннектора для скачивания файлов.

_images/1c_02.png

Для этого нужно нажать шестеренку с настройками коннектора.

_images/1c_03.png

И загрузить zip-архив на компьютер, где установлен 1С.

_images/1c_04.png

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

Дальнейшие действия нужно произвести на компьютере с загруженным архивом и 1С:

  1. Распаковать архив. Копия этой инструкции содержится в файле INSTALL.html в составе архива.
  2. В файле «connector.conf» нужно указать путь к базе 1С в параметре path_1c (например, C:\1C\1Cv82\Бухгалтерия\). Его можно узнать в стартовом окне 1С в свойствах нужной базы. Если на компьютере несколько баз 1С, то на каждую нужно создавать отдельный коннектор. Если 1С использует SQL базу данных, то необходимо указать название сервера и название базы в параметрах srvr_1c и ref_1c соответственно.
  3. Также в файле «connector.conf» необходимо указать логин и пароль для доступа к нужной базе 1С, а затем сохранить файл.
  4. После этого можно запустить файл «connector1c.exe», при запросе брандмауэра разрешить приложению доступ в сеть.

Если при последнем шаге возникает ошибка «Не найдена библиотека MSVCR100.dll» (например, это может происходить на Windows Server 2008 и в старых версиях Windows), необходимо установить Visual C++ 2010 Redistributable Package (x86), который можно бесплатно скачать с сайта Microsoft (http://www.microsoft.com/en-us/download/details.aspx?id=5555). Важно установить именно эту, x86, версию пакета, даже для x64 операционной системы.

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

_images/1c_06.png

Рядом с exe-файлом появится log-файл с журналом событий «connector.log». Коннектор готов к работе, а о его активности и ошибках можно узнать из log-файла.

_images/1c_07.png

После того, как стало понятно что коннектор работает, его рекомендуется добавить как сервис, чтобы он продолжал работу после перезапуска Windows. Для этого нужно сначала выключить запущенный коннектор (нажать правой кнопкой мыши на иконку приложения в трее и выбрать «Quit»), а затем запустить от имени администратора файл «add_service.bat», расположенный в папке коннектора. Узнать статус сервиса, остановить или снова запустить его можно при помощи других bat файлов в той же папке.

Теперь можно нажать «Выбрать таблицы» внутри коннектора и перейти к выбору данных для загрузки (см. следующий раздел).

_images/1c_05.png

Настройка таблиц для загрузки данных

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

_images/337.png

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

_images/338.png

По нажатию на любую из таблиц в правой области экрана появится информация о выбранной таблице.

_images/connectors_06.png

Для изменения параметров таблицы нужно кликнуть на иконку шестеренки, расположенную справа от названия таблицы.

_images/connectors_46.png

Откроется окно редактирования таблицы. Здесь можно изменить название таблицы.

_images/connectors_59.PNG

Опция «Синхронизировать удаление» означает, что при удалении записи в источнике данных эта запись будет удалена из системы. Если на запись уже есть ссылки и удаление провести невозможно, то это приведет к ошибке загрузки данных.

Опция «Пропускать дубликаты» означает, что дубликаты по ключам таблицы не приведут к ошибке загрузки, а будут пропущены. Пропуск дубликатов производится после обработки вычисляемых полей, из нескольких значений берется первое, кроме полей с видом показателя «Значение» и галочкой в чек-боксе «Поддержка синонимов», который позволяет указать в поле, на которое мы ссылаемся, несколько значений через перевод строки.

Создание новой таблицы

Помимо существующих таблиц в сохраненном коннекторе можно создать новую таблицу. Для этого нужно нажать на плюсик около селекта «Выбрать таблицы».

_images/339.png

Появится всплывающее окно настроек новой таблицы.

_images/340.png

В это окне необходимо настроить добавляемую таблицу:

  • Название таблицы — в этом поле задается название таблицы, которое будет отображаться в списке слева и по умолчанию использоваться как название справочника при его создании.

  • Чекбокс «Загрузка в справочник» — справочник нужен для того, чтобы ссылать на записи этой табилцы из других таблиц. Также эта опция учитывается при обновлениии данных. В один справочник можно загрузить несколько таблиц.

  • Чекбокс «Синхронизировать удаление» — при удалении записи в источнике данных эта запись будет удалена из системы. Если на запись уже есть ссылки и провести удаление невозможно, то это приведет к ошибке загрузки данных.

  • Чекбокс «Пропускать дубликаты» — дубликаты по ключам таблицы не приведут к ошибке, а будут пропущены. Пропуск дубликатов производится после обработки вычисляемых полей, из нескольких значений берется первое (кроме полей не-ссылок с отметкой «Обработка синонимов», где значения объединяются через перевод строки).

  • Выбор области с данными — кнопки выбора задают поля ниже, предназначенные для выборки данных с листа xls файла. Есть два основных способа представления данных в электронных таблицах: реестры и таблицы.

    1. Кнопка «Реестр».

Если данные расположены в «реестре», и при загрузке необходимо чтобы каждый столбец в xls-файле попал в отдельный показатель:

  A B C D E F
1 Выгрузка №123          
2   Номер Дата Тип документа Контрагент Сумма
3   000001 7/17/2014 Поступление Продуктовая база 32000
4   000019 7/17/2014 Поступление Электротовары 309000
5   000002 7/18/2014 Поступление Электротовары 270500
6   000022 7/27/2014 Реализация Алан 61800
7   000002 7/31/2014 Ввод остатков   0

Для загрузки данных из такой таблицы, если нужны все данные, достаточно указать в поле «Данные по строкам» (диапазон B3:F3 — это первая строка с данными). Если заранее известно, сколько строк нужно, то можно указать прямоугольный диапазон (например, B3:F5 — так будут загружены первые три строки). Если необходимо пропустить часть столбцов, то можно указать несколько диапазонов, каждый на своей строке (например, для загрузки только полей «Номер», «Контрагент» и «Сумма» нужно задать диапазоны B3 и D3:F3).

  1. Кнопка «Таблица».

Второй случай - это данные в «таблице», где необходимо «развернуть» часть данных из разных столбцов в один показатель:

  A B C D E F
1     2010 г.   2011 г.  
2     План Факт План Факт
3   Галицкое 15 16 17 17
4   Самарское 110 97 105 107
5   Троицкое 55 59 60 61
6   Садовое 5 7 6 6

В этом случае необходимо загрузить все числовые данные в один показатель, чтобы его признаками были период, план/факт и отделение. Для этого нужно указать данные по строкам (отделения, они «продолжаются» вниз): B3, данные по столбцам (они «продолжаются» вправо): C1:C2, и табличные данные (тут достаточно указать левую верхнюю ячейку): C3. В результате при загрузке данные «развернутся» в такую таблицу:

field_1 field_2 field_3 field_4
Галицкое 2010 г. План 15
Галицкое 2010 г. Факт 16
Галицкое 2011 г. План 17
Галицкое 2011 г. Факт 17
Самарское 2010 г. План 110
Самарское 2010 г. Факт 97
Самарское 2011 г. План 105
Самарское 2011 г. Факт 107

После выбора типа области с данными нужно заполнить оставшиеся поля:

  • Лист (для реестра и таблицы) — в этом поле вводится название листа, из которого берутся данные. По умолчанию используется первый лист. Также возможно указать «*», чтобы загрузить все листы, или диапазоны «1,3-7», для загрузки определенных листов. В случае загрузки из нескольких листов название листа будет доступно как еще одно (последнее) поле в таблице.
  • Данные по строкам (для реестра и таблицы) — в этом поле вводятся ячейки (например, «A3») или диапазоны (например, «А3:D3»), каждый дипазон или ячейка на новой строке. Данные из этих ячеек будут считываться по строкам. Если заданный диапазон покрывает только одну строку, то считывание будет продолжаться вниз до первой полностью пустой строки.
  • Данные по столбцам (только для таблицы) — в этом поле вводятся ячейки (например, «A3») или диапазоны (например, «А3:A7»), каждый дипазон или ячейка на новой строке. Данные из этих ячеек будут считываться по столбцам. Если заданный диапазон покрывает только один столбец, то считывание будет продолжаться вправо до первого полностью пустого столбца.
  • Табличные данные (только для таблицы) — в этом поле вводится ячейка начала данных (например, «A3») или диапазоны (например, «А3:A7»). Табличные данные считываются в заданной области построчно, «разворачивая» эту область в один ряд данных. Если заданы и данные по строкам, и данные по столбцам, то достаточно ввести левую верхнюю ячейку данных.
  • Фиксированные данные (для реестра и таблицы) — в этом поле вводятся ячейки (например, «A3») или диапазоны (например, «А3:A7»), каждый дипазон или ячейка на новой строке. Данные из этих ячеек будут повторяться в каждой строке результирующих данных. Эту функцию необходимо использовать в том случае, если на листе в некоторых ячейках есть информация, характеризующая все данные на листе.

После заполнения всех полей необходимо нажать на кнопку «ОК». В коннектор будет добавлена новая таблица с выбранными данными, далее с ней можно работать также, как и с другими таблицами.

_images/341.png

Создание новой таблицы в ODBC-коннекторе

Создать новую таблицу в ODBC-коннекторе можно с помощью произвольного sql-запроса. Для этого нужно нажать на плюсик около селекта «Выбрать таблицы».

_images/344.png

В появившемся окне в поле «Название» нужно ввести название таблицы, а в поле «Запрос к источнику данных» написать sql-запрос к БД.

_images/342.png

После нажатия на кнопку «ОК» новая таблица появится в перечне выбранных и далее с ней можно работать так же, как и с другими таблицами.

_images/343.png

Загрузка таблицы в справочник

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

Если в чекбоксе «Загрузка в справочник» поставить галочку, то таблица будет загружена в справочник. Каждая строка таблицы будет являться элементом справочника.

Если в селекте «Справочник» выбран вариант «Новый», то для загружаемой таблицы будет создан новый справочник. Название этого справочника будет таким же, как название таблицы, (его можно изменить в поле «Название таблицы»).

Для того, чтобы загрузить таблицу в существующий справочник, нужно в селекте «Справочник» выбрать соответствующее значение.

_images/connectors_48.png

Для окончания настройки таблицы необходимо нажать «ОК».

_images/connectors_49.png

Например, при загрузке одностраничного файла «Товары.xls» будет создан справочник «Товары», элементами которого будут строки из этого файла, а также показатель «Товары» типа «Справочник», который ссылается на справочник «Товары».

Когда создается любой справочник, одно из полей рассматривается как название всей строки.

Например, таблица с товарами имеет такую структуру:

Товар Бренд Категория
Apple iPhone 5C 32Gb white Apple iPhone 5C
Apple iPhone 4 8Gb black Apple iPhone 4

Элементом справочника является одна строка, и системе нужно указать, какое из полей использовать в качестве ее названия. Для этого нужно настроить загрузку названия в показатель «Название». В данном примере поле «Товар» должно загружаться в показатель «Название».

Это необходимо для того, чтобы когда потребуется вывести информацию про конкретный элемент справочника (товар), можно было обратиться к элементу справочника по названию, например «Apple iPhone 5C 32Gb white».

Если ни одно поле не загружается в показатель «Название», то система будет выводить элементы справочника по id. Другими словами, в отчете вместо «Apple iPhone 5C 32Gb white» будет выводиться назначенное системой число.

Настройка показателей для загрузки данных

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

_images/connectors_07.png

Слева в таблице столбцы:

  • С чек-боксами для выбора загружаемых показателей.
  • «Название» — название поля из загружаемой таблицы (берется из первой строки таблицы).
  • «Тип» — указан текущий тип данных показателя.
  • «Показатель» — указано название показателя в системе, в который будут загружаться данные.
  • «Ред.» — кнопки редактирования настроек показателей.

Справа расположены в транспонированном виде первые несколько строк с данными из выбранной таблицы.

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

Если показателей в таблице много, то чек-боксы можно все выделить или, наоборот, все снять. Это делается с помощью галочки в верхнем чек-боксе:

_images/connectors_08.png

Возможны разные способы загрузки данных в показатели системы:

  1. Значения показателя загружаются непосредственно из ячеек загружаемой таблицы в новый показатель (см. подраздел «Создание нового показателя»).
  2. Значения показателя загружаются непосредственно из ячеек загружаемой таблицы в показатель, существующий в системе (см. подраздел «Запись данных в существующие показатели»).
  3. Значения показателя выбираются по ссылке из справочника, который существует в системе (см. подраздел «Выбор значений из существующего справочника по ссылке»).
  4. Значения показателя выбираются по ссылке из другой таблицы того же источника данных (см. подраздел «Ссылка на другую таблицу»).
  5. Значения показателя вычисляются путем преобразования данных, полученных из того же источника данных (см. подраздел «Вычисляемые поля в коннекторах»).

В системе реализована возможность как записывать данные в уже существующие показатели, так и создавать новые.

Кроме того, существует разделение по типам данных показателей. Типы данных показателей описаны в подразделе «Тип значений показателя». При обработке данных из источника система автоматически определяет тип данных в каждом из столбцов.

Если в системе уже существует показатель с таким же названием, какое указано в первой строке рассматриваемого столбца загружаемой таблицы, то система автоматически («по умолчанию») подставляет его как показатель, соответствующий данному столбцу таблицы.

Для настройки показателя и его типа для загрузки данных необходимо нажать на кнопку «Ред.».

_images/connectors_09.png

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

_images/connectors_10.png

Создание нового показателя

Для создания нового показателя необходимо выбрать опцию «Новый» в поле «Показатель».

Далее необходимо выбрать тип данных в селекте «Тип показателя».

_images/connectors_13.png

В поле «Название показателя» вводится название нового показателя. По умолчанию название совпадает с названием поля таблицы, указанным в первой строке загружаемой таблицы.

Если типом данных показателя указан «Справочник», появляется возможность указать не только название показателя, но и справочник, из которого он будет брать свои значения.

_images/connectors_31.png

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

_images/connectors_32.png

Для создания нового справочника необходимо выбрать значение «Новый».

_images/connectors_30.png

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

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

Запись данных в существующие показатели

Для загрузки данных в существующий показатель необходимо выбрать значение «Выбрать из существующих» в поле «Показатель».

_images/connectors_11.png

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

_images/connectors_12.png

Показатели сгруппированы по типам данных, а также по ним работает поиск.

Выбор значений из существующего справочника по ссылке

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

Например, в системе есть справочник «Справочник организаций». Каждый элемент справочника имеет показатели «Название» и «id организации».

_images/kon_sprav_org.png

Необходимо загрузить в систему список контактов сотрудников. В источнике данных все организации заданы через их идентификаторы (id).

_images/kon_set_table.png

Для того чтобы связать список контактов сотрудников с имеющимся справочником организаций, нужно создать показатель «Организация, где работает сотрудник», ссылающийся на «Справочник организаций».

_images/kon_pokaz_org.png

Загрузку поля «Организация (id)» необходимо настроить особым образом, нажав на «Ред.». В поле «На какое поле ссылаемся» необходимо выбрать показатель, по которому будет производиться поиск соответствующего элемента справочника. В справочнике «Справочник организаций» это поле «id организации». Далее нужно установить соответствие.

_images/kon_set_org.png

В настройках полей коннектора отображается и показатель «Организация, где работает сотрудник», в который загружаются данные об организации сотрудника, и, через стрелочку, показатель «id организации», который служит идентификатором при установлении соответствия между загружаемыми данными и элементами справочника в системе.

_images/kon_set_table_2.png

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

_images/kon-table-2.png

В поле «Организация, где работает сотрудник» отображаются названия элементов справочника «Справочник организаций», а не «id организаций», как это было в источнике данных.

Ссылка на другую таблицу

Если в одной из таблиц определенного источника данных в каком-либо столбце содержатся значения, которые выбираются из другой таблицы того же источника, то для соответствующего этому столбцу показателя нужно:

  • Выбрать вид показателя не «Значение», а «Ссылка на таблицу».
  • Указать таблицу источника данных, из которой выбираются значения.
  • Указать поле таблицы, на которое должен ссылаться показатель (то поле таблицы, из которого выбираются значения).

Поле таблицы, на которое ссылается показатель, должно быть уникальным (каждое значение этого показателя единственно в таблице источника, из которой выбираются значения). Это необязательное поле. Если его не задать, то соответствие будет определятся автоматически по ключу таблицы, на которую ссылается показатель.

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

Рассмотрим пример использования ссылки на другую таблицу того же источника.

Например, в таблице «Заявки» содержатся данные.

_images/connect-link-1.png

Вместо названий компаний указаны их идентификаторы (id).

В таблице «Компании» содержатся и id, и названия компаний. Поскольку поле «id компании» уникально, оно однозначно определяет название компании для каждой из заявок.

_images/connect-link-2.png

Таблица «Компании» загружается в новый справочник, которому автоматически будет присвоено название «Компании» (такое же, как название загружаемой таблицы). Данные из столбца «Название компании» загружаются в существующий системный показатель «Название», из столбца «id компании» - в новый показатель «id компании» типа «Строка».

_images/connect-link-3-1.png

После настройки таблицы «Компании», нужно сохранить коннектор (чтобы при настройке таблицы «Заявки» можно было использовать сведения о настройках таблицы «Компании»).

Таблица «Заявки» загружается не в справочник, а в обычный реестр. Данные из столбца «id заявки» загружаются в новый показатель «id заявки», данные из столбца «Название заявки» загружаются в новый показатель «Название заявки».

_images/connect-link-3-2a.png

Вместо столбца «id компании» должны быть загружены значения нового показателя «Компании» типа «Справочник», ссылающегося на справочник «Компании». На скриншоте ниже показаны параметры настройки столбца «id компании».

_images/connect-link-4-1.png

Затем нужно сохранить настройки коннектора.

_images/connect-link-3-2.png

И загрузить данные.

_images/257.png

После этого можно просмотреть реестр «Заявки компаний», содержащий загруженные данные.

_images/connect-link-7.png

В поле «Компании» отображаются названия элементов справочника «Компании», а не «id компании», как это было в источнике данных.

Настройка параметров загрузки

В окне настройки показателя можно указать дополнительные параметры загрузки:

  • «Обязательное» — при загрузке будет проверяться наличие данных в каждой ячейке этого столбца. Если в каких-то ячейках данных нет, будет выведено сообщение об ошибке. В этом случае таблица не будет загружена.
  • «Ключ» — при загрузке будет проверяться уникальность (единственность) значения этого показателя (либо сочетания двух и более ключевых показателей). Это позволяет избежать дублирования данных в системе. При каждой новой загрузке данных из источника будет происходить обновление существующих данных в соответствии с заданным ключом.
_images/connectors_15.png

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

  • «Разрешено добавление новых значений» — все встреченные новые значения в столбце будут добавлены в справочник. Важно не забывать про эту настройку при первой загрузке показателя-справочника.
  • «Пропускать строку при ошибке» — при ошибке (значение в ячейке этого показателя не встречается в справочнике в системе) будет пропущена строка, содержащая эту ячейку, целиком. Все остальные строки таблицы будут загружены.
  • «Пропускать поле при ошибке» — при ошибке (значение в ячейке этого показателя не встречается в справочнике в системе) будет пропущена ячейка с этим показателем (для загружаемого в этой строке объекта данный показатель будет не определен). Данные для остальных показателей из этой строки и остальные строки таблицы будут загружены.
_images/connectors_16.png

Справа от названий чек-боксов указаны иконки, которые будут отображаться в столбце «Тип» в строке показателя в левой таблице основной рабочей области окна для визуализации настроек коннектора.

Вычисляемые поля в коннекторах

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

Это может быть необходимо, если в данных содержатся ошибки.

Например, лишние пробелы в названиях элементов будущего справочника. Автоматически система воспримет названия «Apple» и «Apple » (с пробелом в конце) как два разных элемента справочника брендов, хотя очевидно, что подразумевался один и тот же бренд. Вручную обрабатывать огромный справочник товаров долго и тяжело, а система может сделать это автоматически при загрузке данных.

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

Кроме того, может возникнуть необходимость объединить несколько полей в одно (например, фамилию, имя и отчество - в одно поле «ФИО») или, наоборот, разделить одно поле из базы данных на два и более показателей в системе.

Можно задавать вычисления как для уже существующих полей в коннекторе, так и создавать новые, полностью вычисленные поля.

Задание вычисления у существующего поля

Если необходимо задать вычисление уже существующего в коннекторе поля, нужно в окне редактирования настроек загружаемого показателя поставить галочку в чек-боксе «Задать преобразование».

_images/connectors_37.png

Появится текстовое поле «Программа для вычисления», где на языке Python (см. подробнее: https://docs.python.org/2/) можно задать необходимые преобразования. Автоматически добавляется преобразование, обрезающие лишние пробелы.

_images/connectors_38.png

Текущее (редактируемое) поле доступно в переменной field, все остальные поля доступны в переменной fields и f, необходимо указание названия.

Рядом с названием редактируемого поля доступна подсказка (по клику по серому вопросительному знаку).

_images/connectors_39.png

Создание нового вычисляемого поля

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

_images/connectors_40.png

Появится всплывающее окно, аналогичное окну настройки загружаемого показателя. В нем будет текстовое поле «Программа для вычисления» и обязательное для заполнения поле «Название поля», куда нужно ввести название этого поля.

_images/connectors_41.png

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

После задания всех настроек вычисляемого поля нужно нажать в правом нижнем углу всплывающего окна кнопку «ОК» (или «Отмена», если сохранять внесенные изменения не нужно).

_images/connectors_42.png

Поле будет добавлено в таблицу с показателями для загрузки данных последним.

_images/connectors_43.png

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

Заполнение поля для вычисления

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

Программа оперирует одной строкой исходных данных, причем можно обращаться к любому полю, даже если оно не отмечено для загрузки. Все поля доступны в переменной fields, или в ее коротком синониме f. Значение переменной — это словарь, где ключи — названия полей. При вводе доступно автодополнение, оно включается после того как была набрана открывающая скобка. Нужно вернуть значение при помощи оператора return.

Например, так можно обрезать пробелы в начале и конце текстового поля под названием full_name:

return fields["full_name"].strip()

Или разбить поле по дефису и вернуть первую часть:

return f["full_name"].split('-')[0]

Или отрезать последние два символа строки:

return f["some_name"][:-2] # отрезать первые два символа: [2:]

Следует иметь ввиду, что тип значения, который поступает на обработку, определяется типом в источнике данных, и не зависит от типа показателя. Значения типа datetime.date приводятся к типу datetime.datetime.

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

Если задается программа преобразования существующего поля, то можно обращаться к нему не указывая название, просто через переменную field. Например, так можно привести переменную к правильной единице измерения:

if field.endswith("m"):
    return int(field.rstrip("m ")) * 1024
else:
    return int(field)

Доступен модуль регулярных выражений re — с его помощью можно извлекать фрагменты текста или производить замены. В этом примере извлекается число из поля index, которое, возможно, содержит и другую информацию:

m = re.search("\d+", f["index"])
if m:
    return m.groups()[0]

Также можно использовать объекты из модуля datetime: timedelta для расчета разницы между моментами времени, и datetime для представления даты и времени. Например, используя встроенную переменную now, можно посчитать, сколько дней прошло с момента создания объекта:

return (now - f["created"]).days

Также есть переменная date, которая содержит текущую дату.

А с помощью функции datetime.strptime можно распознать дату в любом формате, например:

return datetime.strptime(fields["date"], "%Y %m %d")

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

if (now - f["updated"]).seconds > 2 * 3600:
    raise Skip
else: # возвращаем без изменений
    return f["updated"]

Сохранение коннектора

После того как были заданы настройки для загрузки всех нужных показателей во всех интересующих таблицах, можно их сохранить. Для этого нужно нажать кнопку «Сохранить» справа от кнопки «Загрузить данные» в верхнем меню страницы.

_images/connectors_04b.png

Либо можно сразу переходить к загрузке данных в систему (кнопка «Загрузить данные»). Настройки коннектора сохранятся автоматически.

_images/connectors_04c.png

При сохранении коннектора (при загрузке данных или по кнопке «Сохранить») в системе создаются все новые показатели.

Загрузка данных

По нажатию на кнопку «Загрузить данные» происходит загрузка всех выбранных данных в систему. Обратите внимание, что загрузка таблиц с большим числом строк может занять значительное время.

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

Обновление данных

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

Результат загрузки

После успешной загрузки данных выводится сообщение с информацией о загрузке: сколько записей создано, обновлено и удалено (при повторных загрузках и с галочкой Синхронизировать удаление), по каждой из таблиц.

_images/243z.PNG

Подробную информацию о загрузке можно просмотреть в «Журнале загрузок».

_images/242z.PNG

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

Загрузка одной таблицы

В системе также существует возможность загрузить только отображаемую на экране таблицу, даже если для загрузки через коннекторы было выбрано больше одной таблицы.

Для этого необходимо в выпадающем меню по стрелке вниз на кнопке «Загрузить данные» нажать «Только выбранную таблицу».

_images/317.png

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

Все настройки коннектора для других таблиц сохранятся в системе.

Эта функция нужна, например, если одно из полей таблицы должно ссылаться на другую таблицу (например поле «Магазин» в таблице «Продажи» ссылается на таблицу «Магазины», находящуюся в том же файле. Можно либо сделать два отдельных коннектора для каждой из таблиц, либо сначала загрузить отдельно таблицу с магазинами, а затем — таблицу «Продажи» со ссылкой на «Магазины».

Настройка периодической загрузки данных

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

_images/310.png

Откроется окно настройки периодической загрузки данных.

В левом столбце «Расписание» указано время и дни, когда должна производиться загрузка, в правом столбце «Таблицы» указано, какие таблицы необходимо загружать в указанное время. Чтобы включить или выключить созданный шаблон периодической загрузки, нужно поставить или снять галочку в чек-боксе рядом с настройкой времени.

_images/311.png

Чтобы указать время и дни, когда необходимо производить загрузку, нужно ввести их в поле «Расписание». Подсказка о том, как это правильно делать, появляется при нажатии на вопросительный знак рядом с заголовком этого столбца.

_images/312.png

Чтобы настроить то, какие таблицы необходимо загружать в это время, нужно нажать на иконку шестеренки в столбце «Таблицы» и галочками в чек-боксах в выпадающем окошке выбрать нужные. В список попадут только те таблицы из источника данных, которые были отмечены галочками как загружаемые.

_images/313.png

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

_images/314.png

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

_images/315.png

Чтобы добавить новую строку с настройкой, нужно нажать на синюю кнопку «+» в нижней части окна.

Чтобы вернуться к работе с коннекторами после завершения необходимых настроек, нужно нажать кнопку «ОК» в нижней части окна (либо кнопку «Отмена», если сохранять измененные настройки не нужно).

_images/316.png

Просмотр загруженных данных

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

_images/244.png

Откроется реестр с загруженными данными в режиме просмотра (подробнее про работу в этом режиме см. подраздел Просмотр отчетов, форм, реестров).

Для возвращения к работе с коннектором нужно кликнуть на эту же кнопку.

_images/245.png

Открытие и работа с сохраненным коннектором

Для работы с существующими коннекторами нужно нажать на иконку «Открыть», расположенную слева от поля, где выводится название текущего коннектора, из выпадающего списка выбрать нужный коннектор и кликнуть по его названию. Через некоторое время загрузится выбранный коннектор со всеми настройками. Дальнейшая работа аналогична работе с новым коннектором.

_images/305.png

Если необходимо обновить настройки коннектора в системе (обновить файл с данными, сменить название коннектора), необходимо нажать кнопку «Настройки» в верхнем меню окна.

_images/306.png

После этого откроется всплывающее окно, аналогичное тому, что появлялось при создании нового коннектора. В нем можно переприложить файл, из которого будут загружаться данные, ввести новое название для коннектора, скачать текущий файл с данными.

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

Для возврата к работе с коннектором нужно нажать кнопку «ОК», чтобы сохранить изменения (или «Отмена», если сохранять внесенные изменения не нужно).

Важно: если был обновлен файл с данными, нужно сначала нажать кнопку «Сохранить» в верхнем меню страницы и только после этого можно приступать к загрузке данных (кнопка «Загрузить данные» в верхнем меню страницы).

Также изменить название коннектора можно в поле в верхнем меню на странице работы с коннектором. После изменения названия нужно нажать кнопку «Сохранить» слева от этого поля.

_images/307.png

Журнал загрузок

Журнал загрузок показывает какие данные в каких коннекторах загружались, когда это было, объем данных, ошибки при загрузке, а также предоставляет возможность просмотра загруженных таблиц.

Для того, чтобы просмотреть историю загрузок данных, нужно выбрать в главном меню пункт «Журнал загрузок».

_images/246.png

Откроется страница с реестром загрузок из всех коннекторов.

_images/247z.PNG

В верхней части страницы расположены кнопки:

  • Обновить журнал (предназначена для обновления информации на странице).
  • Сброс настроек размеров заголовков (сбрасывает размеры заголовков до настроек по умолчанию).
  • Экспортировать в xls (экспортирует журнал загрузок в файл MS Excel).
_images/248z.PNG

Работа с таблицей осуществляется так же, как с другими таблицами (отчетами и реестрами) - можно менять ширину и высоту заголовков столбцов, применять сортировку по клику на заголовок и т.д.

По клику на ссылку в столбце «Коннектор» откроется страница этого коннектора.

_images/249.png

По клику на ссылку в столбце «Обновляемые таблицы» откроется реестр с загруженными из выбранной таблицы данными.

_images/250.png

Если в столбце «Статус загрузки данных» указано, что есть ошибки, то эти ошибки выводятся в столбце «Сообщение об ошибках».

_images/251z.PNG

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

_images/252.png

Если после загрузки данных коннектор был удален, то запись о загрузке останется, но в столбцах «Коннектор» и «Обновляемые таблицы» будет пусто.

_images/253z.PNG

Удаление коннектора

Для удаления сохраненного в системе коннектора необходимо нажать на кнопку «Удалить коннектор» в правом верхнем углу страницы.

_images/308.png

Это действие требует подтверждения во всплывающем окне. Также в этом окне нужно указать, необходимо ли удалить только коннектор, или коннектор со всеми справочниками, показателями, данными, которые используются в системе только в этом коннекторе. Если второе, то нужно поставить галочку в чек-боксе «Удалить вместе с данными».

_images/309.png

Для подтверждения действия удаления нужно нажать кнопку «Удалить», для возврата к работе с системой — кнопку «Отмена».

При удалении коннектора и данных из системы данные в источнике (файле, базе данных), из которого они загружены, не пострадают.