Общие сведения о внешних источниках данных в 1С и примеры строки соединения
В 8 версии программы 1С разработчики добавили в функционал возможность подключения сторонних баз данных и получения информации из них напрямую из конфигуратора, без использования COM соединений и OLE объектов. Эта возможность реализована при помощи нового объекта – «Внешних источников данных»
Внешние источники данных в 1С можно использовать так же, как и остальные таблицы системы:
- При создании отчетов и расчетов с помощью системы компоновки данных (СКД);
- Для получения ссылок на информацию, хранящуюся в сторонних источниках;
- Для изменения хранящихся в таблицах данных;
- При формировании запросов.
Важно знать, что этот механизм не рассчитан на работу с другими базами данных 1С, поскольку сама модель функционирования «1С.Предприятия» не предполагает вмешательства в данные на уровне физических таблиц.
Создание нового источника
Добавление нового внешнего источника в программу происходит в режиме «Конфигуратора». В дереве конфигурации есть соответствующая ветка (Рис.1)
Попотеть при создании нового источника придется, несмотря на то, что форма нового объекта имеет всего четыре закладки:
- Основные;
- Данные;
- Функции;
- Права.
Первая закладка имеет только один интересный параметр – режим управления блокировкой. Если не задаваться вопросами о блокировании данных в транзакциях, о тонкостях распараллеливания информационных потоков можно оставить этот параметр в режиме автоматической блокировки. Однако подобный подход может привести к появлению избыточных ограничений (например, когда вместо отдельной записи программа заблокирует всю физическую таблицу, лишив остальных пользователей возможности работы с ней).
Управляемые блокировки, в отличие от автоматических используют механизм транзакций, заложенный в самой программе, а не в СУБД, что позволяет перевести захваты таблиц на гораздо более низкий уровень.
Установив в этом параметре значение «Автоматический и управляемый» мы предоставляем системе возможность определить, какой режим использовать, обратившись непосредственно к аналогичному свойству каждой конкретной таблицы.
Закладка «Данные» формы свойств внешнего источника
Форма закладки «Данные» представлена на Рис. 2
Здесь мы можем добавить таблицы внешнего источника и кубы. Добавлять таблицу можно двумя способами:
- Вручную, тогда перед нами откроется форма добавления таблицы (Рис. 3);
- Либо выбрать из списка физических таблиц источника (Рис. 4), в этом случае перед нами открывается специальный конструктор.
Рассмотрим подробнее форму добавления таблицы. Свойство «Имя» служит для однозначной идентификации объекта в конфигурации.
Сопоставление объекта метаданных и конечной физической таблицы происходит через свойство «Имя в источнике данных», расположенном на закладке «Дополнительно» (Рис. 5)
Дальше мы должны определить тип таблицы, точнее её объектность. Если данные, хранимые в структуре можно однозначно идентифицировать через какое-либо одно поле, таблица – может быть объектной. Если индивидуальность записи определяется набором ключевых полей – таблица должна иметь необъектный тип.
Сравнивая такие таблицы с другими объектами метаданных можно привести следующую аналогию:
- Объектные таблицы – это справочники;
- Необъектные – это регистры сведений.
Набор ключевых полей определяется в следующем параметре формы («Поля ключа»). Это поле обязательно к заполнению, если оставить его пустым, сохранение конфигурации завершится ошибкой.
Как видно из Рис.5, некоторые поля и кнопки формы недоступны для изменения:
- Выражение в источнике данных;
- Тип данных таблицы;
- Поле представления;
- Обработчики представления.
Их можно будет использовать только после того, как мы заполним поля таблицы, определив их тип и задав им идентификаторы (Рис. 6)
Здесь следует обратить внимание на параметр «Разрешить Null», если установлен этот флажок, такое поле нежелательно использовать в качестве ключа.
Конструктор таблиц
Пожалуй, самым важным и интересным моментом в работе с внешними источниками является создание строки подключения. Её конструктор открывается, если нажать кнопку с тремя точками у параметра «Строка соединения».
В первую очередь нам предложат определиться с драйвером, который будет использоваться для подключения (Рис. 7)
Неправильное определение этого параметра не позволит подключиться к сторонней информационной базе. Также следует понимать, что не все указанные в выпадающем списке драйвера могут быть использованы для автоматического формирования строки соединения. Если платформа выдала ошибку (Рис. 8), то строку соединения придется прописывать вручную.
Для SQL драйвера, нажатие на кнопку «Далее» открывает следующую форму (Рис. 9)
Сама строка представляет собой жестко регламентированную конструкцию.
Пример строки подключения
Рассмотрим стороннюю базу данных, созданную в Microsoft Access и расположенную в корне диска D. Для подключения этой базы мы должны использовать соответствующий драйвер, но его выбор в конструкторе строки приводит к появлению ошибки Рис.8.
Самостоятельно пропишем параметры подключения.
Driver= – именно так выглядит первая часть строки. В фигурных скобках мы определили драйвер.
Для файлов Excel она будет иметь вид , для экселевских файлов, созданных в офисе старше 2003, строка драйвера будет иметь вид .
Отделив точкой запятой этот параметр от следующего, мы должны прописать адрес нашего хранилища (в нашем случае DBQ=D:\База данных1.mdb).
Сложив эти два параметра получим Driver=;DBQ=D:\База данных1.mdb, записав этот параметр, получим доступ к внутренним структурам этой базы.
Для объекта «Внешний источник» мало просто создать его в конфигурации, его еще надо подключить и в режиме «Предприятия». Это можно сделать из меню «Все функции»->Внешние источники. При первом входе в нашу таблицу нам надо прописать ту же самую строку соединения уже в режиме «Предприятия».