|
Конвертация данных. Из свойства справочника в реквизит | ☑ | ||
---|---|---|---|---|
0
Ululg
26.07.11
✎
17:14
|
Подскажите как правильно перед выгрузкой или после выгрузки организовать подмену свойства справочника в источнике на реквизит в другой системе(тип строка)?
|
|||
1
Синий зуб
26.07.11
✎
17:43
|
Сделай ПКС, где Источник - твой справочник, приемник - реквизит тип строка, без правила ПКО, а в событие Перед выгрузкой напиши Значение = Источник.МойСправочник.Наименование
|
|||
2
Ululg
28.07.11
✎
09:30
|
(1)не, так у меня попадет в значение свойства значение реквизита, я наверное не совсем четко написал. У меня есть свойство у справочника Склады "Маршрут распределения" в источнике, а приемнике есть справочник Матрицы расхождения. Там есть ссылка на склады и одно из свойств справочника склады сделано реквизитом, но дело в том, что автоматически оно при загрузке измененных данных не обновляется, а это необходимо сделать. То есть чтобы в справочнике склады в свойство было изменено и в Матрицах расхождения на данный склад у реквизита было бы такое же значение как и у свойства.
|
|||
3
Ululg
28.07.11
✎
09:32
|
Поэтому ПКС не подходит, мне надо менять в приемнике значение, а из источника верное значение подтягивается
|
|||
4
y22-k
28.07.11
✎
09:35
|
(0) создай Пко Источник Твое значение свойства - вытягивай функцией приемник реквизит
|
|||
5
Ululg
28.07.11
✎
09:38
|
У меня есть ПКО, мне надо его как-то хитро изменить. Просто не могу понять где лучше сделать и как обратиться к приемнику из правила?
Чем отличаются ПослеЗагрузкиОбъекта и ПослеЗагрузкиДанных? |
|||
6
Поручик
28.07.11
✎
09:48
|
(5) Продам справочную информацию из КД, дорого.
|
|||
7
Ululg
28.07.11
✎
09:52
|
(6) очень смешно. Я ее читал. Только не понимаю как мне заменить значение реквизита в справочнике, который не участвует в конвертации вообще.(
|
|||
8
ДемонМаксвелла
28.07.11
✎
10:11
|
Написать свою функцию ПрочитатьСвойство(Объект,ИмяСвойства) к примеру. Или как изврат, но простой, сделать реквизит, заполнить и перенести.
|
|||
9
GenV
28.07.11
✎
10:14
|
||||
10
acsent
28.07.11
✎
10:14
|
Перед выгрузкой
Значение = <Тут ты пишеь код получения свойства> |
|||
11
Ululg
28.07.11
✎
10:32
|
да написать функцию не проблема, проблема вот в чем. Делаю я это в ПослуЗагрузкиОбъекта. "Если Объект..." и вот что тут будет объектом - справочник или его свойство? И как догадаться, что это именно свойство, а не перечисление или ПВХ?
|
|||
12
ДемонМаксвелла
28.07.11
✎
10:35
|
После загрузки объекта? А через что ты передаёшь значение? Не получится так.
|
|||
13
Ululg
28.07.11
✎
10:37
|
Значение у меня передается через Регистр сведений.
|
|||
14
Ululg
28.07.11
✎
10:40
|
У меня конвертируется склад из одной системы в другую. Все реквизиты идентичны. Только к другому справочнику в приемнике есть привязка к складу, так вот мне нужно там подменить значения
|
|||
15
ДемонМаксвелла
28.07.11
✎
10:43
|
Какова структура регистра сведений? Что на что подменяем?
|
|||
16
GenV
28.07.11
✎
10:47
|
(14) Тогда (10)
|
|||
17
Ululg
28.07.11
✎
10:48
|
ЗначенияСвойствОбъектов. 2 Измерения Объект, Свойство, ресурс - Значение.
Передается Склад со своими свойствами из источника в приемник. Справочники идентичны. Есть так же другой справочник, в котором есть ссылка на элемент справочника Склад. Там в реквизит вынесено свойство справочника склад. Вот в него и надо записать новое значение свойства склада |
|||
18
ДемонМаксвелла
28.07.11
✎
10:48
|
Почему ты не хочешь сделать
ПКС Перед выгрузкой Значение = ПрочитатьСвойство(... , ...) ??? |
|||
19
Ululg
28.07.11
✎
10:48
|
(16) да мне не значение в регистре надо поменять, а по значению в регистре поменять значение в реквизите
|
|||
20
GenV
28.07.11
✎
10:53
|
(19) Ну, так тебе два способа предложили. Либо через параметры объекта, либо через выгрузку реквизита.
|
|||
21
Ululg
28.07.11
✎
11:00
|
То есть мне надо в ПослеЗагрузкиОбъекта написать
Если ПрочитатьСвойство(Объект, "моё свойство") = РеквизитИзДругого справочника Тогда... где Объект - это ссылка на склад, РеквизитИзДругого - значение реквизита, которое получено ранее по ссылке на склад? |
|||
22
ДемонМаксвелла
28.07.11
✎
11:00
|
Автор не тупи. Перечитай тему. Я ушел работать.
|
|||
23
Ululg
28.07.11
✎
11:02
|
(22) я не туплю, я просто не понимаю что вы мне пытаетесь донести. можно на пальцах?
|
|||
24
y22-k
28.07.11
✎
11:08
|
(23) на пальцах
Делаешь новое ПКС источник пустой -Приемник твой реквизит Перед выгрузкой пишешь Значение = ПолучитьСклад(); правило конвертации Склад - Склад и все. в чем сложность? |
|||
25
Ululg
28.07.11
✎
11:12
|
То есть мне в этом же правиле добавлять ПКС? Сложность в том, что я раньше не делал такого и это для меня в первый раз и получается, что вы разговариваете на одном языке, а я пытаюсь домыслить то, что не неписано
|
|||
26
Ululg
28.07.11
✎
18:28
|
ап
|
|||
27
Zolotko
28.07.11
✎
18:43
|
Берёшь своё правило. Там где у тебя РС Значения свойств объектов добавляешь внизу на вкладке, где написано Конвертация свойств новую строку. " раза по это строке и в обработчике ПередВыгрузкой пишешь свой код. А да, до этого точку переведи на "Передавать данные в параметр", задай ему чуть ниже имя. Потом там вычислишь значение, которое тебе нужно и в конце напишешь "Значение = <то значение, которое ты вычислил>".
Затем все это сохраняешь и выходишь из ПКС. Открываешь ПКО справочника Склад (то есть на вкладке Правила конвертации объектов на Складе 2 раза щелкаешь). Открываются окно, 2 раза нажимаешь далее и попадаешь в обработчики. В обработчике ПослеЗагрузкиОбъекта из параметра получаешь свое значение. Что-то типа такого: Если ПараметрыОбъекта <> Неопределено Тогда текПараметр = ПараметрыОбъекта.Получить("твойПараметр"); И вот его куда угодно и в какой угодно реквизит. Эта часть выполняется на стороне приемника. Так понятно? |
|||
28
Ululg
29.07.11
✎
18:54
|
(27) спасибо разобрался
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |