Имя: Пароль:
1C
1С v8
Конвертация данных. Из свойства справочника в реквизит
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) спасибо разобрался