Внешние источники данных. Часть 1 – Работа с реляционными внешними источниками данных

Печать (Ctrl+P)

Внешние источники данных .Часть 1

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

 1 . Работа с реляционными внешними источниками данных

1.1 Общая информация

Объект, описывающий внешний источник данных, подключенный к реляционной базе данных, состоит из таблиц, а каждая таблица состоит из полей. Данные в таблицах могут ссылать на другие таблицы – например, значение в поле таблицы может являться идентификатором записи в другой таблице. Объект, описывающий внешний источник данных, может быть использован следующим образом:
● в качестве источника данных для запросов;
● в качестве источника данных в системе компоновки данных;
● в качестве источника для динамических списков;
● входить в состав общих реквизитов ;
● записи таблиц могут отображаться в управляемых формах «1С:Предприятия» (не поддерживается использование обычных форм для объектов внешних источников данных);
● таблицы внешнего источника данных могут выступать в качестве типов реквизитов информационной базы;
● к таблицам (и полям) внешних источников данных можно применять права доступа и накладывать ограничения доступа к данным;
● доступ к таблицам и полям возможен из встроенного языка;
● таблица внешнего источника данных может входить в состав подсистем ;
● таблица внешнего источника данных может входить в состав функциональных опций;
● для таблицы внешнего источника данных можно создавать характеристики .

Для получения доступа к внешним источникам данных используется механизм ODBC. Данные внешних источников данных доступны как для чтения, так и для записи.
ВНИМАНИЕ! Механизм внешних источников данных не должен использоваться для доступа к базам данных «1С:Предприятия», так как модель данных «1С:Предприятия» не рассчитана на работу с данными на уровне физических структур хранения в системах управления базами данных (СУБД). Возможность записи во внешние источники данных не должна использоваться для замены штатного механизма хранения данных прикладного решения.
Возможности системы «1С:Предприятие» максимально учитываются при использовании в качестве источника внешних данных следующих СУБД (свойство Тип СУБД параметров соединения с источником данных):

● Microsoft SQL Server,
● IBM DB2,
● PostgreSQL,
● Oracle Database,
● MySQL.
ПРИМЕЧАНИЕ. При работе с внешним источником данных могут возникать ошибки в том случае, если свойство Тип СУБД параметров соединения с внешним источником данных содержит значение, которое не соответствует реально используемой системе.

При использовании других СУБД возможности работы с внешними источниками данных зависят от самой СУБД. Для таких источников данных, следующие функции и выражения языка запросов: ПОДСТРОКА, ГОД, КВАРТАЛ, МЕСЯЦ, ДЕНЬГОДА, ДЕНЬ, НЕДЕЛЯ, ДЕНЬНЕДЕЛИ, ЧАС, МИНУТА, СЕКУНДА, РАЗНОСТЬДАТ, ЕСТЬNULL, ВЫРАЗИТЬ, СПЕЦСИМВОЛ, СОЕДИНЕНИЕ, ЛЕВОЕ СОЕДИНЕНИЕ, ПРАВОЕ СОЕДИНЕНИЕ, ПОЛНОЕ СОЕДИНЕНИЕ, преобразуются в запрос к СУБД с использованием управляющих последовательностей ODBC(ODBC Escape Sequences  на английском языке).

В случае использования внешнего источника данных в качестве источника для динамического списка, следует помнить, что упорядочивание динамического списка выполняется с использованием порядка сортировки, который установлен для базы данных, выступающей в качестве внешнего источника данных. Порядок сортировки может не совпадать с тем порядком сортировки, который используется в том случае, если база
данных используется собственно «1С:Предприятием». В связи с этим возможны ситуации, когда результат упорядочивания в информационной базе и во внешнем источнике данных будет отличаться (при одинаковых упорядочиваемых данных). Такое поведение является нормальным.
Для осуществления подключения к внешнему источнику данных следует сформировать строку подключения, которая может содержать в себе либо все параметры подключения, необходимые для выбранного драйвера ODBC, либо указание на сформированное  описание источника данных DSN (Data Source Name). Подробнее о строке подключения см. здесь.
Ниже приводятся примеры строк подключения.
Строка соединения с указанием логина и пароля доступа:

DRIVER={SQL Server}; SERVER=(local); UID=user; PWD=password; DATABASE=AdventureWorksLT2008
Логин и пароль доступа требуется указывать дополнительно:

DRIVER={SQL Server}; SERVER=CASH-SERVER; DATABASE=CasheReceipts
Указание предварительно настроенного источника данных (DSN):

DSN=MyDB

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

1.2. Общая схема использования

Для того чтобы использовать информацию из внешних источников данных в системе на базе «1С:Предприятия», следует придерживаться следующей общей схемы:
● Изучить структуру внешнего источника данных и понять, какая информация (таблицы и поля) необходима для работы алгоритмов или отчетов  в «1С:Предприятии».
● Создать объект Внешние источники данных в конфигураторе и для него создать подчиненные таблицы и поля. Это можно сделать с помощью специального помощника.
● Реализовать использование созданных объектов в прикладном решении.
● Выполнить настройку параметров подключения к внешнему источнику данных в той сети, где будет использоваться прикладное решение. Эти параметры могут отличаться от тех, которые использовались при загрузке структуры внешнего источника данных.
Примечание. Параметры доступа к внешнему источнику данных, которые были заданы в конфигураторе, не будут использованы системой в режиме 1С:Предприятие.

1.3. Редактирование структуры внешнего источника данных

1.3.1. Общая информация

Для работы с таблицами внешних источников данных предназначена ветвь с именем соответствующего внешнего источника данных ветви Внешние источники данных – <Имя внешнего источника данных> – Таблицы дерева конфигурации. Определение внешнего источника данных состоит из следующих шагов:

1. Определение собственно внешнего источника данных;
2. Определение таблиц источника данных;
3. Определение полей для каждой таблицы внешнего источника данных.

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

1.3.2. Внешний источник данных

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

1.3.3. Таблица внешнего источника данных

При создании новой таблицы открывается окно редактирования объекта (см. здесь).
Свойство таблицы Имя служит для идентификации таблицы внутри прикладного решения. Для того чтобы система знала, какой физической таблице внешнего источника данных соответствует объект конфигурации, следует заполнить свойство Имя в источнике данных. Значение в этом свойстве в точности должно соответствовать имени таблицы внешнего источника данных. Не поддерживается размещение в одной таблице прикладного решения данных из нескольких физических таблиц внешнего источника данных.
Свойство Тип данных таблицы определяет, какие сущности в этой таблице хранятся: объектные или необъектные. Если в таблице можно выделить одно поле, которое однозначно определяет запись в таблице, значит, таблица может хранить объектные данные. Ближайшим аналогом таких таблиц может служить справочник. Если запись в таблице идентифицируется несколькими ключевыми полями, то такая таблица содержит
необъектные данные. Ближайшим аналогом таких таблиц служит регистр сведений. Ключевые поля таблицы необходимо указать в свойстве Поля
ключа.
ПРИМЕЧАНИЕ. Не рекомендуется использовать в качестве ключевых полей объектной таблицы внешнего источника данных поля, которые содержат значения NULL.
Для таблиц, содержащих объектные данные, можно указать поле, которое будет выступать в качестве представления объекта. Это можно сделать с помощью свойства Поле представления.
В зависимости от того, какой объект СУБД описывает создаваемая объект в  «1С:Предприятие», следует корректно установить свойство Вид таблицы. Если свойство установлено в значение Таблица – то объект конфигурации будет выступать аналогом реальной таблицы базы данных или представления (view). В остальных случаях свойство Вид таблицы следует установить в значение Выражение. Если таблица внешнего источника данных имеет вид Таблица, то в свойство Имя в источнике данных необходимо указать имя реальной таблицы или не параметризованного представления, например dbo.ErrorLog. Для таблицы вида Выражение, следует указать свойство Выражение в источнике данных. В простейшем случае это будет вызов функции, возвращающей табличные данные, например dbo.ufnGetContactInformation(&1). Если в это поле записывается выражение, то рекомендуется указать его в скобках, для минимизации различных конфликтов при реальном выполнении запроса к СУБД.
Если таблица хранит иерархические данные, то системе можно сообщить об этом с помощью свойств Поле родителя, Признак незаполненного родителя и Значение незаполненного родителя. Эти свойства доступны только для таблиц, в которых хранятся объектные данные. Свойство Поле родителя служит для указания поля таблицы базы данных, которое хранит ссылку на родителя для данной записи. Поля, которые могут быть  выбраны в данном свойстве, должны иметь тип ссылки на используемую таблицу. Для таблицы producs из примера (см. здесь) поле родителя должно иметь тип ВнешнийИсточникДанныхТаблицаСсылка.DBF.products. Свойства Признак незаполненного родителя и Значение незаполненного родителя определяют, какое значение будет определять запись, у которой отсутствует родительская запись. После указания данных свойств:
● система компоновки данных использует их при работе с иерархическими группировками и при проверке условий иерархии;
● язык запросов использует их для работы конструкции В ИЕРАРХИИ;
● эти свойства используются при отображении таблиц, хранящих иерархические данные (возможности отображения аналогичны возможностям, которые используются при отображении иерархических справочников).

Свойство Ввод по строке  позволяет указать имена полей, по которым будет выполняться поиск в поле, тип данных которого указывает на таблицу внешнего источника данных.
При ручном создании таблиц свойства Поле ключа, Поле представления и Ввод по строке можно указать только после создания полей таблицы внешнего источника данных.
За возможность записи в таблицу внешнего источника данных отвечает флажок Только чтение. Если флажок сброшен – в указанную таблицу допускается запись информации. Флажок устанавливается в значение Истина автоматически для таблиц, основанных на представлениях (view) и функциях . Для таблицы, в которую допустима запись информации, следует обратить внимание на следующие свойства:
● Уровень изоляции транзакций – определяет уровень изоляции транзакций, которые будет устанавливаться при неявных транзакциях записи в
эту таблицу (см. здесь).
● Поле версии данных – в данном свойстве указывается поле внешнего источника данных, которое увеличивает свое значение автоматически,
при каждой записи в данную таблицу. Если поле указано, то система при интерактивном изменении объекта опирается на значение этого поля,
При записи выполняется сравнение значения этого поля в базе данных и в форме: если значения различаются, значит, объект изменен.
Если поле не указано, то при интерактивном открытии формы происходит считывание объекта в память, а при записи происходит повторное
чтение объекта и сравнение с копией в памяти. Если две копии различаются, значит, объект изменен.
● Поля блокировки данных – указывает поля, по которым можно выполнять блокировку данных.
● Вводится на основании – указываются объекты конфигурации, на основании которых могут создаваться записи в таблице.
● Режим управления блокировкой данных – указывает, какой режим управления блокировками будет применяться при записи в данную таблицу

1.3.4. Поле таблицы внешнего источника данных

Поля таблицы описывают, какие данные физической таблицы будут доступны из прикладного решения. Свойство поля Имя служит для идентификации поля таблицы в прикладном решении. Для указания соответствия между полем прикладного решения и полем физической таблицы служит свойство Имя в источнике данных. Значение в этом свойстве должно в точности соответствовать имени колонки таблицы, указанному в
свойстве Имя в источнике данных родительского объекта данного поля. Не поддерживается объединение в одном поле таблицы данных из нескольких колонок одной или нескольких таблиц внешнего источника данных.
Если значение, находящееся в свойстве Имя в источнике данных заключено в одинарные кавычки, то в SQL-запрос к базе данных это значение попадает без преобразований, вне зависимости от состава символов. Если значение в поле не заключено в одинарные кавычки, то в SQL-запрос к базе данных это значение попадет заключенное в двойные кавычки, если в имени содержатся спецсимволы.
Поле Тип позволяет указать тип данного поля. Для выбора доступен ограниченный набор типов. Типами поля могут быть:
● Число;
● Строка;
● Дата;
● Булево;
● УникальныйИдентификатор;
● ДвоичныеДанные;
● типы, которые определяются таблицами внешних источников данных.

Если необходимо указать для поля составной тип, то в таком составном типе могут участвовать только типы Число, Строка, Дата, Булево.
При получении данных из внешних источников система автоматически преобразует эти данные к тому типу, который указан у соответствующего поля в прикладном решении.
Свойство Только чтение указывает, что данное поле в таблице не может быть записано. Это свойство следует устанавливать в значение Истина для полей с автоматическим изменением, автоматически формируемые ключевые поля, вычисляемых полей и т. д.
Однако при работе с внешним источником данных возникает необходимость выполнять запись полей, которые в обычной работе предназначены только для чтения, или наоборот. При этом такая необходимость является временной, например, это необходимо для выполнения какой-либо однократной или регламентной операции. Для изменения списка записываемых полей следует использовать методы ПолучитьИзменяемыеПоля() и
УстановитьИзменяемыеПоля(). Таким образом, состояние свойства Только чтение описывает поведение поля по умолчанию, а с помощью указанных методов можно в редких случаях изменять поведение поля.
Свойство Разрешить Null указывает, можно или нет в поле таблицы записать NULL. Если в поле таблицы записано NULL, то в форме это значение будет отображаться как Не заполнено.

1.3.5. Прочие свойства

Форма, используемая для отображения записи и списка таблицы внешнего источника данных, может быть создана системой автоматически или прикладным разработчиком. При этом следует помнить, что если таблицы является необъектной и не заданы ключевые поля, то:
● отображение формы записи невозможно;
● невозможен доступ к объекту ВнешнийИсточникДанныхТаблицаНаборЗаписей.

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

1.3.6. Работа с транзакциями

При записи во внешние источники данных могут использоваться как автоматические, так и управляемые блокировки .
Для работы с транзакциями предназначены методы НачатьТранзакцию(), ЗафиксироватьТранзакцию(), ОтменитьТранзакцию() и
ТранзакцияАктивна() менеджера внешнего источника данных. В частности, это означает, что недоступны транзакции для нескольких источников данных (распределенные транзакции).
Управление блокировками осуществляется с помощью следующих свойств и объектов:
● Свойство Режим управления блокировкой данных внешнего источника данных;
● Свойство Режим управления блокировкой данных таблицы внешнего источника данных;
● Полями, указанными в свойстве Поля блокировки данных таблицы внешнего источника данных;
● Свойством Уровень изоляции транзакций таблицы внешнего источника данных;
● Параметрами метода НачатьТранзакцию() менеджера внешних источников данных.

Свойство Режим управления блокировкой данных внешнего источника данных предназначено для установки по умолчанию режима блокировок таблиц внешнего источника данных (аналогично свойству конфигурации Режим управления блокировкой данных). Данное свойство может принимать следующие значения:
Автоматический – режим автоматических блокировок для всех таблиц внешнего источника данных. В качестве уровня изоляции транзакций используется Упорядочиваемость. Такой режим позволяет использовать транзакции к базе данных внешнего источника одновременно из платформы и из других клиентов. В данном режиме одноименное свойство у таблицы внешнего источника данных игнорируется.
Управляемый – режим управляемых блокировок для всех таблиц внешнего источника данных. В качестве уровня изоляции транзакций используется Чтение зафиксированных. Такой режим можно использовать в том случае, когда к базе данных внешнего источника имеет только система на базе «1С:Предприятие». В данном режиме игнорируется одноименное свойство у таблицы внешнего источника данных.
Автоматический и управляемый – режим блокировок выбирается для каждой таблицы в зависимости от одноименного свойства таблицы.

Уровень изоляции транзакций выбирается в зависимости от свойства Уровень изоляции транзакций таблицы внешнего источника данных.
Если свойство Уровень изоляции транзакций таблицы внешнего источника данных установлено в значение Авто, то фактический режим изоляции транзакций устанавливается в зависимости от свойства Режим управления блокировкой данных (описано выше). Если указано конкретное свойство – будет использоваться именно оно. Если СУБД внешнего источника данных не поддерживает указанный в этом свойстве уровень изоляции транзакций, то уровень будет автоматически изменяться по следующей цепочке (до первого поддерживаемого): Чтение незафиксированных
Чтение зафиксированныхПовторяемое чтение Упорядочиваемость.
При работе в режиме управляемых блокировок, блокировки на уровне базы данных накладываются установкой соответствующего уровня изоляции транзакций и указанием выражения ДЛЯ ИЗМЕНЕНИЯ в запросах к базе данных.
Метод ТранзакцияАктивна() позволяет определить текущее состояние транзакции используемого внешнего источника данных.

1.3.7. Особенности поведения системы при записи во внешние источники данных

При не интерактивной работе с внешним источником данных следует учитываться следующие особенности поведения:
● При создании записи в таблице внешнего источника данных:
● Изменить реквизиты записываемого объекта, у которых свойство ТолькоЧтение установлено в значение Истина, невозможно.
● Если у реквизита, входящего в состав полей ключа, свойство ТолькоЧтение установлено в значение Истина, то такой реквизит может быть изменен только в результате вызова метода УстановитьСсылкуНового(). Если у такого реквизита свойство ТолькоЧтение установлено в значение Ложь, то его значение можно изменять явным образом (с помощью операции присваивания).
● Система не занимается автоматическим заполнением значений реквизитов, участвующих в формировании ключа объекта (или набора записей). Это означает, что запись будет завершена с ошибкой, если для записываемого объекта не установлены значения ключевых реквизитов.
● При изменении записи в таблице внешнего источника данных:
● Изменяются только те реквизиты, для которых свойство ТолькоЧтение установлено в значение Ложь.
● При изменении ключевых полей изменяется значение ссылки.
● Если заполнен реквизит ВерсияДанных, то это значение используется в выражении WHERE для запроса обновления данных. После успешного выполнения запроса значение реквизита повторно считаывается из базы данных.
● При удалении записи из таблицы внешнего источника данных:
● Выполняется только непосредственное удаление. Пометка удаления недоступна и не поддерживается.
● При удалении не выполняется контроль ссылочной целостности.

1.3.8. Загрузка структуры таблиц из внешнего источника данных

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

Рис. 1. Конструктор таблиц внешнего источника данных

При получении структуры внешнего источника данных система выполняет следующие действия:
● Выполняет попытку определить тип таблицы с данными: объектные или необъектные данные расположены в таблице. Таблица будет считаться объектной, если для нее указано только одно ключевое поле, и необъектной в противном случае. Если система ошиблась с указанием ключевых полей, можно вручную изменить состав полей, которые образуют ключ таблицы. Если таблица определена как объектная, у нее можно указать поле, которое формирует представление данных такого типа. Поле представления необходимо указать вручную.
● Преобразует типы колонок источника данных в типы «1С:Предприятия», которые будут использоваться для указания типов реквизитов таблиц. Все типы из внешнего источника данных преобразуются к следующим типам «1С:Предприятия»: число, строка, дата, булево,
уникальный идентификатор, двоичные данные и типы, связанные с объектными таблицами источников данных.
● Выполняет попытку определить типы для полей таблиц. В этом случае система пытается определить, какого типа данные хранятся в колонке таблицы, и в том случае, если это можно считать ссылкой на данные другой таблицы, указывает в колонке соответствующий тип. Если система неправильно выбрала тип колонки таблицы, его можно изменить вручную.
● Во время настройки загрузки, имеется возможность настроить следующие параметры загружаемой структуры данных:
● Имя объекта в конфигурации – колонка Имя в конфигурации;
● Тип загружаемого реквизита – колонка Тип;
● Указать поля, входящие в состав ключа (для объектных данных) – колонка Поле ключа;
● Указать поле, хранящее представление объекта – колонка Поле представления;
● Указать поле, хранящее версию объекта (для осуществления оптимистической блокировки данных) – колонка Поле версии;
● Указать, что таблица или реквизит доступны только на чтение – колонка Только чтение;
● Указать возможность указывать значение NULL в реквизите – колонка Разрешить NULL;
● Задать значение заполнения для реквизита – колонка Значение заполнения.
Затем следует отметить флажками таблицы и поля, которые будут перенесены в метаданные прикладного решения.
Если флажок Удалять из конфигурации таблицы и поля, отсутствующие во внешнем источнике данных установлен, то при завершении работы конструктора таблиц из конфигурации будут удалены те таблицы и поля, которые отсутствуют во внешнем источнике (например, во внешнем источнике таблицы или поля были удалены) данных.

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

1.4. Пример создания внешнего источника данных

Допустим, у нас существует база данных формата dbf, доступ к которой необходимо получить из прикладного решения.
База данных состоит из трех таблиц (файлов):
● Таблица products (хранится в файле products.dbf), которая содержит информацию о товарах и состоит из следующих полей:
id – идентификатор товара (ключевое поле). Тип: Число.
code – код товара. Тип: Строка.
name – наименование товара. Тип: Строка.
article – артикул товара. Тип: Строка.

● Таблица price (хранится в файле price.dbf), которая содержит текущие цены на товары и состоит из следующих полей:
product – идентификатор товара, для которого хранится цена. Тип: Число.
price – цена товара. Тип: Число.

● Таблица sales (хранится в файле sales.dbf), которая содержит данные о каждой продаже товара с указанием цены, количества и суммы. Таблица состоит из следующих полей:
product – идентификатор продаваемого товара. Тип: Число.
●  price – отпускная цена товара. Тип: Число.
qty – количество проданного товара. Тип: Число.
summa – отпускная стоимость проданного товара. Тип: Число.
Создадим необходимые объекты конфигурации, чтобы иметь доступ ко всем данным этих таблиц.
Вначале создадим собственно внешний источник данных. Назовем его DBF. Затем вручную создадим таблицы источника данных. При этом следует помнить, что реальное имя физической таблицы внешнего источника данных указывается в свойстве Имя в источнике данных создаваемого объекта. При создании таблиц назовем объекты конфигурации следующим образом:
● таблица products будет отображаться в объект Товары;
● таблица price будет отображаться в объект Цены;
● таблица sales будет отображаться в объект Продажи.

Рис. 2 Таблицы внешнего источника данных

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

Рис. 3 Структура таблиц в прикладном решении

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

Рис. 4. Динамический список внешнего источника данных

 

1.5. Строка соединения ODBC

1.5.1. Общая информация

Для осуществления подключения к внешнему источнику данных следует сформировать строку соединения, которая может содержать в себе либо все параметры подключения, необходимые для выбранного драйвера ODBC, либо указание на сформированное описание источника данных DSN (Data Source Name).

1.5.2. Полная строка соединения

Описание строки соединения можно получить по следующему адресу (на английском языке): http://msdn.microsoft.com/enus/library/ms722656.aspx.

Из этого описания следует выделить следующее:
● Параметры строки соединения записываются парами КлючевоеСлово=Значение и разделяются символом “;”.
● Если в строке соединения встречаются несколько параметров с одинаковым ключевым словом, то использоваться будет последнее указание параметра в строке соединения. Поэтому, если такие параметры как Имя пользователя или Пароль указаны и в строке соединения и в диалоге Параметры соединения (см. здесь), то будут использоваться значения из диалога Параметры соединения, т. к. эти параметры будут добавлены с
правой стороны к указанной строке соединения.
Для упрощения формирования строки соединения можно воспользоваться сайтом http://www.connectionstrings.com/.

1.5.3. Описание источника данных

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

1.5.4. Утилита администрирования источников данных ODBC

Для создания описания источника данных следует воспользоваться утилитой администрирования источников данных ODBC. В ОС Windows эта утилита расположена следующим образом: Панель управления – Администрирование – Источники данных (ODBC). При этом из панели управления Windows открывается утилита администрирования, соответствующая версии операционной системы. В ОС Linux эта утилита называется ODBCConfig и доступна при установке соответствующего пакета (зависит от версии ОС Linux).
Следует помнить, что в 64-разрядной версии ОС Windows драйвера и источники данных различаются для 32-разрядного и 64-разрядного ODBC.
Поэтому для создания описания источника данных следует использовать версию утилиты администрирования, соответствующую версии системы «1С:Предприятия», которая будет исполнять запросы к внешнему источнику данных. Так, например, если обращение к ODBC выполняется из 64-разрядной версия сервера «1С:Предприятия», то надо использовать 64-разрядную версию утилиты администрирования. Если используется файловая версия «1С:Предприятия» на 64-разрядной ОС Windows, то следует использовать 32-разрядную версию утилиты администрирования, т. к. клиентское приложение является 32-разрядным.
На 64-разрядной версии ОС Windows утилиты администрирования расположены следующим образом:
● 64-разрядная версия: %SYSTEMROOT%\System32\odbcad32.exe.
● 32-разрядная версия: %SYSTEMROOT%\SysWOW64\odbcad32.exe.

 

One Reply to “Внешние источники данных. Часть 1 – Работа с реляционными внешними источниками данных”

  1. Иван

    “Если значение, находящееся в свойстве Имя в источнике данных заключено в одинарные кавычки, то в SQL-запрос к базе данных это значение попадает без преобразований, вне зависимости от состава символов.” – огромное спасибо, вы меня выручили! Поля в бд были с символами “_”, поэтому была ошибка “Incorrect syntax near t_ticket_id”

Добавить комментарий

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