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

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

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


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

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


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

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

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

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

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

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

В смысле, в приемнике одна строка?
Тогда так:
1) в перед выгрузкой ПКГС табличной части (правила конвертации группы свойств - т.е. на папочке ТЧ клацаешь изменить - открываются ее обработчики) пишешь:
КоллекцияОбъектов = Новый Массив;
КоллекцияОбъектов.Добавить(1);
Это просто для того, чтобы КД знала, что в ТЧ есть строка и надо ее конвертировать. Подойдет любая итерируемая коллекция, а содержимое ее неважно, т.к. все остальное мы укажем непосредственно через ПКС. Можно было бы сразу таблицу значений подсунуть и правильно ее заполнить - тогда в обработчиках ПКС можно ничего не писать. Но вариант с обработчиками ПКС более лаконичный и наглядный при беглом просмотре правил.
2) а в ПКС этой ТЧ пишешь в ПередВыгрузкой
- для "Номенклатура": Значение = Источник.Номенклатура; (ну и задать правило для номенклатуры)
- для "Количество": Значение = Источник.Количество;
13. Naposaram 290 20.06.17 16:40 Сейчас в теме
(12) Ну в принципе почти так и сделал
Прикрепленные файлы:
14. herfis 498 20.06.17 16:41 Сейчас в теме
(13) Что ж ты мне голову-то тогда морочишь? :)
16. Naposaram 290 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 290 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 1475 17.07.23 17:01 Сейчас в теме
ПравилаВыборочнойРегистрацииОбъектов столкнулся с тем что реквизиты из Документ.ТребованиеНакладная.Материалы поменялись с префиксом удалить. И использовались доработанные правила. Установил использовать из конфигурации и все заработало.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)