Внешние источники данных. Часть 4 Управление внешними источниками данных
Внешние источники данных .Часть 4
4. Управление внешними источниками данных
Перед тем как начать использование данных из внешних источников в прикладном решении, следует настроить параметры подключения используемых внешних источников. Для этого служит стандартная функция Управление внешними источниками данных, которая вызывается из окна Все функции – Стандартные функции.
В данной форме перечислены все внешние источники данных, созданные в конфигураторе и доступные пользователю, который открыл форму.
Колонка Подключен указывает состояние подключения к источнику данных в этом сеансе.
С помощью меню Администрирование можно указать общие параметры подключения (команда Изменить общие параметры…) и параметры подключения конкретных пользователей в том случае, если эти параметры отличаются от общих параметров (команда Изменить параметры пользователей…).
Флажок в левой части формы (перед именами параметров) означает, что данный параметр используется в данном наборе параметров соединения.
При этом параметры анализируются в следующем порядке:
● параметры, установленные для сеанса с помощью метода УстановитьПараметрыСоединенияСеанса() менеджера внешнего источника данных;
● параметры, указанные для пользователя при интерактивной настройке или с помощью метода УстановитьПараметрыСоединенияПользователя() менеджера внешнего источника данных;
● общие параметры, заданные интерактивно или с помощью вызова метода УстановитьОбщиеПараметрыСоединения() менеджера внешнего
источника данных.
Результирующий набор параметров будет использован для соединения с внешним источником данных. Если какой-то параметр указан в нескольких настройках, будет использован то значение параметра, которое встретится в вышеописанной цепочке раньше.
Например, можно следующим образом комбинировать параметры подключения:
● в параметрах соединения сеанса указывается пользователь и его пароль;
● в общих параметрах указывается строка соединения с базой данных внешнего источника;
● в параметр конкретного пользователя указывается другая строка соединения, которая может использоваться для тестирования прикладного решения.
При указании строки соединения следует помнить, что доступ к внешним данным будет выполняться не с компьютера, где происходит настройка, а с другого компьютера (описание того, с какого компьютера выполняется запрос к внешнему источнику данных).
Нажатие кнопки Подключиться открывает диалог, в котором можно задать (или уточнить) параметры подключения к выбранному внешнему источнику данных.
Необходимость указания пользователя и пароля в данном диалоге зависит от драйвера ODBC и содержания строки соединения. Возможны ситуации, когда ввод логина и пароля не требуется. Если пользователь не является администратором внешнего источника данных, то кнопки Общие параметры… и Параметры пользователя… для него недоступны.
Флажок Использовать аутентификацию операционной системы доступен только в том случае, если у пользователя имеется право ИзменениеАутентификацииОССеанса.
После нажатия кнопки Подключиться происходит подключение к внешнему источнику данных. В случае успешного подключения изменяется содержимое колонки Подключен списка внешних источников данных.
Нажатие кнопки Отключиться приведет к отключению «1С:Предприятия» от выбранного внешнего источника данных.
5. Подключение к внешнему источнику данных в режиме «1С:Предприятие»
При выполнении любой операции, в ходе которой необходимо получать данные из внешнего источника данных, происходит попытка подключения, если подключение к этому источнику данных еще не было выполнено. Если подключение выполнено успешно, то выполняемые действия продолжаются. Если подключение не выполнено, вызывается исключение.
В случае если в клиентском приложении возникает исключение, связанное с подключением к внешнему источнику данных, пользователю предлагается диалог, в котором можно уточнить параметры подключения (если пользователь имеет права на изменение параметров) и повторить подключение. Если подключение выполнено успешно, то пользователю будет предложено повторить действие, во время которого произошла ошибка подключения.
ПРИМЕЧАНИЕ. В режиме совместимости с версией 8.2.13, при работе с динамическим списком, в некоторых случаях диалог подключения к внешним данным может не показываться.
Также имеется возможность выполнить подключение вручную. Для этого предназначена стандартная функция Управление внешними источниками данных.
6. Особенности использования внешних источников данных
6.1. Место исполнения запросов к внешним источникам данных
Исполнение запросов к внешним источникам данных выполняется:
● в файловом варианте – на компьютере с клиентским приложением;
● в файловом варианте с доступом через веб-сервер – на компьютере, где выполняется расширение веб-сервера;
● в клиент-серверном варианте – на компьютере, где выполняется:
● сервис работы с внешними источниками данных через ODBC – для доступа к реляционными источникам данных;
● сервис работы с внешними источниками данных через XMLA – для доступа к аналитическим источникам данных (OLAP-системы).
6.2. Использование внешних источников данных
В том случае, если один внешний источник данных содержит в своем составе и данные реляционных источников данных и данные аналитических источников данных, их одновременное использование не поддерживается. Это связано с тем, что один внешний источник данных может быть в один момент времени подключен или к реляционной или к аналитической СУБД.
6.2.1. В запросах
6.2.1.1. К реляционным внешним источникам
Таблицы внешних источников данных могут выступать в качестве источников запросов. При этом таблица внешнего источника данных описывается следующим образом:
ВнешнийИсточникДанных.<Имя источника>.Таблица.<Имя таблицы>
Пример:
ВЫБРАТЬ
Товары.Код,
Товары.Наименование,
Товары.Артикул
ИЗ
ВнешнийИсточникДанных.DBF.Таблица.Товары КАК Товары
В данном примере происходит выборка полей Код, Наименование и Артикул из таблицы Товары внешнего источника данных DBF.
В запросе к внешнему источнику данных возможно использование временных таблиц. При этом производится попытка создания временной таблицы непосредственно в базе данных, связанной с внешним источником данных. Если СУБД не поддерживает создание внешних источников данных – будет вызвано исключение. Имя временной таблице, при обращении к ней, формируется следующим образом:
ВнешнийИсточникДанных.<Имя внешнего источника данных>.ВременнаяТаблица.<Имявременной таблицы>
Пример:
ВЫБРАТЬ Name, ProductID
ПОМЕСТИТЬ ВнешнийИсточникДанных.AdventureWorks.ВременнаяТаблица.Остатки
ИЗ &ТаблицаЗначений
ВЫБРАТЬ Name, ProductID
ПОМЕСТИТЬ ВнешнийИсточникДанных.AdventureWorks.ВременнаяТаблица.Остатки
ИЗ ВнешнийИсточникДанных.AdventureWorks.Таблица.Production_Balance
При использовании в запросах внешних источников данных нужно помнить следующие ограничения:
● В одном запросе можно использовать один источник данных. Не поддерживается одновременное использование, например, внешнего источника данных и данных информационной базы «1С:Предприятия».
6.2.1.2. К аналитическим внешним источникам
Объекты аналитических внешних источников данных могут выступать в качестве источников запросов. При этом куб внешнего источника данных
описывается следующим образом:
ВнешнийИсточникДанных.<Имя источника>.Куб.<Имя куба>
Пример:
ВЫБРАТЬ ПЕРВЫЕ 10
AdventureWorks.InternetSalesAmount
ИЗ
ВнешнийИсточникДанных.OLAP.Куб.AdventureWorks КАК AdventureWorks
В данном примере выполняется получение 10 первых ресурсов InternetSalesAmount из куба AdventureWorks внешнего источника данных OLAP.
ВНИМАНИЕ! Не рекомендуется получать все записи из куба внешнего источника данных. Количество записей очень велико и может привести к перегрузке системы.
Таблица измерений куба внешнего источника данных описывается следующим образом:
ВнешнийИсточникДанных.<Имя источника>.Куб.<Имя куба>.ТаблицаИзмерений.<Имя таблицы измерений>
Пример:
ВЫБРАТЬ
AdventureWorksТаблицаИзмеренияProduct.Ссылка
ИЗ
ВнешнийИсточникДанных.OLAP.Куб.AdventureWorks.ТаблицаИзмерения.Product КАК AdventureWorksТаблицаИзмеренияProduct
В данном примере происходит получения списка ссылок на членов таблицы измерения Product из куба AdventureWorks внешнего источника данных OLAP.
В запросе к внешнему источнику данных возможно использование временных таблиц. При этом производится попытка создания временной таблицы непосредственно в базе данных, связанной с внешним источником данных. Если СУБД не поддерживает создание внешних источников данных – будет вызвано исключение. Имя временной таблице, при обращении к ней, формируется следующим образом:
ВнешнийИсточникДанных.<Имя внешнего источника данных>.ВременнаяТаблица.<Имя временной таблицы>
При использовании в запросах внешних источников данных нужно помнить следующие ограничения:
● В одном запросе можно использовать один источник данных. Не поддерживается одновременное использование, например, внешнего источника данных и данных информационной базы «1С:Предприятия».
6.2.2. В системе компоновки данных
В системе компоновки данных возможно использование наборов данных, получающих данные из разных однотипных источников данных. Так, можно создать набор данных, описывающий список товаров. Данные в этом наборе будут получены из информационной базы «1С:Предприятия».
Другой набор данных может описывать данные, полученные из внешнего источника данных, например таблица продаж товаров из внешней базы данных.
Затем можно настроить связи наборов данных в конструкторе схемы компоновки данных и получать в отчет информацию одновременно из «1С:Предприятия» и внешнего источника данных.
6.3. Правила преобразования значений
При получении данных из внешних источников система автоматически преобразует эти данные к тому типу, который указан у соответствующего
поля в прикладном решении. Преобразование выполняется по следующим правилам:
● Тип Строка:
● Строковое значение преобразуется в строковое значение.
● Числовое значение преобразуется в строковое значение (для преобразования используются региональные настройки операционной системы на том компьютере, где происходит выполнение запроса к внешнему источнику данных).
● Значение даты преобразуется в строковое значение (для преобразования используются региональные настройки операционной системы на том компьютере, где происходит выполнение запроса к внешнему источнику данных).
● Значение уникального идентификатора преобразуется в строковое представление уникального идентификатора.
● Двоичные данные (и данные других типов) преобразуются в строку, которая является текстовым представлением преобразуемых данных в шестнадцатеричном виде.
● Тип Число:
● Числовое значение преобразуется в число.
● Для строкового значения выполняется попытка преобразования строки в число в соответствии с региональными настройками операционной системы компьютера, на котором выполняется запрос к внешнему источнику данных.
● Для полей, у которых точность в базе источника превышает точность типов платформы, рекомендуется либо явно использовать ВЫРАЗИТЬ в запросах, либо создавать представление (view) в базе, так, чтобы точность полей соответствовала точности в конфигураторе.
● Для остальных типов возникает исключение.
● Тип Булево:
● Числовое значение преобразуется в значение Ложь, если его значение равно 0 и в значение Истина – для любого другого значения во внешнем источнике.
● Двоичные данные преобразуются по значению первого байта данных. Если первый байт равен значению 0, то результатом преобразования является значение Ложь и значение Истина в случае любого другого значения.
● Для остальных типов возникает исключение.
● Тип ДвоичныеДанные:
● В двоичные данные преобразуются значения любых типов.
● Тип Дата:
● Значение даты преобразуется в значение типа Дата.
● Для остальных типов возникает исключение.
6.4. Внешний источник данных, входящий в состав разделителя
Если внешний источник данных входит в состав общего реквизита, то следует учитывать следующие особенности:
● Изменение структуры таблиц внешнего источника данных не производится, поэтому собственно данные не разделяются.
● Параметры соединения с внешним источником данных хранятся в разрезе значений разделителей, в состав которых входит внешний источник данных.
● Неиспользуемый разделитель является отдельным значением, в разрезе которого хранятся параметры соединения с внешним источником данных.
Таким образом, включая внешний источник данных в состав разделителя, появляется возможность реализовать один из следующих сценариев использования:
● Данные, доступные для пользователей различных областей данных, расположены в разных базах данных, которые совпадают по структуре таблиц. Т.к. параметры соединения хранятся в разрезе значений разделителя, имеется возможность для каждой области данных настроить работу с необходимой базой данных.
● Данные, доступные для пользователей различных областей расположены в одной базе данных, но доступ к данным регулируется средствами СУБД (имя и пароль пользователя). В этом случае имеется возможность для каждой области данных указать свои имя и пароль пользователя, от имени которого выполняется доступ к данным.
Приведенные сценарии не являются единственными. Они приведены как пример использования внешних источников данных, входящих в состав разделителей.