Правила регистрации объектов 1с для обмена
В статье описан порядок действий для подключения типовых документов к механизму «Синхронизация данных через универсальный формат» (технология КД 3.0).
Термин «типовой» здесь имеет два значения:
1) документ, который входит в состав типовой конфигурации 1С 8.3
2) документ описан в одном из типовых XDTO-пакетов (важно в контексте статьи).
Например, есть две типовые конфигурации 1С 8.3: 1С:ERP Управление предприятием 2 и 1С:Бухгалтерия 3.0 (конкретные номера релизов значения не имеют). Между этими конфигурациями посредством механизма «Синхронизация данных через универсальный формат» организована передача документа «Счет-фактура полученный» в 1С 8.3 из ERP в Бухгалтерию. А нужна передача данного документа в обратную сторону, из Бухгалтерии в ERP (в типовых такой возможности нет).
1. Подключаем документ в состав плана обмена 1С 8.3 в базе 1С:Бухгалтерия
В исходной типовой базе 1С:Бухгалтерия такого вида документа в списке регистрации изменений нет:
Чтобы его туда добавить, достаточно в конфигураторе этот документ включить в состав плана обмена 1С 8.3 «СинхронизацияДанныхЧерезУниверсальныйФормат».
Если вы отключаете «Авторегистрацию» изменений документа в плане обмена, тогда данный документ необходимо дополнительно включить в состав «Источник» подписок на событие:
Можно программную регистрацию изменений документа организовать самостоятельно.
Если подключение произведено верно, то «Счет-фактура полученный» в 1С 8.3 отобразится на форме регистрации изменений.
2. Настраиваем правила обмена для документа
«ПОД» - это правило обработки данных.
Все правильно: никаких «правил» мы еще не настраивали.
«Универсальный формат» подразумевает наличие двух комплектов правил:
· Из базы-источника в универсальный формат
· Из универсального формата в базу-приемник
В нашем случае типовая конфигурация ERP уже содержит в себе правила для приемки документа «Счет-фактура полученный» в 1С 8.3 из универсального формата. Поэтому нам достаточно настроить эти правила только в конфигурации Бухгалтерия 3.0 для отправки документа (в общем случае пришлось бы настраивать правила и для приемки документа в ERP).
Настроить правила обмена через универсальный формат можно:
· вручную, внося изменения в общий модуль МенеджерОбменаЧерезУниверсальныйФормат13
· с использованием конфигурации «Конвертация данных 3.0» (КД 3) и последующим переносом результатов настройки в общий модуль МенеджерОбменаЧерезУниверсальныйФормат13
В сети есть много информации о том, как выполнить настройку правил обмена КД 3.0, поэтому останавливаться на этом не будем.
Отмечу также, что настройку правил можно производить не в общем модуле, а во внешней обработке, которая подключается к механизму синхронизации. Описаний того, как это сделать в сети так же предостаточно.
Одним из признаков успешности настройки правил является присутствие нашего документа на ветке «AvailableObjectTypes» файла обмена:
Для сравнения посмотрите на документ «СчетФактураВыданный». В типовой конфигурации 1С 8.3 Бухгалтерия 3.0 его выгрузка также изначально не предусмотрена, и ветка «Sending» для него – пустая.
Если типовой документ описан в XDTO-пакете, то для его включения в обмен через механизм «Синхронизация данных через универсальный формат» необходимо выполнить две процедуры:
1. В конфигурации-источнике подключить документ в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат» и настроить механизм регистрации изменений документа в этом плане обмена.
2. Настроить правила обмена (КД 3.0):
a. либо в общем модуле «МенеджерОбменаЧерезУниверсальныйФормат» (название модуля в разных конфигурациях может различаться – нужно уточнять),
b. либо во внешней обработке, которая подключается к механизму синхронизации.
Данный способ универсален и пригоден для любых конфигураций и любых видов объектов (Документов, Справочников и т.п.).
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
В составе плана обмена в 1С 8.3 БСП есть возможность устанавливать разрешение или запрет автоматической регистрации объекта к обмену данными. Если для объекта разрешена авторегистрация, то при записи он безусловно зарегистрируется к обмену данными. В таком случае нельзя будет выполнить какие-либо проверки свойств объекта перед его регистрацией и нельзя будет управлять регистрацией объектов.
Правила регистрации объектов
При регистрации данных в подсистеме «Обмен данными» библиотеки стандартных подсистем 1С для каждого объекта входящего в состав обмена данными описываются правила регистрации объектов. Правила регистрации объектов используются как в обменах в формате КД 2, так и для обменов в универсальном формате. Правила регистрации объектов в 1С представляет собой текстовый макет плана обмена, содержащий описание правил регистрации в формате XML. Разработка правил регистрации объектов всегда выполняется с использованием конфигурации «Конвертация данных 2», даже если обмен выполняется в универсальном формате (КД 3).
Используя правила регистрации объектов, разработчик обмена данными получает возможность управлять составом данных отправляемых в систему корреспондент. В правилах регистрации есть возможность установить проверку свойств объектов, например, регистрировать к отправке только проведенные документы, относящиеся к определенной организации, начиная с определенной даты. В зависимости от настроек плана обмена можно ограничить регистрацию и выгрузку документов относящихся к разным подсистемам. Например, можно добавить настройку плана обмена «Выгружать банковские документы», и в зависимости от значения настройки отправлять либо не отправлять документы, относящиеся подсистеме «Банк» в систему-корреспондент.
Разработка правил регистрации
Как уже было сказано выше, правила регистрации объектов разрабатываются в конфигурации «Конвертация данных 2».
Рис. 1 Правила регистрации объектов в 1С
Чтобы добавить либо изменить существующие правила регистрации объектов необходимо выполнить следующие действия:
- Выгрузить метаданные конфигурации участвующей в обмене, с помощью специализированной обработки;
- Загрузить их в справочник «Конфигурации информационных баз»;
- Загрузить существующие правила регистрации из макета плана обмена, если требуется доработка существующих правил регистрации, а не разработка с нуля.
Примечание: Более подробно о разработке правил регистрации можно почитать в помощнике, встроенном в конфигурацию «Конвертация данных 2»
Отбор объектов по свойствам узла
Рассмотрим основные возможности разработки правил регистрации объектов с использованием конфигурации «Конвертация данных 2». Рассмотрим, как реализован отбор документов при регистрации в обмен в большинстве типовых правил обмена объектов. В систему-корреспондент могут отправляться не все документы, а только по определенным организациям, начиная с определенной даты. Для реализации этого отбора в план обмена добавлены следующие реквизиты:
- Использовать отбор по организациям – Булево;
- Дата начала выгрузки документов – Дата;
- Организации – табличная часть. Реквизиты: Организация – Справочник «Организации».
Реквизиты выведены в форму узла для возможности изменения настроек обмена пользователем.
Рис. 2 Реквизиты в Плане обмена в 1С
Откроем правила регистрации объекта любого из документов:
Рис. 3 Правила регистрации объекта документа
На рисунке видно, что в правилах регистрации присутствует отбор по свойства узла плана обмена. Документ регистрируется к отправке в систему корреспондент при соблюдении следующих условий:
- значение реквизита документа «Дата» больше или равно реквизита плана обмена «Дата начала выгрузки объекта»;
- значение реквизита плана обмена «Использовать отбор по организации» = «Нет», т.е. флаг отбора по организациям в форме узла отключен;
- значение реквизита документа «Организация» входит в список значений в табличной части плана обмена «Организации».
Обратите внимание, что два последних условия объединены в группу с условием ИЛИ, т.е. регистрация выполняется, если соблюдено одно из этих условий: нет отбора по организации или организация документа есть в списке организаций, участвующих в обмене.
Отбор объектов по значениям реквизитов
Отбор по реквизитам документов используется, когда при регистрации нет необходимости проверять какой-либо из реквизитов плана обмена, и выгрузка зависит только от значений реквизитов самого объекта. Например, нам необходимо регистрировать к отправке только проведенные документы. В этом случае настройка условий отправки будет выглядеть следующим образом:
Рис. 4 Настройка условий отправки в Плане обмена в 1С
Особенности регистрации данных для обменов в формате КД 2, КД 3
В формате КД 3 такая функция отсутствует, и при любой записи объекта будет выполнена его регистрация. Если для объекта выполняются условия, заданные правилами регистрации, он будет отправлен в систему-корреспондент, даже если по факту в нем не были изменены реквизиты, участвующие в обмене, и даже если изменений реквизитов объекта не было совсем.
Вас никогда не удивляло, что создание правил регистрации в конфигурации «1С:Конвертация данных» целиком от начала до конца приходится выполнять вручную? Казалось бы — почти для любого действия есть помощник, а для создания прототипа правил регистрации — нет.
Предлагаю Вашему вниманию обработку «Создание правил регистрации». С ее помощью Вы можете:
- Создать прототип правил. Будут созданы правила регистрации для всех объектов метаданных, входящих в состав плана обмена.
- Создать правила регистрации для одностороннего обмена.
Если с первым вариантом использования обработки особых проблем нет, то на втором варианте я хотел бы остановиться более подробно.
Пожалуйста, вспомните, как выполнялась настройка одностороннего обмена до тех пор, как в типовые конфигурации начала внедряться технология on-line обмена.
Сейчас эта же задача решается гораздо проще. Нужно добиться того, чтобы регистрация объектов в соответствующих узлах не выполнялась. И в этом нам как раз помогут правила регистрации.
Итак, что же для этого нужно? Нужно выполнить настройку правил регистрации. Как это выполнить, я расскажу далее.
Нужно получить описание метаданных конфигурации — источника. Откройте обработку «Выгрузка описания структуры метаданных» (входит в комплект поставки конфигурации «1С:Конвертация данных») и снимите флажки «Не выгружать регистры сведений», «Не выгружать регистры накопления», «Не выгружать регистры бухгалтерии» и «Не выгружать регистры расчета». Дело в том, что для наборов записей регистров могут существовать свои правила регистрации.
Затем, в конфигурации «1С:Конвертация данных» загрузим это описание.
Вы можете либо обновить существующую конфигурацию (если она есть в справочнике «Конфигурации»), либо создать новую.
И только тогда, когда в конфигурацию будет загружено описание метаданных конфигурации, для которой создаются правила регистрации, можно выполнить запуск обработки «Создание правил регистрации».
После открытия обработки укажите, что Вы собираетесь сделать — создать прототип правил регистрации (рекомендуется) или обновить существующую регистрацию.
ВНИМАНИЕ. Перед автоматическим созданием правил, обработка удаляет все существующие правила для этой регистрации.
При установке флага «Созданные правила будут участвовать в одностороннем обмена», в обработчик «Перед обработкой» будет дописан фрагмент программного кода:
После нажатия кнопки «Выполнить» обработка создаст правила и откроет форму «Настройка правил регистрации». Вы можете внести дополнительные настройки и сохранить правила регистрации в файл *.xml.
Правила подготовлены, выгружены в файл. Что дальше?
А дальше нужно просто взять и загрузить эти правила регистрации в регистр сведений «Правила для обмена данными» конфигурации — источника.
В составе плана обмена в 1С 8.3 БСП есть возможность устанавливать разрешение или запрет автоматической регистрации объекта к обмену данными. Если для объекта разрешена авторегистрация, то при записи он безусловно зарегистрируется к обмену данными. В таком случае нельзя будет выполнить какие-либо проверки свойств объекта перед его регистрацией и нельзя будет управлять регистрацией объектов.
3. Правила регистрации объектов
При регистрации данных в подсистеме «Обмен данными» библиотеки стандартных подсистем 1С для каждого объекта входящего в состав обмена данными описываются правила регистрации объектов. Правила регистрации объектов используются как в обменах в формате КД 2, так и для обменов в универсальном формате. Правила регистрации объектов в 1С представляет собой текстовый макет плана обмена, содержащий описание правил регистрации в формате XML. Разработка правил регистрации объектов всегда выполняется с использованием конфигурации «Конвертация данных 2», даже если обмен выполняется в универсальном формате (КД 3).
Используя правила регистрации объектов, разработчик обмена данными получает возможность управлять составом данных отправляемых в систему корреспондент. В правилах регистрации есть возможность установить проверку свойств объектов, например, регистрировать к отправке только проведенные документы, относящиеся к определенной организации, начиная с определенной даты. В зависимости от настроек плана обмена можно ограничить регистрацию и выгрузку документов относящихся к разным подсистемам. Например, можно добавить настройку плана обмена «Выгружать банковские документы», и в зависимости от значения настройки отправлять либо не отправлять документы, относящиеся подсистеме «Банк» в систему-корреспондент.
Разработка правил регистрации
Как уже было сказано выше, правила регистрации объектов разрабатываются в конфигурации «Конвертация данных 2».
Рис. 1 Правила регистрации объектов в 1С
Чтобы добавить либо изменить существующие правила регистрации объектов необходимо выполнить следующие действия:
· Выгрузить метаданные конфигурации участвующей в обмене, с помощью специализированной обработки;
· Загрузить их в справочник «Конфигурации информационных баз»;
· Загрузить существующие правила регистрации из макета плана обмена, если требуется доработка существующих правил регистрации, а не разработка с нуля.
Примечание: Более подробно о разработке правил регистрации можно почитать в помощнике, встроенном в конфигурацию «Конвертация данных 2»
Рассмотрим основные возможности разработки правил регистрации объектов с использованием конфигурации «Конвертация данных 2». Рассмотрим, как реализован отбор документов при регистрации в обмен в большинстве типовых правил обмена объектов. В систему-корреспондент могут отправляться не все документы, а только по определенным организациям, начиная с определенной даты. Для реализации этого отбора в план обмена добавлены следующие реквизиты:
· Использовать отбор по организациям – Булево;
· Дата начала выгрузки документов – Дата;
· Организации – табличная часть. Реквизиты: Организация – Справочник «Организации».
Реквизиты выведены в форму узла для возможности изменения настроек обмена пользователем.
Рис. 2 Реквизиты в Плане обмена в 1С
Откроем правила регистрации объекта любого из документов:
Рис. 3 Правила регистрации объекта документа
На рисунке видно, что в правилах регистрации присутствует отбор по свойства узла плана обмена. Документ регистрируется к отправке в систему корреспондент при соблюдении следующих условий:
· значение реквизита документа «Дата» больше или равно реквизита плана обмена «Дата начала выгрузки объекта»;
· значение реквизита плана обмена «Использовать отбор по организации» = «Нет», т.е. флаг отбора по организациям в форме узла отключен;
· значение реквизита документа «Организация» входит в список значений в табличной части плана обмена «Организации».
Обратите внимание, что два последних условия объединены в группу с условием ИЛИ, т.е. регистрация выполняется, если соблюдено одно из этих условий: нет отбора по организации или организация документа есть в списке организаций, участвующих в обмене.
Отбор по реквизитам документов используется, когда при регистрации нет необходимости проверять какой-либо из реквизитов плана обмена, и выгрузка зависит только от значений реквизитов самого объекта. Например, нам необходимо регистрировать к отправке только проведенные документы. В этом случае настройка условий отправки будет выглядеть следующим образом:
Рис. 4 Настройка условий отправки в Плане обмена в 1С
4. Особенности регистрации данных для обменов в формате КД 2, КД 3
В формате КД 3 такая функция отсутствует, и при любой записи объекта будет выполнена его регистрация. Если для объекта выполняются условия, заданные правилами регистрации, он будет отправлен в систему-корреспондент, даже если по факту в нем не были изменены реквизиты, участвующие в обмене, и даже если изменений реквизитов объекта не было совсем.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
В этой статье поговорим о планах обмена. Зачем они нужны? И если нужны, то можно ли сделать свой, не копируя типовую реализацию? Статья предназначена в основном для разработчиков, но будет полезна всем, кто интересуется подобной темой.
Также в плане обмена есть несколько стандартных реквизитов. Например, «Номер принятого» и «Номер отправленного». Эти реквизиты удобно использовать для того, чтобы принимать только актуальную информацию, которая не была ранее принята. А теперь обо всем этом подробней и с примерами. Хоть планы обмена кому-то и кажутся чем-то страшным и необъяснимым, после прочтения статьи, думаю, все станет просто и понятно.
1. Создание и регистрация, узлы плана обмена.
Приведем пример, когда нам нужно выгружать измененные номенклатуры (для ТСД, мобильного устройства, промежуточной базы или пр.).
Ищем в дереве конфигурации ветку «Общие» -- «Планы обмена». Добавляем новый план обмена.
Назовем его «ОбменНоменклатурой_Тест». Включаем в состав нужные объекты. В этом примере справочник «Номенклатура».
//Здесь налаживаем отборы
//и сам код регистрации
Узел = ПланыОбмена.ОбменНоменклатурой_Тест.НайтиПоКоду("Тест");
ПланыОбмена.ЗарегистрироватьИзменения(Узел, Источник);
В режиме предприятия создадим новый узел плана обмена. Это, по сути, элемент плана обмена, который будет использоваться только для одного приемника. Хотя, если не требуется подтверждение о приеме данных, то с одного узла можно рассылать данные всем, но здесь мы такой вариант не рассматриваем, так как он намного проще и будет понятен по ходу статьи.
Создадим новый элемент в справочнике «Номенклатура» в 1С. Переходим снова в обработку, нажимаем кнопку «Обновить» и видим, что у нас этот объект зарегистрировался автоматически.
2. 1С Выгрузка планов обмена.
Например, создадим кнопку в списке плана обмена и назначим на нее обработчик на сервере.
Есть возможность выбирать изменения объектной моделью, вот так:
Пока ВыборкаИзменений.Следующий() Цикл
КонецЦикла;
Также есть возможность выбора изменений запросом:
В процедуре на сервере давайте откроем конструктор запроса с обработкой результата и посмотрим, как выбрать изменения. В конструкторе есть кнопка «Отображать таблицы изменений». После нажатия на эту кнопку мы увидим таблицы, в которых хранятся наши изменения.
Накладывая отбор на узел, мы можем получить изменения только по определенному приемнику, а в ссылке хранится объект, то есть ссылка на номенклатуру. Но при выборе запросом, выгруженные изменения придется помечать вручную.
В итоге процедура будет выглядеть так:
После того как мы воспользуемся кнопкой в обработке регистрации изменений для обмена данными, мы увидим, что данные помечены, как выгруженные. И в колонке «Номер отправленного» мы видим номер пакета, в котором была произведена 1С выгрузка объекта.
3. Порядок снятия с регистрации.
После этого, регистрация изменений будет снята.
Если приемник не получил данные, то при следующей выборке все данные, для которых не снята регистрация будут выгружены повторно.
В общем, повторюсь, план обмена помогает организовать обмен данными со сторонними системами. И в этой статье мы разобрали, как на самом деле просто с ним работать.
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Читайте также: