Похожие презентации:
Лекция_10У.ppsx
1. Обмен данными
2. Механизмы обмена данными «1С:Предприятия»
позволяют организовывать обменинформацией, хранимой в базе данных, с
другими программными системами.
В качестве таких систем могут выступать как
другие информационные базы «1С:Предприятия»
(имеющие аналогичную или отличающуюся
конфигурацию), так и программные системы, не
основанные на «1С:Предприятии».
3. Механизмы обмена данными «1С:Предприятия»
Такая гибкость обмена данными достигаетсяза счет того, что средства обмена данными
«1С:Предприятия» могут использоваться в
различных комбинациях.
Кроме этого, формат обмена данными основан
на языке XML, являющимся на сегодняшний
день общепринятым средством представления
данных.
4. Механизмы обмена данными «1С:Предприятия»
К механизмам обмена данными могут бытьотнесены:
• Планы обмена
• XML-сериализация
• Средства чтения и записи документов
XML.
5. Схема взаимодействия механизмов обмена данными
6. Планы обмена
При помощи планов обмена можно получитьинформацию о том, какие элементы данных были
изменены и в какой узел обмена их необходимо
передать.
Это возможно благодаря тому, что планы
обмена содержат механизм регистрации
изменений.
Информация об измененных данных
переносится с помощью сообщений,
инфраструктура которых также поддерживается
планами обмена.
7.
XML-сериализация позволяет преобразоватьобъект «1С:Предприятия» в последовательность
данных, представленных в формате XML. Кроме
этого, XML-сериализация выполняет и обратное
преобразование – преобразует последовательность
данных формата XML в объект «1С:Предприятия»,
при условии что имеется соответствующий тип
«1С:Предприятия».
Запись и чтение документов XML
обеспечивают запись/чтение документов формата
XML из встроенного языка.
8. Механизмы обмена данными «1С:Предприятия»
При реализации алгоритма обменаданными перечисленные механизмы могут
быть использованы как все вместе, так и в
различной комбинации.
В каждом конкретном случае разработчик
решает эту задачу самостоятельно.
9. План обмена
Для того чтобы существовала возможностьобмена какими-либо данными, необходимо
некоторым образом идентифицировать участников
обмена, и для каждого из них описать перечень
обмена.
Обе эти задачи позволяет решать объект
конфигурации План обмена.
Подобно тому, как элементами данных
справочника являются элементы справочника,
элементами данных плана обмена являются узлы
плана обмена.
10. План обмена
Каждый узел идентифицирует участникаобмена по данному плану обмена. Кроме этого, в
каждом плане обмена всегда существует один
предопределенный узел, идентифицирующий
данную информационную базу.
В одной конфигурации может существовать
несколько планов обмена.
Каждый план обмена определяет набор данных,
которым будет производиться обмен в рамках
данного плана, и сам механизм этого обмена.
11. План обмена
Наличие нескольких планов обмена можетпотребоваться,
•если с разными узлами ведется обмен разным
составом данных, или
•когда схема организации обмена с одними
узлами отличается от схемы организации обмена с
другими узлами.
12. Объекты обмена
В обмене данными могут участвовать:• объекты базы данных: элементы
справочников, документы и т. д.,
• необъектные данные: наборы записей
регистров, последовательностей, константы,
• специальный объект встроенного языка –
УдалениеОбъекта.
13. План обмена
Разработчик имеет возможность определитьсостав каждого плана обмена, указав объекты
конфигурации, данные которых должны
участвовать в обмене по данному плану.
При описании состава данных плана обмена
разработчик имеет возможность указать для
каждого типа объектов признак
Авторегистрация.
Этот признак определяет, каким образом план
обмена будет отслеживать изменения данных.
14. План обмена
Возможность отслеживать изменения данныхреализована в плане обмена за счет использования
механизма регистрации изменений.
Работа этого механизма базируется на том, что
каждый из объектов обмена имеет свойство
ОбменДанными, с помощью которого можно указать,
для каких узлов необходимо производить
регистрацию изменений этого объекта.
Свойство ОбменДанными не хранится в базе
данных, а используется только во время записи
объекта обмена.
15. План обмена
Признак Авторегистрация, устанавливаемыйпри указании состава данных плана обмена,
позволяет указать, что параметры обмена данными
будут формироваться каждый раз самим
механизмом регистрации изменений на основании
информации, содержащейся в плане обмена.
После автоматического заполнения параметров
обмена разработчик имеет возможность внести
изменения.
16. План обмена
Для этого следует использовать обработчикисобытий объектов, участвующих в обмене, –
ПередЗаписью и ПередУдалением, в которых можно
модифицировать список узлов-получателей (то есть
тех узлов, для которых регистрируются изменения).
Существует возможность отключить
авторегистрацию изменений, и тогда параметры
обмена данными нужно будет формировать
полностью средствами встроенного языка.
Для этого рекомендуется использовать все те же
обработчики событий ПередЗаписью и
ПередУдалением.
17. Записи регистрации изменений
При записи и удалении объектов обмена планобмена формирует записи регистрации
изменений.
Записи регистрации изменений хранятся в
таблицах регистрации изменений, причем для
каждого объекта обмена ведется своя таблица.
При изменении объекта обмена в таблице
регистрации изменений создается столько записей,
сколько узлов-получателей указано в параметрах
обмена данными у объекта обмена.
18. Записи регистрации изменений
Каждая запись при этом будет хранитьссылку на свой узел-получатель.
Таблицы регистрации изменений создаются
лишь в том случае, если соответствующий
объект метаданных указан в составе хотя бы
одного плана обмена.
19. Сообщение
Кроме ссылки на узел обмена, для которогорегистрируются изменения, каждая запись
таблицы регистрации изменений хранит также
номер сообщения, в котором изменение было
передано в первый раз в этот узел.
До тех пор, пока сообщение не будет
передано в первый раз, это поле хранит Null.
20. Инфраструктура сообщений
Сообщение с точки зрения плана обмена – этоединица обмена информацией. Поэтому одной из
важнейших составляющих плана обмена, помимо
службы регистрации изменений, является
инфраструктура сообщений.
Поскольку сообщения передаются в рамках
плана обмена от одного узла к другому, каждое
сообщение точно ассоциировано с планом обмена,
имеет уникальный номер и одного отправителя и
получателя.
21. Инфраструктура сообщений
За нумерацию сообщений отвечаетинфраструктура сообщений.
Благодаря этому записи регистрации изменений
и имеют возможность хранить номера сообщений, в
которых эти изменения были переданы первый
раз.
Инфраструктура сообщений позволяет также
получать подтверждения от узла-получателя о
приеме сообщений.
22. Инфраструктура сообщений
Такое подтверждение содержится в каждомсообщении, приходящем от узла-получателя в виде
номера последнего принятого сообщения.
Впоследствии, проанализировав номер
последнего принятого сообщения и номера
сообщений, содержащиеся в записях регистрации
изменений, разработчик может удалить записи
регистрации изменений, прием которых
подтвержден получателем.
23. XML-сериализация
Термином XML-сериализация обозначаетсямеханизм, позволяющий представить объект
«1С:Предприятия» в виде последовательности
данных в формате XML.
Кроме этого, XML-сериализация позволяет
выполнить и обратное преобразование –
представить последовательность данных формата
XML в виде объекта «1С:Предприятия», если
существует подходящий тип данных.
24. XML-сериализация
Объект обмена, являющийся в системе«1С:Предприятие» единым целым, на самом деле
представляет собой совокупность данных
различных типов, определенным образом
связанных между собой.
Например, элемент справочника кроме кода и
наименования может содержать некоторое
количество реквизитов различного типа и
некоторое количество табличных частей,
содержащих, в свою очередь, некоторое количество
реквизитов различного типа.
25. XML-сериализация
В результате XML-сериализации вся этасовокупность данных представляется в виде
последовательности соответствующих данных
формата XML.
Вследствие обратного преобразования
производится «сборка» объекта при условии, что
существует подходящий тип данных
«1С:Предприятия».
26. Запись/чтение документов XML
В отличие от XML-сериализации, механизмызаписи/чтения документов XML позволяют
работать с данными формата XML на базовом
уровне, без привязки к объектам
«1С:Предприятия».
В частности, они позволяют открывать файлы
XML для чтения, читать данные из файлов,
создавать новые файлы XML и записывать в них
данные.
27. Универсальный механизм обмена данными
Для исключения ситуаций совпадения номеровв каждой базе к номерам документов и кодам
справочников необходимо добавлять уникальный
префикс, однозначно идентифицирующий базу
данных.
Тогда даже при совпадении номеров новых
документов, они все равно будут отличаться
префиксом, и конфликта не возникнет.
Для хранения префикса номеров целесообразно
использовать объект конфигурации Константа.
28. Константа для обмена данных
Объект конфигурации Константа предназначендля создания в базе данных таблиц, в которых будет
храниться информация, не изменяющаяся во
времени или изменяющаяся очень редко.
Каждый объект конфигурации Константа
описывает таблицу для хранения одного
значения.
Например, новый объект конфигурации
Константа с именем ПрефиксНумерации.
Тип значения константы – Строка с
фиксированной длиной 2 символа.
29. Доработка объектов конфигурации, участвующих в обмене
Необходимо внести изменения в модули всехобъектов, участвующих в обмене (документы,
справочники, планы видов характеристик и др.).
Эти изменения будут заключаться в том, что
теперь при формировании номера документа и
кода справочника или плана видов характеристик
будет использоваться значение константы
ПрефиксНумерации для обеспечения уникальности
номеров и кодов в каждой из баз.
30. Доработка объектов конфигурации, участвующих в обмене
Функцию формирования префикса номерацелесообразно вынести в общий модуль, поскольку не
исключена возможность того, что в будущем алгоритм
формирования префикса документов может быть
изменен.
Добавление общего модуля Обмен с функцией
Функция ПолучитьПрефиксНомера() Экспорт
ВозвратКонстанты.ПрефиксНумерации.Получить();
КонецФункции
31. Доработка объектов конфигурации, участвующих в обмене
Функцию формирования префикса номерацелесообразно вынести в общий модуль, поскольку не
исключена возможность того, что в будущем алгоритм
формирования префикса документов может быть
изменен.
Добавление общего модуля Обмен с функцией
Функция ПолучитьПрефиксНомера() Экспорт
ВозвратКонстанты.ПрефиксНумерации.Получить();
КонецФункции
Эта функция просто возвращает значение константы
ПрефиксНумерации.
32. Доработка объектов конфигурации, участвующих в обмене
Для доработки справочников конфигурациинеобходимо в модули объектов добавить
обработчик события ПриУстановкеНовогоКода.
В модули документов необходимо добавить
обработчик события ПриУстановкеНовогоНомера
33. Добавление плана обмена
Центром любого алгоритма обмена данными,вокруг которого группируются прочие механизмы,
является план обмена.
Для организации плана обмена организации с
филиалом необходимо добавить новый объект
конфигурации План обмена с именем Филиалы,
представление объекта – Филиал.
На закладке Данные создать реквизит плана
обмена Главный, имеющий тип Булево.
34. Реквизит Главный
Этот реквизит необходим для того, чтобыразрешать коллизии при обмене данными.
Под коллизией понимается ситуация, когда один
и тот же объект обмена данными был изменен
одновременно в двух узлах.
В этом случае необходимо анализировать
значение реквизита Главный и принимать
изменения только в том случае, если они сделаны в
главном узле.
В случае коллизии изменения, произведенные не
в главном узле будут отвергаться.
35. Добавление плана обмена
Далее необходимо определить состав объектов,участвующих в обмене (закладка Основные
кнопка Состав).
Далее создается основная форма узла с
обработчиком события формы
ПриСозданииНаСервере.
Этот обработчик понадобится нам для того,
чтобы запретить установку реквизита Главный
для предопределенного узла, соответствующего
данной информационной базе.
36. Процедуры обмена данными
Для инициализации обмена даннымииспользуется обработка.
Необходимо добавить новый объект
конфигурации Обработка с именем ОбменДанными.
Процедура записи данных
Сами процедуры записи и чтения данных обмена
размещаются в модуле объекта План обмена
Филиалы.
Процедура чтения данных
Проверка работы обмена данными
Запуск базы филиала
37. Механизм распределенных информационных баз
Механизм распределенных информационных базявляется развитием универсального механизма
обмена данными.
Он реализует привычную по прежним версиям
«1С:Предприятия» модель распределенной
информационной базы, которая подразумевает
наличие идентичных конфигураций во всех узлах,
имеет древовидную структуру и позволяет
выполнять обмен как измененными данными, так и
изменениями, внесенными в конфигурацию.
38. Механизм распределенных информационных баз
Механизм распределенныхинформационных баз реализуется планами
обмена.
Для этого объект конфигурации План
обмена содержит свойство Распределенная
информационная база.
39. Механизм распределенных информационных баз
Если это свойство установлено, для данного планаобмена включается механизм распределенных
информационных баз и разработчик получает
возможность создать распределенную базу
исключительно интерактивными средствами, без
написания кода.
Такая возможность не исключает программного
управления обменом, которое также доступно при
работе с распределенными информационными
базами.
40. Механизм распределенных информационных баз
Распределенная информационная базадолжна иметь четко определенную древовидную
структуру.
Количество уровней в такой структуре не
ограничено, главное – между двумя связанными
узлами всегда должно быть определено
отношение
«главный – подчиненный»
41. Структура распределенной информационной базы
42. Механизм распределенных информационных баз
Любой узел этой структуры может иметьпроизвольное количество подчиненных узлов (в том
числе и ни одного).
Кроме этого, все узлы, кроме одного, должны иметь
по одному главному узлу, и один узел не будет иметь
главного узла – это корневой узел.
Такое жесткое задание структуры узлов необходимо
для определения порядка миграции изменений данных
и изменений конфигурации.
Конфигурация может быть изменена только в
узле, не имеющем главного узла (то есть в
корневом). Изменения данных могут
выполняться в любом узле.
43. Механизм распределенных информационных баз
Изменения конфигурации будут передаваться отглавного к подчиненным узлам.
Изменения данных могут передаваться между
любыми связанными узлами.
Разрешение коллизий также будет производиться
исходя из отношения «главный – подчиненный».
Если изменения выполнены одновременно и в
главном, и в подчиненном узле, при обмене
данными будут приняты только изменения главного
узла, а изменения подчиненного отвергнуты.
44. Механизм распределенных информационных баз
Для любого подчиненного узла возможносоздание начального образа – информационной
базы, созданной на основании конфигурации и
данных главного узла в соответствии с правилами,
определяемыми планом обмена.
Процедура создания начального образа узла
может выполняться неоднократно, при этом
удаляются все записи изменений в базе главного
узла для подчиненного узла.
Сразу после создания начальный образ готов к
обмену с главным узлом.
45. Механизм распределенных информационных баз
Создать подчиненный узел в распределеннойинформационной базе можно разными способами, но
создание начального образа является
рекомендуемым.
Для построения распределенной
информационной базы понадобится создать еще
один объект конфигурации План обмена, который
назовем Отделения, представление объекта –
Отделение.
Для этого плана обмена необходимо установить
свойство Распределенная информационная база
46. Механизм распределенных информационных баз
Все действия по обмену данными враспределенной информационной базе можно
выполнить программно.
Для этого нужно создать обработку, которая будет
программно выполнять для выбранного узла все
необходимые действия.
В конфигураторе центральной базы создать
новый объект конфигурации Обработка с именем
ОбменСОтделениями.