Создание внешней обработки по синхронизации структур справочников «Структура предприятия»
Для чего нужна синхронизация справочников?
Как сопоставлять идентичные элементы?
Как выбирать элементы, подлежащие синхронизации в системе программы 1С
Какой использовать транспорт и формат сообщений для синхронизации справочников?
1. Для чего нужна синхронизация справочников?
Синхронизация справочников задача довольно распространенная. Система конфигурации 1С, в т.ч. и «Управление холдингом» включают в себя различные механизмы интеграции и обмена данными, например, механизм распределенной информационной базы (РИБ), обработку «Универсальный обмен данными в формате XML». Если по какой-либо причине использование типовых способов обмена не представляется возможным, то есть вариант создать свое решение через внешнюю обработку. Рассмотрим основные подходы к созданию такой обработки для решения задачи синхронизации.
2. Как сопоставлять идентичные элементы?
Синхронизация обычно подразумевает полную идентичность элементов и иерархии справочников в различных базах, включая УИД и все реквизиты. Новые элементы справочника добавляются в одной базе, затем через обмен передаются в другие базы; при этом УИД/Код/Наименование/Родитель во всех базах будут одинаковыми и их можно использовать для сопоставления
Есть более сложный вариант задачи, когда нужно синхронизировать две базы с уже заполненными справочниками, т.е. имеющими разный УИД и, возможно, разные коды и даже значения других реквизитов. Такая задача требует предварительного сопоставления элементов справочников. Для сопоставления можно использовать регистр сведений, через который связывают идентичные элементы справочников, например, такой-то УИД элемента первой базы соответствует такому-то УИД элемента второй базы. Можно обойтись и без регистра, а добавить реквизит «УИД_Сопоставления» в справочник однй из баз.
3. Как выбирать элементы, подлежащие синхронизации в системе программы 1С
Вариант с полной синхронизацией. Он обычно используется при начальном заполнении базы, когда справочник еще пустой. Никаких вспомогательных механизмов для регистрации элементов, подлежащих выгрузке, не требуется; достаточно использовать выборку запросом.
Задача поддержания синхронности при дальнейшей эксплуатации баз данных интереснее. Постоянно перегружать весь справочник ресурсоемко, поэтому выгружают только добавленные/измененные/удаленные элементы. Для этих целей удобно использовать Планы обмена, в них регистрировать добавленные/измененные/удаленные элементы, используя подписки на события (события «При записи», «Перед удалением»). Зарегистрированные в плане обмена элементы выбирают запросом.
4. Какой использовать транспорт и формат сообщений для синхронизации справочников?
Этот вопрос решается с системными администраторами и, вероятно, со службой безопасности. Технически возможны любые варианты:
прямое подключение к базе через COM-соединение (довольно редкий вариант по причине низкой производительности и безопасности),
подключение через веб-сервисы,
выгрузка/загрузка файлов,
передача сообщений через шины данных.
В зависимости от выбранного варианта придется настраивать соответствующий интерфейс.
Если используете прямое подключение к базе-респонденту, то можно обойтись вообще без сообщений, а создавать/редактировать непосредственно объекты информационной базы.
В остальных случаях передаваемую информацию обычно упаковывают в xml- или json-сообщения и, при использовании файловой передачи, сохраняют их в виде файлов.
При использовании в xml- или json-форматов структуру передаваемой информации удобно фиксировать в xdto-пакетах, тогда легко применять автоматическую сериализацию/десериализацию.
Мы рассмотрели основные моменты, которые необходимо учесть при построении внешней обработки по синхронизации любых справочников, в т.ч. и «Структура предприятия».
Создание внешней обработки по синхронизации
структур справочников «Структура предприятия»
1. Для чего нужна синхронизация справочников?
Синхронизация справочников задача довольно распространенная. Система конфигурации 1С, в т.ч. и «Управление холдингом» включают в себя различные механизмы интеграции и обмена данными, например, механизм распределенной информационной базы (РИБ), обработку «Универсальный обмен данными в формате XML». Если по какой-либо причине использование типовых способов обмена не представляется возможным, то есть вариант создать свое решение через внешнюю обработку. Рассмотрим основные подходы к созданию такой обработки для решения задачи синхронизации.
2. Как сопоставлять идентичные элементы?
Синхронизация обычно подразумевает полную идентичность элементов и иерархии справочников в различных базах, включая УИД и все реквизиты. Новые элементы справочника добавляются в одной базе, затем через обмен передаются в другие базы; при этом УИД/Код/Наименование/Родитель во всех базах будут одинаковыми и их можно использовать для сопоставления
Есть более сложный вариант задачи, когда нужно синхронизировать две базы с уже заполненными справочниками, т.е. имеющими разный УИД и, возможно, разные коды и даже значения других реквизитов. Такая задача требует предварительного сопоставления элементов справочников. Для сопоставления можно использовать регистр сведений, через который связывают идентичные элементы справочников, например, такой-то УИД элемента первой базы соответствует такому-то УИД элемента второй базы. Можно обойтись и без регистра, а добавить реквизит «УИД_Сопоставления» в справочник однй из баз.
3. Как выбирать элементы, подлежащие синхронизации в системе программы 1С
Вариант с полной синхронизацией. Он обычно используется при начальном заполнении базы, когда справочник еще пустой. Никаких вспомогательных механизмов для регистрации элементов, подлежащих выгрузке, не требуется; достаточно использовать выборку запросом.
Задача поддержания синхронности при дальнейшей эксплуатации баз данных интереснее. Постоянно перегружать весь справочник ресурсоемко, поэтому выгружают только добавленные/измененные/удаленные элементы. Для этих целей удобно использовать Планы обмена, в них регистрировать добавленные/измененные/удаленные элементы, используя подписки на события (события «При записи», «Перед удалением»). Зарегистрированные в плане обмена элементы выбирают запросом.
4. Какой использовать транспорт и формат сообщений для синхронизации справочников?
Этот вопрос решается с системными администраторами и, вероятно, со службой безопасности. Технически возможны любые варианты:
В зависимости от выбранного варианта придется настраивать соответствующий интерфейс.
Если используете прямое подключение к базе-респонденту, то можно обойтись вообще без сообщений, а создавать/редактировать непосредственно объекты информационной базы.
В остальных случаях передаваемую информацию обычно упаковывают в xml- или json-сообщения и, при использовании файловой передачи, сохраняют их в виде файлов.
При использовании в xml- или json-форматов структуру передаваемой информации удобно фиксировать в xdto-пакетах, тогда легко применять автоматическую сериализацию/десериализацию.
Мы рассмотрели основные моменты, которые необходимо учесть при построении внешней обработки по синхронизации любых справочников, в т.ч. и «Структура предприятия».
Специалист компании ООО “Кодерлайн”