Имя: Пароль:
1C
1С v8
КД 2.1 Передача параметров из ПКС в ПКО
0 Manonegro
 
16.03.13
14:01
Здравствуйте. Переношу данные из 7.7 в 8.2.
Необходимо из ПКС передать данные в сопоставленное ему ПКО. В ПКС ПередВыгрузкой() пишу:

ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
ИсходящиеДанные.Установить("Владелец", Источник.Клиент);
ИсходящиеДанные.Установить("Организация", Источник.Фирма);
Значение = "СПоставщиком";

Далее в ПКО ДоговорыКонтрагентов, в которое и передаются данные, у свойств приемника Владелец и Организация устанавливаю "Получить из входящих данных". Но данные не передаются. Что делаю не так?
1 Alex S D
 
16.03.13
14:05
ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные
2 Manonegro
 
16.03.13
14:07
(1) У меня другой случай:
3.      ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные
3 Alex S D
 
16.03.13
14:12
ну тогда вроде верно. У меня так работает. Правило явно прописано? Я еще прописывал в ПКО КлючВыгружаемыхДанных, а то чет задваивалось, если был поиск по передаваемым полям
4 Alex S D
 
16.03.13
14:13
и это чего такое Значение = "СПоставщиком"?
5 Manonegro
 
16.03.13
14:23
Это вид договора. Тоже передается, но через значение.
В ПКО у ПКС ВидДоговора в обработчике ПередЗагрузкой() пишу
Значение = Источник;
6 Alex S D
 
16.03.13
14:25
чет запутался, а у вида договора есть поля "Владелец" , и "Организация" ?
7 Manonegro
 
16.03.13
14:25
(3) Да, по этим полям в ПКО идет поиск.
8 Alex S D
 
16.03.13
14:25
куда ты их передаешь ? в параметры?
9 Alex S D
 
16.03.13
14:25
(7) КлючВыгружаемыхДанных заполнил?
10 Alex S D
 
16.03.13
14:26
(7) скинь правила, я заценю, один хер на работе сижу
11 Manonegro
 
16.03.13
14:27
(6) Там три поля поиска: Владелец, Организация, ВидДоговора. Никуда я их не передаю. Я их получаю из входящих данных.
12 Alex S D
 
16.03.13
14:30
КлючВыгружаемыхДанных покури
13 Manonegro
 
16.03.13
14:32
(12) Курил уже, только пока не торкнуло. Можно человеческим языком объяснить? :)
14 Alex S D
 
16.03.13
14:35
ну попробуй прописать в ПередВыгрузкой чето вроде

КлючВыгружаемыхДанных = Строка(ВходящиеДанные.Владелец.Код) +  Строка(Организация.Код) +  ВидДоговора
15 Alex S D
 
16.03.13
14:36
ну там везде ВходящиеДанные естественно
16 Manonegro
 
16.03.13
14:44
(14) Ошибка исполнения обработчика:  ПКО_ПередВыгрузкой_ДоговорыКонтрагентов
 - Поле агрегатного объекта не обнаружено (Владелец)
17 Manonegro
 
16.03.13
14:45
КлючВыгружаемыхДанных = Строка(ВходящиеДанные.Владелец.Код) + ВходящиеДанные.Организация.Код
       + Источник;
18 Alex S D
 
16.03.13
14:47
Значит и правда не передается)
19 Manonegro
 
16.03.13
14:49
Но Организация то передается! Может название Владелец - служебное?
20 Alex S D
 
16.03.13
14:50
да не вроде, у меня работает, правда 8->8
21 Alex S D
 
16.03.13
14:50
с чего ты взял что организация передается?
22 Alex S D
 
16.03.13
14:51
скинул бы мне правила давно
23 Manonegro
 
16.03.13
14:52
(21) Ну, на нее не ругается.
(22) Куда скинуть? У тебя только аська в профиле.
24 Alex S D
 
16.03.13
14:54
[email protected]
не ругается потому что не доходит, стопорится на владельце
25 Manonegro
 
16.03.13
15:00
(24) Скинул. Там документ ПоступлениеТоваров. Из него передаю в ДоговорыКонтрагентов.
26 Alex S D
 
16.03.13
15:02
помоему у тебя с алгоритмом фигня, перенеси оттуда пока в обработчик
27 Alex S D
 
16.03.13
15:03
Выполнить(Алгоритмы... вообще-то так вызывается
28 Manonegro
 
16.03.13
15:08
(27) Смотрел в типовых - просто написано имя алгоритма.
29 Alex S D
 
16.03.13
15:09
(28) ну может быть, хотя в описании так
30 Alex S D
 
16.03.13
15:10
может там исходящиеданные в контексте алгоритма только видны
31 Manonegro
 
16.03.13
15:11
Перенес в тело ПКС, та же ошибка.
32 Manonegro
 
16.03.13
15:14
Алгоритм, я так понимаю, это просто макровыражение такое. Просто на его место подставляется участок кода алгоритма.
33 Alex S D
 
16.03.13
15:17
наверное. А к списку значений можно через точку обращаться? я чет семерку забыл
34 Manonegro
 
16.03.13
15:25
(33) Нет. Там метод Получить().
КлючВыгружаемыхДанных = Строка(ВходящиеДанные.Получить("Владелец").Код)
       + ВходящиеДанные.Получить("Организация").Код + Источник;
35 Manonegro
 
16.03.13
15:29
Во, теперь вроде пошло! Т.е., я так понял, если значения передаются извне, то нужно устанавливать уникальный Ключ?
36 Alex S D
 
16.03.13
15:30
ну да, если типа нельзя определить объект, когда он зависит от входящих данных, а в чем проблема была?
37 Alex S D
 
16.03.13
15:32
а, понял
38 Manonegro
 
16.03.13
15:34
(37) Большое спасибо. Помог разобраться. Не подскажешь, где по-русски про Ключ можно почитать?
39 Alex S D
 
16.03.13
15:35
Не за что. Кроме как в хелпе по обработчику, Книжка Бояркина, не знаю есть ли там..
40 Manonegro
 
16.03.13
15:39
(39) У Бояркина по-русски? Бошку сломаешь!
41 Manonegro
 
16.03.13
15:57
Вот один человек пишет:
- ВСЕГДА формируйте "КлючВыгружаемыхДанных" кроме случаев когда источник имеет примитивный тип. Это позволит не прозевать случай, когда без этого не обойтись, а в остальных случаях просто немного ускорит выгрузку.
42 Alex S D
 
16.03.13
15:59
(41) хз, в каждое правило сувать ключ? изварт. В Описание обработчика ясно написано, когда он нужен)

Можешь глянуть код универсальной обработки и глянуть как он используется...
43 Alex S D
 
16.03.13
16:01
КлючВыгружаемыхДанных = ЗначениеВСтрокуВнутр(Источник).
это по умолчанию для всех объектов, для которых не стоит галка "Не запоминать выгруженные объекты"

вроде так
44 Manonegro
 
16.03.13
19:14
(42) В каждое ПКО - конечно изврат, никто не спорит. А в каждое ПКО с пустым источником - почему бы и нет?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший