Правила Выборочной Регистрации Объектов

1. Naposaram 291 19.06.17 21:23 Сейчас в теме
Всем привет. Стакнулся с тем, что при изменении документа не регистрируется в обмен, регистрируется если изменятся дата, организация, контрагент и все, в коде накапал, что в этом виноваты ПравилаВыборочнойРегистрацииОбъектов, подскажите как они формируются ни как в коде не могу найти. Я так понимаю они каким то образом берутся из правил конвертации. Кто знает подскажите!
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1479 19.06.17 22:02 Сейчас в теме
(1) зайди в обмен. Там есть 3 вида правил. Для загрузки, для выгрузки и правила регистрации, сам на днях ломал голову после модификации таких правил))
3. Naposaram 291 19.06.17 22:18 Сейчас в теме
(2) ПравилаВыборочнойРегистрацииОбъектов - это параметр сеанса, который заполняется из регистра, вроде "ПравилаОбмена" (как то так), вот интересно по какому принципу формируются эти выборочные правила. Это механизм БСП - Обмен данными.
4. Xershi 1479 19.06.17 22:30 Сейчас в теме
5. Naposaram 291 20.06.17 08:09 Сейчас в теме
(4) Ты имеешь ввиду, что причина в правилах регистрации? Их там нет, там только обмена и корреспондента.
6. herfis 498 20.06.17 09:17 Сейчас в теме
(1) Сталкивался с подобным. Глубоко не копал, но эмпирически сделал предварительный вывод что регистрируются объекты с изменением тех реквизитов, для которых существуют ПКС в ПРАВИЛАХ КОНВЕРТАЦИИ. Во всяком случае, когда я добавил нужные ПКС, регистрация пошла.
Danjah; CyberCerber; Rusel; +3 Ответить
7. Naposaram 291 20.06.17 14:38 Сейчас в теме
(6) ПКС - ты про правила конвертации свойств? Я тоже так думаю, но дело в том, что в ПКС указано несколько реквизитов (Организация -> Организация, Номенклатура -> Номенклатура) "прямой" выгрузки, а для других, их там штук 10, через обработчики (ПередВыгрузкой и т.п.).

Тогда получается, что для выборочной регистрации берутся только реквизиты которые выгружаются на прямую?
8. herfis 498 20.06.17 15:07 Сейчас в теме
(7) Да. Правила Конвертации Свойств.
Через обработчики ПКО? ПередВыгрузкой? Не знаю такого способа. Может, ПриЗагрузке и иже с ними? Тогда проблема понятна.
В идеале надо переделать на ПКС. При загрузке делается только тогда, когда в источнике в принципе невозможно определить сопоставление. Это чрезвычайно редко бывает в очень хитрых случаях. Гораздо чаще этот прием используют просто от недостатка опыта в настройке КД. В идеале вся конвертация должна производиться в источнике.
Но можешь и просто создать фиктивные ПКС, просто чтобы выгрузка по ним происходила хоть какая-то, а при загрузке по-прежнему будешь тулить свои костыли в обработчиках.
orilien; Naposaram; +2 Ответить
9. Naposaram 291 20.06.17 15:17 Сейчас в теме
(8)
В идеале надо переделать на ПКС.


Да "ПриЗагрузке", просто конфигурации абсолютно разные и через ПКС не сделать.

Но можешь и просто создать фиктивные ПКС, просто чтоб


Я думал попробовать немного по другому из параметра сеанса "ПравилаВыборочнойРегистрацииОбъектов" - получается строка с реквизитами через запятую, думаю просто добавить строкой необходимые реквизиты при регистрации, должно прокатить и ПКО изменять не понадобится.
10. herfis 498 20.06.17 15:31 Сейчас в теме
(9)
Да "ПриЗагрузке", просто конфигурации абсолютно разные и через ПКС не сделать.

Вот давай не будем. Я собаку съел на обменах между абсолютно разными конфигурациями. Делается.
(9)
Я думал попробовать немного по другому из параметра сеанса "ПравилаВыборочнойРегистрацииОбъектов" - получается строка с реквизитами через запятую, думаю просто добавить строкой необходимые реквизиты при регистрации, должно прокатить и ПКО изменять не понадобится.

Ну, дерзай. Я в эту сторону не копал. Меня полностью устроило типовое поведение. Просто сначала отлаживал неполные правила и заметил траблы с регистрацией. Потом понял что полные регает нормально и успокоился. Все логично. Нафига выгружать в приемник изменения объекта, которые на приемнике отразиться не должны?
11. Naposaram 291 20.06.17 16:04 Сейчас в теме
(10)
Вот давай не будем. Я собаку съел на обменах между абсолютно разными конфигурациями. Делается.

Может ты прав. Например возможно ПКС-ом сделать следующее: В источнике есть реквизит Номенклатура и Количество, а в приемнике это реквизиты табличной части? Не нашел другого варианта как сделать "ПередОбработкой".

Нафига выгружать в приемник изменения объекта, которые на приемнике отразиться не должны?

Да не, эт понятно, что "ПравилаВыборочнойРегистрацииОбъектов" - сделаны для того что бы снизить не нужные выгрузки и т.п.
12. herfis 498 20.06.17 16:34 Сейчас в теме
(11)
Может ты прав. Например возможно ПКС-ом сделать следующее: В источнике есть реквизит Номенклатура и Количество, а в приемнике это реквизиты табличной части? Не нашел другого варианта как сделать "ПередОбработкой".

В смысле, в приемнике одна строка?
Тогда так:
1) в перед выгрузкой ПКГС табличной части (правила конвертации группы свойств - т.е. на папочке ТЧ клацаешь изменить - открываются ее обработчики) пишешь:
КоллекцияОбъектов = Новый Массив;
КоллекцияОбъектов.Добавить(1);
Это просто для того, чтобы КД знала, что в ТЧ есть строка и надо ее конвертировать. Подойдет любая итерируемая коллекция, а содержимое ее неважно, т.к. все остальное мы укажем непосредственно через ПКС. Можно было бы сразу таблицу значений подсунуть и правильно ее заполнить - тогда в обработчиках ПКС можно ничего не писать. Но вариант с обработчиками ПКС более лаконичный и наглядный при беглом просмотре правил.
2) а в ПКС этой ТЧ пишешь в ПередВыгрузкой
- для "Номенклатура": Значение = Источник.Номенклатура; (ну и задать правило для номенклатуры)
- для "Количество": Значение = Источник.Количество;
13. Naposaram 291 20.06.17 16:40 Сейчас в теме
(12) Ну в принципе почти так и сделал
Прикрепленные файлы:
14. herfis 498 20.06.17 16:41 Сейчас в теме
(13) Что ж ты мне голову-то тогда морочишь? :)
16. Naposaram 291 20.06.17 16:48 Сейчас в теме
(14)
Что ж ты мне голову-то тогда морочишь? :)


Выманиваю информацию =)

Просто получается для таких ситуаций, где в ПКС не указан "Источник" (в данном случае грубо говоря Номенклатура), в "ПравилаВыборочнойРегистрацииОбъектов" не попадает и получается при изменении в документе "Номенклатуры" и "Количества" в обмене не будет зарегистрирован.
19. Darklight 32 16.10.17 13:52 Сейчас в теме
(16)Вот так оно и есть. Это просто издевательство какое-то. Сделали дополнительные правила регистрации объектов в обмене по критерию контроля изменения определённых реквизитов. Без прямой возможности чётко управлять этим. Да ещё и в правилах конвертации объектов, а не в правилах регистрации - полный бардак!

В общем, чтобы объект регистрировался в обмене при изменении какого-либо реквизита - в правилах конвергенции этого объекта - этот реквизит должен быть обязательно указан в списке "Конвертация свойств" (можно даже с флагом "Отключить", главное присутствие) - реквизит должен быть обязательно заполнен в поле "Источник" ("Правила конвертации свойства").

При этом в типовых правилах (проверял "УТ10.3->БУХ3.0") есть ошибки - такое "Правило конвертации свойства" может быть задано без заполнения поля "Источник" (при этом получения значения из источника прописывается в алгоритме "Перед выгрузкой"). Соответственно - такой реквизит(ы) регистрируемого объекта источника не будут проверяться на изменение и, если изменятся только они - то объект не будет зарегистрирован в обмене! Вот такая лажа!

Но, таких случаев мало. Для вышеназванной конфигурации я по реквизиту "СкладОрдер" нашёл такие документы:

АвансовыйОтчет
ВозвратТоваровОтПокупателя
ПоступлениеТоваровУслуг

Но ошибки есть и в других правилах с другими реквизитами (но не со всеми, использующими отдельные алгоритмы определения значения), например, правиало документа "ПлатежныйОрдерСписаниеДенежныхСредств" имеет алгоритм определения значения реквизита "Контрагент" для приёмника, на основе двух реквизитов "ФизЛицо" и "Контрагент" источника, но ни один из них не указан в правилах конвертации свойств.
Соответственно, изменение любого из них (без изменения других реквизитов, указанных в правиле) не будет приводить к регистрации объекта в таблице изменений плана обмена.

Вот такие баги - просто жесть! Сделан механизм попросту через одно место!
Прикрепленные файлы:
rusrus; user1088651; Raybek; Artem-B; Pushno; stoptime; kivals; Vida; user659168_xec8787; serega_sun; kild; Naposaram; +12 Ответить
20. Darklight 32 16.10.17 13:54 Сейчас в теме
(19)
Прикрепленные файлы:
22. _wlad_ 26.10.18 16:43 Сейчас в теме
(19)
"Правило конвертации свойства" может быть задано без заполнения поля "Источник" (при этом получения значения из источника прописывается в алгоритме "Перед выгрузкой"). Соответственно - такой реквизит(ы) регистрируемого объекта источника не будут проверяться на изменение и, если изменятся только они - то объект не будет зарегистрирован в обмене! Вот такая лажа!


На это никто не обращает внимания,пока не врежется лично.
На регистрацию влияет поле источник в правилах конвертации, а в правилах регистрации это задать нельзя.
Л-логика!

Я так отключал регистрацию при изменении одного реквизита. Очистил источник, а в коде записал "Значение= Истичник.Реквизит" . Перестало регать.
26. Raybek 18.01.21 08:14 Сейчас в теме
(19) Специально зашел, чтобы плюсануть, добрый Человек! " дня сижу - роюсь в хитростях Правил РЕГИСТРАЦИИ
27. _KaA 110 10.01.22 20:11 Сейчас в теме
(1)
Судя по годам уже не актуально, но оставлю тут мои рассуждения:

В методе РеквизитыРегистрацииСвойств обработки КонвертацияОбъектовИнформационныхБаз выбираются все свойства источника из правила ПКО, которые указаны явно (не пустые).
Свойства должны быть заполнены и при этом имя не должно быть служебным (не начинается на символ "{"). Например, не подходят свойства {УникальныйИдентификатор}.
Аналогично для свойств табличных частей, полей поиска, при этом сами группы тоже игнориуются.

По такому принципу мы обходим все ПКО, в результате получаем огромную таблицу с колонками (в скобках пример значений):

ИмяОбъекта ("Справочник._ДемоОрганизации")
ТипОбъектаСтрокой ("СправочникСсылка._ДемоОрганизации")
ИмяПланаОбмена ("_ДемоОбменСБиблиотекойСтандартныхПодсистем")
ИмяТабличнойЧасти ("КонтактнаяИнформация")
Порядок (-50)
РеквизитыРегистрации ("АдресЭП, Вид, Город, ДоменноеИмяСервера, ЗначенияПолей, НомерТелефона, НомерТелефонаБезКодов, Представление, Регион, Страна, Тип, ВидДляСписка, ДействуетС, Значение")
СтруктураРеквизитовРегистрации (тоже что и в строке, только структурой)

После этого полученная таблица укладывается в одно из полей Структуры, а структура хранится в реквизите ПравилаЗачитанные регистра сведений "ПравилаДляОбменаДанными"
(тип реквизита ХранилищеЗначений) и используется как кэш. При начале сеанса работы пользователя по этой таблице заполняется параметр сеанса ПравилаВыборочнойРегистрацииОбъектов.

Идем далее.
При записи объекта, в подписке регистрации, среди прочих проверок, выполняется проверка на сравнение значений полей:
- в базе данных
- в объекте записываемом
и если эти значения одинаковые, то объект НЕ регистрируется к отправке. Те это проверка значения до записи и после записи.
Получается, чтобы зарегистрировать организацию к отправке должен быть хоть один реквизит с изменным значением (список реквизитов см. поле РеквизитыРегистрации).

Теперь самое существенное:
- в обмене через XDTO и обмене по правилам обмена эта штука работает по разному. Точнее в первом варианте ее вообще нет, от слова совсем, поэтому если у вас обмен через XDTO и вы в списке документов выделили 3 строки с документами, НЕоткрывая формы нажали пр. кнопку мыши и сказали Провести у вас к обмену зарегистрируются 3 документа, а при обменах по правилам конвертации регистрации не произойдет.

Собственно, кажется, что такую плюшку лучше поддержать в обменах через пакет XDTO, так как это избавляет от лишнего траффика... Надо писать "знатокам" в 1с :)
Leeeeroy; AlexiyI; +2 Ответить
28. AlexiyI 25.04.22 12:37 Сейчас в теме
(27)
Надо писать "

Благодарю!
Делаю обмен через универсальный формат (XDTO).
Вижу, что проверки модифицированности объекта (для его регистрации) присутствуют, но не работают. Начал уже разматывать этот клубок. Хорошо, наткнулся на это сообщение.
Как я понял, для моего случая этот механизм не будет работать. Придется делать проверки вручную.
29. _KaA 110 05.05.22 15:13 Сейчас в теме
(28)

Да, сейчас у вас проверки модифициованности нет, точнее у всех нет, но 1с поддержит это в будущих релизах (сделают).
15. herfis 498 20.06.17 16:43 Сейчас в теме
Да, точно - перед обработкой. Перед выгрузкой - уже итерация по строкам идет.
17. herfis 498 20.06.17 17:02 Сейчас в теме
Хм... Действительно. Не совсем понятно, как он отработает в таком случае. У меня сейчас более простые правила используются.
В идеале он должен выкупать наличие сложных правил и если не может их полностью формализовать - регистрировать (как меньшее из зол).
Т.е. у тебя сейчас такое правило как ты привел и при изменении номенклатуры регистрации не происходит?
Если так, то я бы попробовал:
1) переделать на ПКС, как я описывал (может, он только на ПКГС лажает)
2) поиграться с ПКС с источником, но без приемника :)
Naposaram; +1 Ответить
18. Naposaram 291 20.06.17 17:06 Сейчас в теме
(17)
Т.е. у тебя сейчас такое правило как ты привел и при изменении номенклатуры регистрации не происходит?

Нееее, не регистрирует.

(17)
Если так, то я бы попробовал:
1) переделать на ПКС, как я описывал (может, он только на ПКГС лажает)
2) поиграться с ПКС с источником, но без приемника :)

Буду пробовать, мож че получиться.
21. 1cUserAndrew 63 21.02.18 00:24 Сейчас в теме
Механизм выборочной регистрации объектов можно отключить!
Для этого в регистре сведений "Правила для обмена данными" есть соответствующий реквизит. По умолчанию в пользовательском режиме он скрыт. Но его можно вытащить на форму через "Еще - Изменить форму...".
Данная настройка доступна только для правил конвертации.
Прикрепленные файлы:
user1088651; lel4ik; ReDvAlL; stoptime; kivals; elga2012; Sergant; Vida; kild; +9 Ответить
23. Vida 15 27.07.19 02:52 Сейчас в теме
(21)Флаг отключила, но документ регистрироваться не начал. Пришлось подсовывать в ПКС с флагом "отключить".
24. Sergant 54 29.07.19 11:23 Сейчас в теме
(21)
Но его можно вытащить на форму через "Еще - Изменить форму...".
Данная настройка доступна только для правил конвертации.


Работает.
25. rago 27.02.20 11:30 Сейчас в теме
Тоже ломал голову как заставить документ выгружаться при изменении реквизита табличной части...
Вышел из ситуации так.
Для нужной табличной части создал ПКС, но поставил галку ОТКЛЮЧИТЬ. В итоге в параметрах сеанса в таблице выборочной регистрации добавилась нужная мне ТЧ и теперь при изменении реквизита этой ТЧ - документ регистрируется к отправке.
Галка ИСПОЛЬЗОВАТЬ ФИЛЬТР ВЫБОРОЧНОЙ РЕГИСТРАЦИИ... стоит
30. пользователь 15.07.22 14:39
Сообщение было скрыто модератором.
...
31. Xershi 1479 17.07.23 17:01 Сейчас в теме
ПравилаВыборочнойРегистрацииОбъектов столкнулся с тем что реквизиты из Документ.ТребованиеНакладная.Материалы поменялись с префиксом удалить. И использовались доработанные правила. Установил использовать из конфигурации и все заработало.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот