|
КД. Поиск по гуид. | ☑ | ||
---|---|---|---|---|
0
Конструктор
20.06.11
✎
13:34
|
Реквизит источника хранит guid объекта в приемнике. Как настроить поиск объекта в приемнике по значению этого реквизита?
|
|||
1
Поручик
20.06.11
✎
14:11
|
Для на .. зачем? Искать объект приемника по внутреннему идентификатору объекта источника ужо не канает?
|
|||
2
Конструктор
20.06.11
✎
14:12
|
они разные изначально. сопоставить можно только по этому реквизиту.
|
|||
3
Конструктор
20.06.11
✎
14:13
|
Базы разные
|
|||
4
Поручик
20.06.11
✎
14:14
|
Как-то так.
Вместо ПараметрыОбъекта["УникальныйИдентификаторДокумента"] напиши Объект.Реквизит_С_Твоим_УИДом В ПКО ПослеЗагрузки // Формирует ПКО по уникальному идентификаторому, переданному из РТ ОтчетОРозничныхПродажахУИД = Новый УникальныйИдентификатор(ПараметрыОбъекта["УникальныйИдентификаторДокумента"]); СсылкаНаДокументПКО = Документы.ПриходныйКассовыйОрдер.ПолучитьСсылку(ОтчетОРозничныхПродажахУИД); |
|||
5
GenV
20.06.11
✎
15:26
|
Еще вариант:
1) Создаем любое свойство (Можно параметр, указав галку "Передавать данные в параметр"). правило у свойства не указываем. 2) Устанавливаем для свойства галку "Поиск объекта при загрузке по свойству". Обязательно!, иначе выгрузится как обычное свойство. 3) В перед выгрузкой свойства прописываем код: Значение = Новый УникальныйИдентификатор; // Значение должно содержать наш УИД или его строковое представление УзелКоллекцииСвойств.ЗаписатьНачалоЭлемента("Свойство"); УстановитьАтрибут(УзелКоллекцииСвойств, "Имя", "{УникальныйИдентификатор}"); Если НЕ ВыполнитьОбменДаннымиВОптимизированномФормате Тогда УстановитьАтрибут(УзелКоллекцииСвойств, "Тип", "Строка"); КонецЕсли; одЗаписатьЭлемент(УзелКоллекцииСвойств, "Значение", Значение); УзелКоллекцииСвойств.ЗаписатьКонецЭлемента(); Отказ = Истина; // Само свойство выгружать не нужно 4) Теперь, т.к. КД сначала считывает все свойства поиска, а типовой УИД выгружается первым, то наш УИД затрет при загрузке типовой. Остальное будет работать по стандартным механизмам КД, как если бы переданным нами УИД был реальным. |
|||
6
GenV
20.06.11
✎
15:31
|
5+ это для обработки УниверсальныйОбменДаннымиXML иначе можно оставить:
Значение = Новый УникальныйИдентификатор; // Значение должно содержать наш УИД или его строковое представление УзелКоллекцииСвойств.ЗаписатьНачалоЭлемента("Свойство"); УстановитьАтрибут(УзелКоллекцииСвойств, "Имя", "{УникальныйИдентификатор}"); одЗаписатьЭлемент(УзелКоллекцииСвойств, "Значение", Значение); УзелКоллекцииСвойств.ЗаписатьКонецЭлемента(); Отказ = Истина; // Само свойство выгружать не нужно |
|||
7
Конструктор
04.07.11
✎
14:03
|
Не вышло никак. Может что криво сделал.
Пробую сейчас так. 1. Добавляю с нуля новое правило обмена данными для регистра сведений, отказавшись от автоматического формирования правил. 2. Указываю РС МойРегистр, в дополнительных настройках ничего не устанавливаю (на запоминать выгруженные - ставится автоматически). 3. Обработчики не назначаю. 4. Отказываюсь от автоматического создания ПКС и ПКЗ у подчиненных объектов, а также от создания правил выгрузки. 5. Далее работаю в окне "Настройка правил обмена" при выделенном ПКО МойРегистр. 5.1. Нажимаю Синхронизация свойств на ком.панели списка Конвертация свойств и указываю в качестве свойства нужное мне измерение. 5.2. Снимаю флаг "Рекурсивно создавать..." и добавляю. 5.3. Открываю ПКС, ставлю флаг Получить значение из входящих данных (потому что в справке так и написано, что для передачи данных в параметр нужно устанавливать этот флаг) 5.4. Переключаю правило в режим ".Передавать данные в параметр". 5.5. Ввожу имя параметра "uid". 5.6. В обработчике Перед выгрузкой пишу ВходящиеДанные = Новый Структура; ВходящиеДанные.Вставить("uid", Источник.МойУИД); Пока все верно? |
|||
8
Конструктор
04.07.11
✎
14:15
|
^
|
|||
9
Конструктор
04.07.11
✎
15:47
|
видимо мало знатоков КД на мисте) или в отпусках все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |