Правила регистрации объектов 1С:БСП

20.04.22

Разработка - БСП (Библиотека стандартных подсистем)

Здравствуйте, коллеги! В статье рассмотрим работу с правилами регистрации объектов в библиотеке стандартных подсистем 1С.

При организации обмена данными между двумя системами встает задача определения списка объектов, которые необходимо отправить в систему-корреспондент при очередном запуске обмена. Очевидно, что есть смысл отправлять только те объекты, которые были изменены в текущей системе. В платформе 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 такая функция отсутствует, и при любой записи объекта будет выполнена его регистрация. Если для объекта выполняются условия, заданные правилами регистрации, он будет отправлен в систему-корреспондент, даже если по факту в нем не были изменены реквизиты, участвующие в обмене, и даже если изменений реквизитов объекта не было совсем.

См. также

БСП. Добавляем отчет в меню Отчеты

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3234    John_d    10    

89

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1779    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    810    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2675    YA_418728146    11    

45

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

В этой статье расскажем об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С: БСП).

19.01.2024    6592    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3910    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1294 20.04.22 21:04 Сейчас в теме
РИБ Розница 2.3, запрет авторегистрации, в правилах регистрации объекта нет, но по факту все объекты отправляются в узел, в каком месте поправить чтобы это отключить?
user717534; +1 Ответить
2. Cyberhawk 135 21.04.22 07:54 Сейчас в теме
(1) Создать ПРО для этого типа объектов
3. malikov_pro 1294 21.04.22 08:38 Сейчас в теме
(2) Это понятно, в целом странная логика, авторегистрацию отменили, правил нет, значит можно все на автомате ...
user717534; +1 Ответить
4. Cyberhawk 135 21.04.22 08:45 Сейчас в теме
(3) Я так понял БСП выбрала подход "мы программно в БСП только добавляем узлы-получатели согласно ПРО", с которым платформенная авторегистрация несовместима.
Если бы оставили платформенную авторегистрацию, то пришлось бы в БСП использовать подход "мы удаляем все что там наавторегистрировалось и оставляем только то, что прошло наши программные фильтры ПРО".
А для имитации поведения платформенной авторегистрации выбрали состояние "для типа объектов отсутствует ПРО".
user717534; d4rkmesa; +2 Ответить
5. malikov_pro 1294 21.04.22 10:35 Сейчас в теме
(4) информацию с ходу не нагуглил, результат разбора (контекст Розница 2.3 РИБ по магазину)
в БСП конфигурации правила распаковываются и хранятся в РС ПравилаДляОбменаДанными,
список правил хранится в ТЗ упакованные в хранилище значения в реквизите ПравилаЗачитанные

при записи объекта, срабатывает подписка ПоМагазинуРегистрация
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью(), которая вызывает ЗарегистрироватьИзменениеОбъекта()

делается фильтр по признаку "объект изменен"
подробнее про "Правила Выборочной Регистрации Объектов" https://forum.infostart.ru/forum15/topic173286/ в 19 комментарии, у меня РИБ загружается все при каждой записи

сама проверка правил регистрации осуществляется в
ОбменДаннымиСобытия.ВыполнитьПравилаРегистрацииОбъектовДляПланаОбменаПопыткаИскл­ючение

в котором

Если ПравилаРегистрацииОбъекта.Количество() = 0 Тогда // Правила регистрации не заданы.
  // Если для объекта не созданы ПРО и отключена авторегистрация,
  // то регистрируем объект на всех узлах плана обмена кроме предопределенного.


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

отдельная история при формировании нового узла, когда перебираются все объекты базы и к каждому из низ применяются правила.
i.c.h; uribur; +2 Ответить
6. MaxS 2854 05.05.22 08:53 Сейчас в теме
Разработка правил регистрации объектов всегда выполняется с использованием конфигурации «Конвертация данных 2», даже если обмен выполняется в универсальном формате (КД 3).
В последних КД 3 уже можно редактировать правила регистрации и даже правила обмена КД 2.
user1436515; EvgeniyOlxovskiy; i.c.h; BarsukM; Moto45; quazare; +6 Ответить
7. user880776 23.06.22 15:39 Сейчас в теме
что-то я не понял этот момент, регистрировать в обмен только проведенные, но при этом значение Проведен = Ложь?
Прикрепленные файлы:
Sas001; pricec; EvgeniyOlxovskiy; VickWood; Ali_q; mybracho; +6 Ответить
8. METAL 289 09.07.22 01:11 Сейчас в теме
Возможно ли использовать БСПшный обмен РИБ совсем без правил регистрации объектов?
9. Ali_q 1 17.12.22 16:48 Сейчас в теме
Здравствуйте! Знаю, я поздновато, и все же спрошу: Можно ли регистрировать один документ как другой? Например Заказ клиента в источнике регистрировать как заказ на производство в приемнике?
10. BarsukM 22.12.22 15:38 Сейчас в теме
(9) Вопрос, по-моему, не имеет смысла т.к. как именно зарегистрированный объект будет загружаться в приемник, определяется правилами конвертации объектов в базе-приемнике, а не в источнике. Т.е. на этапе регистрации в источнике, приемник не имеет значения. О нем может быть вообще ничего неизвестно, особенно если речь об обмене через универсальный формат.
11. Ali_q 1 22.12.22 16:48 Сейчас в теме
12. cdiamond 233 24.05.23 16:21 Сейчас в теме
Совсем печаль с этой регистрацией пошла. Теперь указывай либо модуль регистрации, либо в XML, а КД 3.1 совсем непригоден - созданные в нём правила работают непредсказуемым образом либо вообще не работают.
13. igor78 30.08.23 13:01 Сейчас в теме
Здравствуйте.
Столкнулся с такой проблемой при синхронизации УТ-БУХ - не выгружается история изменений (конкретно не выгружается история изменения адреса у контрагента) подскажите - куда копать и с чего начать, не могу нигде найти как выгружается эта история изменений
14. milanse 38 12.10.23 08:39 Сейчас в теме
Нигде не мог найти толкового описания событий правил регистрации с примерами. То что галочками можно поставить и так ясно понятно. Кстати в новой БСП 3.1.8 кажется есть параметр, позволяющий для КД управлять правилом проверки измененности реквизитов, можно проверять, можно не проверять как в КД.
15. angabanga5 27.11.23 13:07 Сейчас в теме
у меня правила регистрации вообще не работают как надо. я изменил типовые, поотключал правила, котоыре мне не нужны и вуаля - ничего не работает. всеравно все регается к обмену, обожаю
18. redtram 29 29.03.24 14:03 Сейчас в теме
16. Colonel146 20.02.24 10:47 Сейчас в теме
А если надо регистрировать помеченые на удаление и проведенные объекты. Не даёт поставить условие.
Может где приписывать ручками надо?
17. maal 1 27.03.24 11:04 Сейчас в теме
В стандартных ПРО для ЗУП-БП указано, что выгружать физлиц только если есть ссылки на этих физлиц в других объектах (Ведомостях в банк, Отражениях). Как подправить правила, чтобы к обмену регистрировались все измененные (новые) физлица?
Оставьте свое сообщение