Имя: Пароль:
1C
 
Передать данные из ПКС в ПКО
, , ,
0 Dimarik_1
 
11.05.18
09:55
При работе ПКО "ДоговорыКонтрагентовДоговорыКредитовИДепозитов" есть ПКС Владелец-Партнер. В этом ПКС ПередВыгрузкой я написал:
ИсходящиеДанные = Новый Структура("ПрочиеОтношения", Истина);
Затем захожу в ПКО "Контрагенты_Партнеры и прописываю в ПКС "ПрочиеОтношения"

Если ТипЗнч(ВходящиеДанные) = Тип("Структура") Тогда
    Если ВходящиеДанные.Свойство("ПрочиеОтношения") Тогда
        Значение = ВходящиеДанные.ПрочиеОтношения;
    Иначе
        Значение = Ложь;
    КонецЕсли;
Иначе
    Значение = Ложь;
КонецЕсли;



в результате не отрабатывает
https://fastpic.co/image/P86eWd
https://fastpic.co/image/P86Ta2

и у меня в отладчике во входящих данных нет ничего
1 cons74
 
11.05.18
10:02
Выгружай модули выгрузки и отладка в руки
2 hhhh
 
11.05.18
10:03
(0) ты же данные в ПКО передал, вот и читай их в ПКО. Зачем ты в ПКС "ПрочиеОтношения" полез?
3 Dimarik_1
 
11.05.18
10:13
и что мне в ПКО с ними сделать? Записать их в какой-нибудь параметр или как?
4 Dimarik_1
 
11.05.18
10:29
В ПКО тоже нет входящих данных
5 mexanik_96
 
11.05.18
10:38
В этом ПКС ПередВыгрузкой я написал:
ИсходящиеДанные = Новый Структура("ПрочиеОтношения", Истина); ????
6 mexanik_96
 
11.05.18
10:39
не так нужно, в ПКО "Контрагенты_Партнеры и прописываю в ПКС "ПрочиеОтношения" ставишь галку получать из входящих данных, далее в пко перед выгрузкой определяешь(получаешь из других пко\пкс) входящие данные.
7 Dimarik_1
 
11.05.18
10:52
Ну я так и сделал:
1. Передал в ПКС "Перед выгрузкой"
https://fastpic.co/image/P86Uog
2. Остановился в ПКО "Контрагенты_Партнеры
https://fastpic.co/image/P863fJ
https://fastpic.co/image/P862dp
входящие и исхоящие данные не определены. как я получу входящие данные?
галка "Получать из входящих данных"  стоит https://fastpic.co/image/P86cM7
8 mexanik_96
 
11.05.18
10:54
ИсходящиеДанные  поменяй на входящие в пко Контрагенты_Партнеры
9 Dimarik_1
 
11.05.18
11:02
ну вот. пусто
https://fastpic.co/image/P860yn
10 Ёпрст
 
11.05.18
11:19
(9) две ххххх в ИсХХодящиеданные
11 hhhh
 
11.05.18
11:23
(9) да, чо за Исхх такое? Пятница?
12 Dimarik_1
 
11.05.18
13:09
Всё равно не передается значение
https://fastpic.co/image/P8CGcr
https://fastpic.co/image/P8C5w6
https://fastpic.co/image/P8CFkO
13 Cyberhawk
 
11.05.18
13:11
(8) Нет. Это из ПКО в ПКС входящие --> входящие, из ПКС в ПКО все в этом плане нормально (исходящие ПКС --> входящие ПКО)
14 Йохохо
 
11.05.18
13:13
ИсходящиеДанные - Произвольный - произвольные вспомогательные данные. Данные передаются по следующим правилам:

1.      ПВД.ИсходящиеДанные -> ПКО.ВходящиеДанные

2.      ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные

3.      ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные
15 Cyberhawk
 
11.05.18
13:13
Что куда там у автора не передается, Я хз - внятного описания текущей ситуации Я у него увидел
16 Dimarik_1
 
11.05.18
13:24
(15) Я переношу договоры в договоры кредитов и депозитов.
Для партнеров, у которые есть договор кредитов и депозитов, я хочу поставить галочку "прочие отношения". Для этого
1. В ПКС КонтрагентыПартнеры ПКО ДоговорыКредитовИДепозитов я прописал
ИсходящиеДанные = Новый Структура("ПрочиеОтношения", Истина);

2. в ПКО "Контрагенты_Партнеры" я прописал:
    Если ТипЗнч(ВходящиеДанные) = Тип("Структура") Тогда
        Если ВходящиеДанные.Свойство("ПрочиеОтношения") Тогда
            Сообщить("Есть во входящих ПКО");
        КонецЕсли;

    КонецЕсли;

Внутрь попадает!!!
3. В ПКС "Прочие отношения" я прописал
Если ТипЗнч(ВходящиеДанные) = Тип("Структура") Тогда
    Если ВходящиеДанные.Свойство("ПрочиеОтношения") Тогда
        Значение = ВходящиеДанные.ПрочиеОтношения;
        Сообщить("УРА");
    Иначе
        Значение = Ложь;
    КонецЕсли;
Иначе
    Значение = Ложь;
КонецЕсли;


Внутрь не попадает.
https://fastpic.co/image/P8CjPx
https://fastpic.co/image/P8CZbQ
https://fastpic.co/image/P8CeJK
17 Cyberhawk
 
11.05.18
13:26
(16) Ты давай в трех словах и в одной картинке
18 Dimarik_1
 
11.05.18
13:28
необходимо, чтобы при переносе договоров кредитов и депозитов, у партнера устанавливалась галочка "Прочие отношения".
Я делал через входящие данные. У меня входящие данные из ПКО не попадают в ПКС
19 Cyberhawk
 
11.05.18
13:29
"входящие данные из ПКО не попадают в ПКС" // По такому описанию вряд ли можешь рассчитывать на помощь
20 Dimarik_1
 
11.05.18
13:31
Захожу в ПКО. У меня там во входящий данные есть Свойство "Прочие отношения". А затем в ПКС внутрь когда попадаю, этого свойства уже нет
21 Cyberhawk
 
11.05.18
13:32
(20) В ПКО проинициализируй и входящие, и исходящие. А то вдруг ты пользуешься обменом данными из БСП, где это пофиксено
22 Dimarik_1
 
11.05.18
13:33
мне еще раз написать ВходящиеДанные = Новый Структура?
И для исходящих? зачем? если у меня входящие уже структура со своими свойствами?
23 Cyberhawk
 
11.05.18
13:36
"ВходящиеДанные = Новый Структура" // Нет конечно, так ты затрешь то что туда могло быть положено из ПВД
24 Cyberhawk
 
11.05.18
13:36
Продолжай задавать вопросы и мыкаться, видимо ты жираф
25 Dimarik_1
 
11.05.18
13:37
ПКО проинициализируй и входящие, и исходящие
тогда как
26 Cyberhawk
 
11.05.18
13:42
Ну добавь ключ в структуру
27 Cyberhawk
 
11.05.18
13:42
Если это структура. Если неопределено, то создай стуктуру
28 arsik
 
гуру
11.05.18
13:46
Ой да сделай уже через глобальные параметры.
29 Dimarik_1
 
11.05.18
13:54
(28) Сейчас увидел проблему.
2 раза вызывается ПКО_ПередВыгрузкой_Контрагенты_Партнеры для одного и того же контрагента.
то есть происходит следующее
1. вызывается ПКО_ПередВыгрузкой_Контрагенты_Партнеры, во входящих данных есть нужное свойство
2. ЕЩЕ РАЗ вызывается ПКО_ПередВыгрузкой_Контрагенты_Партнеры, во входящих данных ОТСУТСТВУЕТ нужное свойство
3. Вызывается ПКС "ПрочиеОтношения", нужное свойство отсутствует
30 Dimarik_1
 
11.05.18
13:58
Точнее не так. Сначала вызывается без свойства во входящих данных, а потом со свойством
31 Cyberhawk
 
11.05.18
14:03
Ну наверное первый раз объект выгружается непосредственно (из ПВД), второй раз - по ссылке (из ПКС)
32 Йохохо
 
11.05.18
14:04
(30) повезло, что не бесконечный цикл. Скорее всего где то вызывается сначала с невыгружатьреквизитыобъекта, только ссылка и поля поиска, а потом уже объект. Дважды вызываетсся ПКО
33 Йохохо
 
11.05.18
14:08
реквизит ОсновнойДоговор)
34 Dimarik_1
 
11.05.18
14:35
Вот что оно оказалось. я выгружаю Договоры. Но сначала у меня выгрузятся объекты по свойствам, а потом сам договор. В принципе это логично. Это я обнаружил когда через глобальные параметры передавать пытался данные.
35 arsik
 
гуру
11.05.18
14:52
Вообще то если объект уже выгружен, вроде он не должен второй раз выгружаться. Это конечно если правило то же самое.
36 Dimarik_1
 
11.05.18
15:01
все проблемы из-за того, что сначала партнер выгружается, а потом сам договор
37 Йохохо
 
11.05.18
15:04
(36) нет, или ключ не формируется или вы доделываете за кем то и галки сбиты
38 Franchiser
 
гуру
11.05.18
15:07
Если Правила.Договоры.Выгруженные[Источник.Владелец] = Неопределено тогда
Выгрузитьпоправилу(Источник.Владелец);
КонецЕсли;
39 Franchiser
 
гуру
11.05.18
15:08
Это проблема циклических ссылок
40 Йохохо
 
11.05.18
15:15
(38) коряво, и проблема ключа не решена
41 Franchiser
 
гуру
11.05.18
15:18
(40) Ключ можно передать через параметры конвертации.
42 Йохохо
 
11.05.18
16:42
(41) Выгруженные[Источник.Владелец], Источник.Владелец это ключ вроде
43 Franchiser
 
гуру
11.05.18
17:15
Тогда так:
КлючВыгружаемыхДанных = ВходящиеДанные.Контрагент_Партнер;
44 Йохохо
 
11.05.18
17:21
(43) это лажает на произвольной выборке
45 Franchiser
 
гуру
11.05.18
17:28
(44) вот зануда... Все проблемы решаемы: пусть проверяет какая выборка, делает 2 правила и т.д.
46 Йохохо
 
11.05.18
17:55
(45) боюсь забыть что не знал
47 Dimarik_1
 
11.05.18
21:24
(39) почему проблема циклических ссылок? Как я читал, эта проблема основана на том, что не выгружается лишний раз объект. И одни из способов её решения (правда неоптимальный способ это) является установка галочки "Не запоминать выгруженные объекты". Но здесь дело скорее всего не в этом. Можете пояснить, по какой причине такая проблема возникла?
48 Franchiser
 
гуру
12.05.18
13:36
(47) потому что в контрагенты есть реквизит основной договор, а в договоре есть Владелец договора: т.е. Договор при выгрузке пытается сначала выгрузить контрагента, но узел контрагента записать нельзя пока не записан основной договор в котором ссылка на владельца-контрагента. Такая проблема возникает из-за того что договор выгружается раньше контрагента. Нужно обеспечить выгрузку контрагента раньше договора.
49 Franchiser
 
гуру
12.05.18
13:37
Если контрагент выгрузится первым, то затем при выгрузке договора он будет подтянут из Кеша.
50 Franchiser
 
гуру
12.05.18
13:41
Владелец договора является полем по которому ведётся поиск, в этом и заключается проблема имена с договором а не контрагентом. Поля с галками поиска является полями которые определяют основными для поиска ссылок и создания их узлов.
51 Franchiser
 
гуру
12.05.18
13:46
(48) неправильно написал: договор не может быть найден по нет закешированного контрагента, а контрагент не может записаться пока не запишется основной договор.
52 Franchiser
 
гуру
12.05.18
13:50
Короче последовательность такая: контрагента нужно писать вперёд по полям поиска он найдется или будет получен из Кеша, потом найдется или запишется основной договор и только потом будет определен Владелец твоего договора и он уже будет найден по полям поиска или получен из Кеша и затем заполненные его реквизиты.
53 Franchiser
 
гуру
12.05.18
13:53
Как вариант отключи выгрузку поля Основной договор, тогда твоей проблемы вообще не будет