|
Поиск ссылки на объект по произвольному правилу поиска в ПКО | ☑ | ||
---|---|---|---|---|
0
ezhikofff
03.07.20
✎
15:20
|
Добрый день.
Как то за всю свою профессиональную деятельность работа с правилами обмена обходила меня, либо я усердно искал пути обхода. А тут так сложилось что надо именно правилами обмена. Поэтому приходиться клепать на скорую руку, но не вся методика понятна и прозрачна. Изначально создал План обмена без автоматического заполнения правил и свойств, т.е. план обмена настраивается полностью вручную. Обмен между старой и Новой УТ 11, но это неважно. В общем, необходимо найти Склад в приемнике по значению реквизита (с типом склады) справочника Склады в источнике. Ссылки на склады равны по ГУИДу в источнике и приемнике. Т.е. в базе источник есть склады Склад1 И Склад2 с реквизитом СоответствиеВНовойУТ (тип Склады) и значением НовыйСклад, в приемнике есть ссылка НовыйСклад гуид которой = гуиду НовогоСклада в базе источник. Делаю так: В ПКС справочника Склады определяю поле поиска СоответствиеВНовойУТ с отметкой Передавать данные в параметр, имя параметра СоответствиеВНовойУТ и галкой Поиск объекта при загрузке по свойству. Далее, в ПКО справочника Склады в обработчике Поля поиска пишу код: СкладУТ = ПараметрыОбъекта["СоответствиеВНовойУТ"]; Если ЗначениеЗаполнено(СкладУТ) Тогда СкладУИД = СкладУТ.УникальныйИдентификатор(); СсылкаНаОбъект = Справочники.Склады.ПолучитьСсылку(СкладУТ); КонецЕсли; И не работает. Подскажите как правильно это делается? |
|||
1
Ёпрст
03.07.20
✎
15:30
|
(0) достаточно просто в Перед выгрузкой в ПКО Склад написать значение = Источник.СоответствиеВНовойУТ;
и всё. |
|||
2
ezhikofff
03.07.20
✎
15:47
|
(1) вот и я думаю, что должно быть как-то проще, установил в ПКО склада Перед выгрузкой Значение = Источник.СоответствиеВНовойУТ; и не работает тоже, поле склад в приемнике - пустая ссылка
При чем, если ставить галку Искать объект по внутреннему идентификатору, то в приемнике устанавливает Склад1, а если не ставить галку, то склад пустой... Что еще не так? |
|||
3
ezhikofff
03.07.20
✎
16:04
|
(1) В общем, такой способ работает, если использовать в ПКС склада у ПКО документа, т.е. установить придется через источник.склад: Значение = Источник.Склад.СоответствиеВНовойУТ;
Но это как то некомильфо, в каждом доке переприсваивать значение источника склад, хочется в ПКО склада прописать данное правило. Как это правильно сделать? |
|||
4
Ёпрст
03.07.20
✎
20:57
|
(3) ну, можно глобальные обработчики смотреть, иесли у объекта есть реквизит с типом СправочникиССылка.Склады, то выгружать твой гуид
|
|||
5
Ёпрст
03.07.20
✎
20:59
|
типа Перед выгрузкой объекта глядеть..
|
|||
6
Immortal
03.07.20
✎
21:47
|
в ПКО должна быть установлена галка поиска по уникальному идентификатору.
Ну и передавать не в параметр, а сразу чтобы значение было с нужным идентификатором. Если не сможешь понять как - инициализируй объект с нужным guid и выгружай по правилу |
|||
7
ezhikofff
05.07.20
✎
10:08
|
(6) да да, примерно так это и представляю, вопрос как это сделать технически..
|
|||
8
Immortal
05.07.20
✎
21:35
|
смотри в справке ВыгрузитьПоПравилу()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |