1. Naposaram 208 19.06.17 21:23 Сейчас в теме

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

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

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


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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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


Работает.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Набережные Челны
зарплата до 90 000 руб.
Полный день

Программист 1С
Набережные Челны
зарплата от 40 000 руб. до 110 000 руб.
Полный день

Программист 1С
Казань
зарплата от 40 000 руб. до 110 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день