При организации обмена данными между двумя системами встает задача определения списка объектов, которые необходимо отправить в систему-корреспондент при очередном запуске обмена. Очевидно, что есть смысл отправлять только те объекты, которые были изменены в текущей системе. В платформе 1С для решения этой задачи используется объект конфигурации, который называется План обмена. План обмена в 1С имеет состав, куда включаются объекты, участвующие в обмене. При записи объекта в плане обмена, выполняется его регистрация к отправке в систему корреспондент.
При очередном запуске обмена система получает полный список объектов, зарегистрированных к обмену, и отправляет их в систему-корреспондент. После удачного выполнения обмена данными регистрация в Плане обмена снимается во избежание повторной отправки данных.
Для корректной работы механизма регистрации предусмотрена нумерация сообщений обмена. При регистрации обмена номер сообщения для объекта устанавливается равным NULL. При отправке сообщения его номер устанавливается равным номеру отправляемого сообщения. При получении подтверждения об успешной передаче данных объекта регистрация объекта снимается в случае, если за время отправки объект снова не был изменен, и его номер сообщения не установлен равным NULL.
Авторегистрация. Регистрация данных в подсистеме "Обмен данными" (1С:БСП)
В составе плана обмена в 1С 8.3 БСП есть возможность устанавливать разрешение или запрет автоматической регистрации объекта к обмену данными. Если для объекта разрешена авторегистрация, то при записи он безусловно зарегистрируется к обмену данными. В таком случае нельзя будет выполнить какие-либо проверки свойств объекта перед его регистрацией и нельзя будет управлять регистрацией объектов.
По этой причине в обменах, реализованных с использованием подсистемы «Обмен данными» библиотеки стандартных подсистем 1С, для всех объектов состава плана обмена запрещена автоматическая регистрация. Регистрация к обмену таких объектов выполняется программно с выполнением проверки различных условий. Так как обмен данными в общем случае содержит различные настройки, позволяющие управлять составом отправляемых данных, перед регистрацией объекта к обмену выполняется как проверка свойств самого объекта, так и проверка различных настроек плана обмена.
Правила регистрации объектов
При регистрации данных в подсистеме «Обмен данными» библиотеки стандартных подсистем 1С для каждого объекта входящего в состав обмена данными описываются правила регистрации объектов. Правила регистрации объектов используются как в обменах в формате КД 2, так и для обменов в универсальном формате. Правила регистрации объектов в 1С представляет собой текстовый макет плана обмена, содержащий описание правил регистрации в формате XML. Разработка правил регистрации объектов всегда выполняется с использованием конфигурации «Конвертация данных 2», даже если обмен выполняется в универсальном формате (КД 3).
Используя правила регистрации объектов, разработчик обмена данными получает возможность управлять составом данных отправляемых в систему корреспондент. В правилах регистрации есть возможность установить проверку свойств объектов, например, регистрировать к отправке только проведенные документы, относящиеся к определенной организации, начиная с определенной даты. В зависимости от настроек плана обмена можно ограничить регистрацию и выгрузку документов относящихся к разным подсистемам. Например, можно добавить настройку плана обмена «Выгружать банковские документы», и в зависимости от значения настройки отправлять либо не отправлять документы, относящиеся подсистеме «Банк» в систему-корреспондент.
Разработка правил регистрации
Как уже было сказано выше, правила регистрации объектов разрабатываются в конфигурации «Конвертация данных 2».
Рис. 1 Правила регистрации объектов в 1С
Чтобы добавить либо изменить существующие правила регистрации объектов необходимо выполнить следующие действия:
- Выгрузить метаданные конфигурации участвующей в обмене, с помощью специализированной обработки;
- Загрузить их в справочник «Конфигурации информационных баз»;
- Загрузить существующие правила регистрации из макета плана обмена, если требуется доработка существующих правил регистрации, а не разработка с нуля.
Примечание: Более подробно о разработке правил регистрации можно почитать в помощнике, встроенном в конфигурацию «Конвертация данных 2»
Отбор объектов по свойствам узла
Рассмотрим основные возможности разработки правил регистрации объектов с использованием конфигурации «Конвертация данных 2». Рассмотрим, как реализован отбор документов при регистрации в обмен в большинстве типовых правил обмена объектов. В систему-корреспондент могут отправляться не все документы, а только по определенным организациям, начиная с определенной даты. Для реализации этого отбора в план обмена добавлены следующие реквизиты:
- Использовать отбор по организациям – Булево;
- Дата начала выгрузки документов – Дата;
- Организации – табличная часть. Реквизиты: Организация – Справочник «Организации».
Реквизиты выведены в форму узла для возможности изменения настроек обмена пользователем.
Рис. 2 Реквизиты в Плане обмена в 1С
Откроем правила регистрации объекта любого из документов:
Рис. 3 Правила регистрации объекта документа
На рисунке видно, что в правилах регистрации присутствует отбор по свойства узла плана обмена. Документ регистрируется к отправке в систему корреспондент при соблюдении следующих условий:
- значение реквизита документа «Дата» больше или равно реквизита плана обмена «Дата начала выгрузки объекта»;
- значение реквизита плана обмена «Использовать отбор по организации» = «Нет», т.е. флаг отбора по организациям в форме узла отключен;
- значение реквизита документа «Организация» входит в список значений в табличной части плана обмена «Организации».
Обратите внимание, что два последних условия объединены в группу с условием ИЛИ, т.е. регистрация выполняется, если соблюдено одно из этих условий: нет отбора по организации или организация документа есть в списке организаций, участвующих в обмене.
Отбор объектов по значениям реквизитов
Отбор по реквизитам документов используется, когда при регистрации нет необходимости проверять какой-либо из реквизитов плана обмена, и выгрузка зависит только от значений реквизитов самого объекта. Например, нам необходимо регистрировать к отправке только проведенные документы. В этом случае настройка условий отправки будет выглядеть следующим образом:
Рис. 4 Настройка условий отправки в Плане обмена в 1С
Особенности регистрации данных для обменов в формате КД 2, КД 3
Есть отличия в регистрации данных обменов в формате «Конвертация данных 2» и обменов в универсальном формате («Конвертация данных 3»). В первом случае (формат КД 2), кроме проверки условий, заданных в правилах регистрации, выполняется анализ измененных реквизитов. Регистрация объекта выполняется только при условии, что был изменен хотя бы один из реквизитов участвующих в обмене (включенный в состав отправляемых реквизитов объекта согласно правилам обмена).
В формате КД 3 такая функция отсутствует, и при любой записи объекта будет выполнена его регистрация. Если для объекта выполняются условия, заданные правилами регистрации, он будет отправлен в систему-корреспондент, даже если по факту в нем не были изменены реквизиты, участвующие в обмене, и даже если изменений реквизитов объекта не было совсем.