Для чего нужны планы обмена

Планы обмена 1С 8.3

Планы обмена в 1С 8.3 — объект метаданных конфигурации, служащий для реализации синхронизации данных в системе 1С 8.

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

Обычно обмен в 1С построен с использованием специальных правил обмена, которые формируются с помощью конфигурации Конвертация данных.

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Настройки и свойства планов обмена в 1С

Как ранее было замечено, план обмена очень похож на обычный справочник в 1С, и поэтому мы рассмотрим только главные отличия обмена.

Как работать с планом обмена

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

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Распределенная информационная база

Если этот флаг установлен в настройках, то данный план обмена является распределенной информационной базой (РИБ).

Распределенная информационная база — территориально распределенная система на основе одинаковой конфигурации 1С 8.3. РИБ помимо изменений данных умеет передавать и изменений конфигурации, что очень удобно, например, при обновлении релиза конфигурации.

Состав плана обмена

Настройка, с помощью которой разработчик управляет набором объектов для обмена:

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

В составе плана обмена может быть 3 состояния объекта:

Планы обмена и производительность 1С

Из-за системных особенностей реализации планов обмена не рекомендуется злоупотреблять выгрузкой изменений по планам обмена. Дело в том, что при чтении изменений блокируются все таблицы изменений. Т.е. при выгрузке план обмена не дает записать новые изменений, а следовательно, блокирует и сами элементы — справочники, документы и т.д.

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

Другие статьи по 1С:

Видеолекции по технологии обмена в 1С 8.2:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

1С 8.x : Планы обмена и их использование

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

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

При описании состава данных плана обмена разработчик имеет возможность указать для каждого типа объектов признак Авторегистрация. Он определяет, каким образом план обмена будет отслеживать изменения этих данных.

Состав данных обмена должен выглядеть следующим образом:
Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена
Теперь с помощью конструктора создадим основную форму узла, чтобы описать в ней некоторые действия, которые должны выполняться при создании нового узла обмена.
Суть этих действий будет заключаться в том, что при создании нового узла обмена мы должны будем сформировать для него все необходимые записи регистрации изменений для всех объектов конфигурации, входящих в данный план обмена. Это будет своего рода начальная синхронизация узла обмена всеми данными обмена.
Прежде всего, опишем в модуле формы узла служебную переменную, которая будет хранить признак того, является ли записываемый узел новым или нет.
Перем РегистрацияВНовыйУзел;
Затем создадим обработчик события формы ПередЗаписью.
Код 1C v 8.х
Этот обработчик и будет устанавливать значение нашей служебной переменной в Истина в случае записи нового узла плана обмена.
После этого создадим обработчик события формы ПриЗаписи.
Код 1C v 8.х

Откроем конфигуратор и создадим новый объект конфигурации Обработка с именем ОбменДанными. Перейдем на закладку Прочее и откроем модуль объекта.
Создадим в нем процедуру ОбменСФилиалами.
Код 1C v 8.х
Теперь создадим основную форму обработки и в обработчик события нажатия кнопки Выполнить – КнопкаВыполнитьНажатие вставим вызов процедуры ОбменСФилиалами().
Код 1C v 8.х

Сами процедуры записи и чтения данных обмена мы разместим в модуле объекта План обмена Филиалы. Сначала создадим процедуру, которая используется нами при обмене данными, – ЗаписатьСообщениеСИзменениями.
Код 1C v 8.х
На этом создание процедуры записи данных обмена закончено.

Источник

План обмена

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

В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для обмена со складами, другой — для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно «уже», чем состав данных, предназначенных для обмена с офисами.

Назначение

В плане обмена хранится список узлов, — участников обмена в распределенной информационной системе. В качестве узлов могут выступать информационные базы 1С:Предприятия 8, информационные базы 1С:Предприятия 7.7 или другие информационные системы, не основанные на 1С:Предприятии.

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

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

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

Также в плане обмена указывается состав данных, которыми предполагается вести обмен:

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

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

Механизмы, реализуемые планом обмена

Источник

План обмена

Общие сведения об обмене данными

Механизмы обмена данными «1С:Предприятия» позволяют организовывать обмен информацией, хранимой в базе данных, с другими программными системами. К механизмам обмена данными могут быть отнесены:

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

Что такое план обмена

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

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

В обмене данными могут участвовать:

Итак, при записи и удалении объектов обмена план обмена формирует записи регистрации изменений. Записи регистрации изменений хранятся в таблицах регистрации изменений, причем для каждого объекта обмена ведется своя таблица. При изменении объекта обмена в таблице регистрации изменений создается столько записей, сколько узлов-получателей указано в параметрах обмена данными у объекта обмена. Каждая запись при этом будет хранить ссылку на свой узел-получатель.

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

Инфраструктура сообщений позволяет также получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения. Впоследствии, проанализировав номер последнего принятого сообщения и номера сообщений, содержащиеся в записях регистрации изменений, разработчик может удалить записи регистрации изменений, прием которых подтвержден получателем.

Добавление плана обмена

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Этот реквизит понадобится нам для того, чтобы разрешать коллизии при обмене данными. Под коллизией понимается ситуация, когда один и тот же объект обмена данными был изменен одновременно в двух узлах. В этом случае мы будем анализировать значение реквизита Главный и принимать изменения только в том случае, если они сделаны в главном узле. В случае коллизии изменения, произведенные не в главном узле, мы будем отвергать.

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

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

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

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

Кнопка «Зарегистрировать изменения» должна быть доступна только в случае, если текущий узел не является предопределенным для данной информационной базы, иначе регистрация изменений невозможна. Чтобы обеспечить такое поведение кнопки, создадим в модуле формы списка функцию, выполняющуюся на сервере без контекста и возвращающую истину, если переданный в функцию узел является предопределенным.

Процедуры обмена данными

Процедуры записи и чтения данных

Источник

Объект 1С «Планы обмена». Распределенная информационная база (РИБ)

Объект 1С «Планы обмена» используется для реализации механизмов обмена данными, для чего:

Т.о. можно сказать что объект «Планы обмена» служит для реализации синхронизации данных в системе.

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

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

Особенности плана обмена 1С:

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Влияние реализации плана обмена на производительность 1С

Не рекомендуется злоупотреблять выгрузкой изменений по планам обмена: при чтении изменений блокируются все таблицы изменений, т.е. в процессе выгрузки план обмена не дает записать новые изменений, а следовательно, блокирует и сами элементы — справочники, документы и т.д. Поэтому выгрузку рекомендуется производить в нерабочее время или совсем маленькими партиями данных с их блокированием на максимально короткий срок.

Состав плана обмена

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

В составе плана обмена может быть 3 состояния объекта:

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

Механизмы, реализуемые планом обмена:

Распределенная информационная база (РИБ)

Распределенная информационная база (РИБ) — территориально распределенная система информационных баз на основе одинаковой конфигурации 1С; это иерархическая древовидная структура, состоящая из отдельных информационных баз 1С:Предприятия – узлов распределенной информационной базы, между которыми организован обмен данными с целью синхронизации конфигурации и данных.

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

РИБ позволяет переносить:

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

Для чего нужны планы обмена. Смотреть фото Для чего нужны планы обмена. Смотреть картинку Для чего нужны планы обмена. Картинка про Для чего нужны планы обмена. Фото Для чего нужны планы обмена

В этом случае становятся доступны:

Например, при отмеченном у плана обмена флаге «Распределенная база данных» при получении данных от подчиненного узла возникает событие » ПриПолученииДанныхОтПодчиненного «, определяемое в модуле плана обмена.

Возможности распределенной информационной базы:

Особенности распределенной информационной базы:

При использовании механизма распределенных информационных баз в соответствующем объекте «План обмена» для отдельно взятой информационной базы (входящей в распределенную) определяется:

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

Служба регистрации изменений

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

Для каждого элемента данных, указанного в плане обмена, ведется своя таблица регистрации изменений. Таблицы имеют разную структуру, в зависимости от того, для каких элементов данных регистрируются изменения, но все-таки структуры таблиц подобны. Каждая запись указывает на некоторый элемент данных, некоторый узел и содержит номер сообщения, в котором это изменение передано в первый раз.

При изменении элемента данных его изменение регистрируется для всех узлов, в которые это изменение должно быть передано. Таким образом, в результате изменения элемента данных в таблице регистрации изменений появляется N записей, где N — количество узлов, для которых регистрируются изменения. Каждая из этих записей указывает на одно и то же значение элемента данных и на различные узлы.

Непосредственно после выполнения регистрации изменения, в каждой новой записи изменений номер сообщения имеет значение NULL. При первой отправке изменения в составе сообщения, он заменяется номером сообщения, в котором изменение отправлено.

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

Инфраструктура сообщений

С точки зрения плана обмена, между узлами происходит обмен сообщениями. Каждое сообщение содержит изменения данных, изменения конфигурации (если это распределенная информационная база) и ряд служебной информации.

Каждое сообщение точно ассоциировано с планом обмена, имеет уникальный номер и имеет одного отправителя и одного получателя.

Сообщение оформляется как документ XML, имеющий определенную структуру. Инфраструктура сообщений позволяет формировать нужную структуру сообщения, и контролировать ее корректность. В частности, инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.

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

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

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

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