x 

Обучающие статьи. Урок 32 - Соединение с другой базой

1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00
Рейтинг:   / 0
ПлохоОтлично 

Опубликовано: 2017.06.26

COM соединение

Сегодня мы рассмотрим пример COM-соединения между двумя базами «1С:Підприємство».

COM – объектная модель компонентов; произносится как «ком», технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов, каждый из которых может использоваться во многих программах одновременно. Если более, проще говоря, это некий интерфейс для программ посредством его они могут общаться между собой.

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

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

Для того чтобы разделить в базе автомобили наши от филиала, сделаем небольшие доработки: добавим реквизит «ВнешнийНомер» с типом строка. Сюда мы будем записывать код из второй базы, т.к. он может не совпадать с нашим кодом. Простой пример – в нашей базе 3 водителя, в филиале восемь. Еще добавим реквизит «Внешний» тип булево. Его будем устанавливать в значение Истина при загрузке из другой базы, чтобы отличить филиал от основной базы, этот реквизит добавим в форму списка справочника автомобили.

Создадим новую обработку, назовем ее «Загрузка данных из другой базы». У обработки будут два режима работы серверный и файловый, аналогично возможным вариантам баз. Так же нам будут нужны поля для ввода имени базы, сервера, пользователя и пароля.

COM соединение 

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

Разместим реквизиты на форме, а также добавим «взаимовыключение» галочек «Серверная» и «Файловая», а кнопку «Выполнить» переименуем в «Загрузить данные». Так же добавим изменение видимости элементов формы «Надпись сервер» и «Сервер», если включен файловый режим, то скрывать эти элементы. Проставлять галочку «Файловый» будем при открытии.

Листинг 1. Загрузка через COM:

COM соединение 

Листинг 2. Загрузка через COM.

COM соединение 

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

Теперь начнем программировать подключение к базе.

Листинг 3. Загрузка через COM. Соединение с базой.

COM соединение 

В случае успеха мы получаем доступ ко второй базе. Очень важной особенностью такой работы является то, что мы не можем работать с ссылочными типами данных. Т.е. конструкция: БазаИсточник.Справочники.Номенклатура.НайтиПоКоду(«0001»).Ссылка вернет ошибку. При этом простые типы полностью доступны, такие как строка или число.

Сделаем запрос к внешней базе.

Листинг 4. Загрузка через COM. Запрос в базе источнике.

COM соединение 

Синтаксис запроса схож с обычным запросом. Теперь обработаем результат запроса. И завершим обработку, обязательно закрыв соединение.

Листинг 5. Загрузка через COM. Обработка запроса.

COM соединение 

Для простоты понимания кода создадим отдельную процедуру для создания нового элемента.

Листинг 6. Загрузка через COM. Создание элемента.

COM соединение 

Так же, наша компания проводит обучение по курсам:

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

 От вас требуются уверенные знания ПК, и желание научиться чему-то новому.