Обучающие статьи. Урок - Соединение с другой базой
Сегодня мы рассмотрим пример COM-соединения между двумя базами BAS.
COM – объектная модель компонентов; произносится как «ком», технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов, каждый из которых может использоваться во многих программах одновременно. Если более, проще говоря, это некий интерфейс для программ посредством его они могут общаться между собой.
Для связи с другой базой BAS мы воспользуемся этой технологией. Для начала подготовимся, создадим еще одну базу BAS, которая будет копией нашей базы, где мы вели доработки. Для этого нам нужно выгрузить нашу базу с доработками через меню «Администрирование» – «выгрузить информационную базу». В результате у нас будет файлик с расширением «.dt» это расширение обозначает, что файл - это выгрузка базы. Создадим новую, пустую базу (как это делать мы рассматривали на одном из первых уроков) и загрузим в нее нашу выгрузку через меню «Администрирование» - «Загрузить информационную базу».
Теперь подготовим данные. Условной задачей у нас будет загрузка данных по автомобилям и водителям, т.е. копия базы это филиал, где идет учет водителей и машин, но в основной базе тоже необходимо хранить эти данные для объемного учета.
Для того чтобы разделить в базе автомобили наши от филиала, сделаем небольшие доработки: добавим реквизит «ВнешнийНомер» с типом строка. Сюда мы будем записывать код из второй базы, т.к. он может не совпадать с нашим кодом. Простой пример – в нашей базе 3 водителя, в филиале восемь. Еще добавим реквизит «Внешний» тип булево. Его будем устанавливать в значение Истина при загрузке из другой базы, чтобы отличить филиал от основной базы, этот реквизит добавим в форму списка справочника автомобили.
Создадим новую обработку, назовем ее «Загрузка данных из другой базы». У обработки будут два режима работы серверный и файловый, аналогично возможным вариантам баз. Так же нам будут нужны поля для ввода имени базы, сервера, пользователя и пароля.
Для реквизита пароль и поля на форме включим свойство «Режим пароля». Реквизиты «Серверная» и «Файловая» будут с типом булево, так же одновременно можно нажать только один из них. Остальные реквизиты будут с типом строка неограниченной длины.
Разместим реквизиты на форме, а также добавим «взаимовыключение» галочек «Серверная» и «Файловая», а кнопку «Выполнить» переименуем в «Загрузить данные». Так же добавим изменение видимости элементов формы «Надпись сервер» и «Сервер», если включен файловый режим, то скрывать эти элементы. Проставлять галочку «Файловый» будем при открытии.
Загрузка через COM. Установка отображения элементов форми
Загрузка через COM. Вызов процедуры УстановитьВидимость()
Процедура УстановитьВидимость() общая, в ней и будем менять видимость элементов, а вызывать ее будем из трех мест, при открытии и при изменении флажков.
Теперь начнем программировать подключение к базе.
Загрузка через COM. Соединение с базой.
В случае успеха мы получаем доступ ко второй базе. Очень важной особенностью такой работы является то, что мы не можем работать с ссылочными типами данных. Т.е. конструкция: БазаИсточник.Справочники.Номенклатура.НайтиПоКоду(«0001»).Ссылка вернет ошибку. При этом простые типы полностью доступны, такие как строка или число.
Сделаем запрос к внешней базе.
Загрузка через COM. Запрос в базе источнике.
Синтаксис запроса схож с обычным запросом. Теперь обработаем результат запроса. И завершим обработку, обязательно закрыв соединение.
Загрузка через COM. Обработка запроса.
Для простоты понимания кода создадим отдельную процедуру для создания нового элемента.
Загрузка через COM. Создание элемента.
Так же, наша компания проводит обучение по курсам:
Обучение проводится в вечернее время, что позволит вам не отрываться от работы или обучения, практикующим программистом нашей компании.
Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20
Свяжитесь с нами
Если вы хотите получить больше информации, заполните эту форму. Мы свяжемся с вами в ближайшее время.