Компонент «Коннекторы»

Содержание

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

Платформа 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
Адаптер работает через RestAPI v5 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/kon_menu.png

На открывшейся странице есть верхнее меню с кнопками, которые позволяют:

  • загрузить данные;
  • создать новый коннектор;
  • открыть коннектор;
  • сохранить коннектор;
  • открыть настройки коннектора;
  • открыть настройки периодической загрузки данных;
  • перейти к просмотру загруженных таблиц;
  • удалить коннектор (кнопка видна только при работе с уже сохраненными в системе коннекторами).
_images/kon_menu_bar.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-файла будут рассмотрены системой как разные таблицы с данными. При этом названия таблиц будут совпадать с названиями листов в файле.

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

В случае если Excel-файл размещен в интернете, можно указать его адрес. Для этого нужно переключить «Тип подключения» с «Файл» на «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/connectors_05.png

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

_images/connectors_05-1.png

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

_images/connectors_45.png

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

_images/connectors_44.png

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

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

_images/connectors_06.png

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

_images/connectors_46.png

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

_images/connectors_59.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

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

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

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

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

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

_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

Показатель «Организация, где работает сотрудник» ссылается на справочник «Справочник организаций»:

_images/kon_pokaz_org.png

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

_images/kon_set_table.png

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

_images/kon_set_org.png

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

_images/kon-table-2.png

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

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

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

_images/connectors_14.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_17.png

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

_images/connectors_17-1.png

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

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

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

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

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

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

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

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

_images/kon_result.png

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

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

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

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

_images/connectors_33.png

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

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

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

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

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

_images/connectors_19.png

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

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

_images/connectors_20.png

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

_images/connectors_21.png

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

_images/connectors_22.png

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

_images/connectors_23.png

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

_images/connectors_24.png

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

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

_images/connectors_24-1.png

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

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

_images/connectors_34.png

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

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

_images/connectors_35.png

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

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

_images/connectors_25.png

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

_images/connectors_26.png

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

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

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

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

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

_images/connectors_26-1.png

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

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

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

_images/kon_journal.png

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

_images/journal_01.png

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

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

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

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

_images/journal_04.png

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

_images/journal_05.png

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

_images/journal_08.png

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

_images/journal_06.png

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

_images/journal_07.png

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

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

_images/connectors_27.png

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

_images/connectors_28.png

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

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