Правила регистрации объектов 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 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1087    PROSTO-1C    0    

12

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    977    PROSTO-1C    4    

10

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

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

04.10.2024    1829    MadRave    11    

24

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

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

10.09.2024    1816    MadRave    1    

17

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1253    n_mezentsev    10    

8

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

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    4104    John_d    10    

52

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5354    PROSTO-1C    12    

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

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

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

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

в котором

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


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

отдельная история при формировании нового узла, когда перебираются все объекты базы и к каждому из низ применяются правила.
wild83; i.c.h; uribur; +3 Ответить
6. MaxS 2944 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 299 09.07.22 01:11 Сейчас в теме
Возможно ли использовать БСПшный обмен РИБ совсем без правил регистрации объектов?
9. Ali_q 1 17.12.22 16:48 Сейчас в теме
Здравствуйте! Знаю, я поздновато, и все же спрошу: Можно ли регистрировать один документ как другой? Например Заказ клиента в источнике регистрировать как заказ на производство в приемнике?
10. BarsukM 22.12.22 15:38 Сейчас в теме
(9) Вопрос, по-моему, не имеет смысла т.к. как именно зарегистрированный объект будет загружаться в приемник, определяется правилами конвертации объектов в базе-приемнике, а не в источнике. Т.е. на этапе регистрации в источнике, приемник не имеет значения. О нем может быть вообще ничего неизвестно, особенно если речь об обмене через универсальный формат.
Eillecho; +1 Ответить
11. Ali_q 1 22.12.22 16:48 Сейчас в теме
12. cdiamond 235 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 53 29.03.24 14:03 Сейчас в теме
21. Newbiein1C 04.11.24 13:34 Сейчас в теме
(15) Они как раз работают так как было задумано разработчиками системы, судя по всему :))).
Относитесь к ПРО как к фильтру.
Т.е. если объект входит в состав обмена, а ПРО для него нет, то и фильтра нет, и регистрируется к обмену любые измененные/созданные экземпляры объекта.
Это не слишком интуитивно, но если немного подумать, становиться вполне понятно, зачем так сделали.
Чтобы уменьшить количество писанины и анализируемого текста.
Зачем для того чтобы убрать объект из Обмена доходить до ПРО? Ведь гораздо проще сразу не указывать его в составе ПланаОбмена ;)
И второй заяц убиваемый этим выстрелом - отпадает необходимость писать ПРО для тех объектов, которые нужны в Обмене без всякого фильтра.
22. Newbiein1C 04.11.24 13:47 Сейчас в теме
(15) Они как раз работают так как было задумано разработчиками системы, судя по всему :))).
Относитесь к ПРО как к фильтру.
Т.е. если объект входит в состав обмена, а ПРО для него нет, то и фильтра нет, и регистрируется к обмену любые измененные/созданные экземпляры объекта.
Это не слишком интуитивно, но если немного подумать, становиться вполне понятно, зачем так сделали.
Чтобы уменьшить количество писанины и анализируемого текста.
Зачем для того чтобы убрать объект из Обмена доходить до ПРО? Ведь гораздо проще сразу не указывать его в составе ПланаОбмена ;)
И второй заяц убиваемый этим выстрелом - отпадает необходимость писать ПРО для тех объектов, которые нужны в Обмене без всякого фильтра.
16. Colonel146 20.02.24 10:47 Сейчас в теме
А если надо регистрировать помеченые на удаление и проведенные объекты. Не даёт поставить условие.
Может где приписывать ручками надо?
17. maal 3 27.03.24 11:04 Сейчас в теме
В стандартных ПРО для ЗУП-БП указано, что выгружать физлиц только если есть ссылки на этих физлиц в других объектах (Ведомостях в банк, Отражениях). Как подправить правила, чтобы к обмену регистрировались все измененные (новые) физлица?
19. CepeLLlka 76 17.06.24 11:23 Сейчас в теме
В общем чтобы какой-то объект не выгружался, нужно либо через расширение, дописывая в процедуре "ПриЗаписи", признак отключения регистрации
&После("ПередЗаписью")
Процедура ОРО_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");
КонецПроцедуры

Либо можно в правиле регистрации объекта, удалить отбор по "Дата >= ДатаНачалаВыгрузкиДокументов" в свойствах плана объекта, а в свойствах объекта, добавить отбор по "Дата <= Значение = Дата(2100, 1,1);"
Прикрепленные файлы:
ittechnolog; simy4; mpvrus21; +3 Ответить
20. Pavel_nv 17 01.10.24 08:31 Сейчас в теме
Управление нашей фирмой, редакция 3.0 (3.0.9.163)

Почему-то не срабатывает отбор по свойствам. На скрине выше есть закладка "Обработчики событий" - "Перед обработкой" достаточно там ввести Отказ = Истина; тогда срабатывает отмена регистрации.
Оставьте свое сообщение