Имя: Пароль:
1C
1С v8
Конвертация. Из одного справочника в два
,
0 orda
 
03.06.13
14:12
В  источнике - справочник А, в приемнике 2 справочника,  Б и Д.
В правилах обмена завожу два ПКО: для А->Б, и для А->Д и для каждого ПКО завожу по правилу выгрузки (т.е. 2 правила с одним и тем же объектом выборки А).
Регистрирую изменения по плану обмена в источнике (А) и делаю обмен. В приемнике заполняется только справочник Б, правило выгрузки с ПКО А->Д не работает.
Что делаю не так?
1 Cyberhawk
 
03.06.13
14:13
"Что делаю не так?" Не так все пошло в именования справочников...
2 orda
 
03.06.13
14:15
Если в правилах удаляю ПВД с ПКО для А->Б, то второе правило работает. Разве не может быть два правила выгрузки с одним источником и разными приемниками
3 Cyberhawk
 
03.06.13
14:16
Выгружаешь же ты справочник А. Как системе понять, когда какое ПВД использовать?
4 orda
 
03.06.13
14:16
(1) "Не так все пошло в именования справочников." - не понял, уточни пожалуйста
5 orda
 
03.06.13
14:18
(3) Я думал, должна использовать все ПВД, где А в качестве объекта выборки. Ошибаюсь?
6 fisher
 
03.06.13
14:22
С КД работал плотно, а правилами обмена - не работал.
Но раз он хочет одно ПВД, то просто пропиши в нем два
ВыгрузитьПоПравилу(), отключив стандартную обработку.
7 Рэйв
 
03.06.13
14:22
(0)делай 2 ПКО.
В первом в ПередВыгрузкой Отказ=Истина на одно условие,во втором на противоположное
8 GenAcid
 
03.06.13
14:23
В правилах выгрузки указывается правило конвертации по какому обрабатывать.
Как вариант можно с ВыгрузитьПоПравилу(...) извратиться.
9 dk
 
03.06.13
14:26
нужны не только 2 ПКО но и 2 ПВД
в ПВД указывается какое ПКО используется
10 Рэйв
 
03.06.13
14:27
(9)Ну это да.Само собой.
11 fisher
 
03.06.13
14:27
(9) Это просто параметрический костыль для ленивых, а не догма. КД - чрезвычайно гибкая штука.
12 GenAcid
 
03.06.13
14:27
А вообще, если у тебя по ссылке выгружается объект, то правила выгрузки вообще не применяются.
13 Рэйв
 
03.06.13
14:28
(11)Почему костыль? Наоборот очень логично и понятно. Можно справочники загружать отдельно какой хочешь.
14 orda
 
03.06.13
14:31
(9) (10) Но я же так и сделал: завел два ПКО и два соответствующих ПВД, в которых ссылаюсь на два два разных ПКО.
15 GenAcid
 
03.06.13
14:33
(14) наверное дело в (12)? И срабатывает ПКО которое указано в вышестоящем ПКО, не?
16 Рэйв
 
03.06.13
14:33
(14)Ну вот, отсеивай ненужное в первом и включай это во втором, отсеивая то, что положил в первом
17 orda
 
03.06.13
14:36
(12) "А вообще, если у тебя по ссылке выгружается объект, то правила выгрузки вообще не применяются" - можно проще, для сержантов.

(15)Срабатывает всегда первое правило выгрузки
18 orda
 
03.06.13
14:37
(12) (17) извини, не врубился. Не по ссылки. Изменения регистрируются непосредственно в исходном справочнике А
19 Aleksey
 
03.06.13
14:39
(0) Выгрузка по правилу
20 orda
 
03.06.13
14:40
(7) (16) - какой смысл записывать что-то во втором ПКО, если оно не срабатывает (вызывается только первое ПКО связанное с первым ПВД. Или я не прав?
21 GenAcid
 
03.06.13
14:41
(18) Тогда хз, всегда указывал два правила выгрузки, указывал им разные ПКО и все работало. Как вариант - ВыгрузитьПоПравилу и в нем укажи второе ПКО.
22 orda
 
03.06.13
14:42
(19) "Выгрузка по правилу" -не понял, что туда писать, имя ПВД? И в каком обработчике использовать?
23 Aleksey
 
03.06.13
14:42
(21) Оба нужно указывать

Источник Справочник А, приемник пусто

Далее при выгрузке анализируем нужные данные и выгрузитьПоПравилу()
24 Рэйв
 
03.06.13
14:43
(20)Нет не прав.
Эти 2 ПВД бубут показываться при выгрузке(если ты их правильно настроил конечно). Где галку поставишь - то и будет выгружаться
25 Aleksey
 
03.06.13
14:44
26 Рэйв
 
03.06.13
14:45
+(24)Если это для планов обмена, то там они оба должны работать
27 orda
 
03.06.13
14:46
(24) Если ты про настройку обмена, то галки на обоих (выгрузка А, Выгрузка А)
28 Рэйв
 
03.06.13
14:47
(27)Тогда смотри условия. что-то ты во втором намудрил, что туда ничего не попадает.Включай отладку
29 GenAcid
 
03.06.13
14:47
(23) да я уж почитал как оно работает.
30 Noroving
 
03.06.13
14:48
Советую открыть файл обмена и просто посмотреть... и сразу же прийдет просветление)
31 orda
 
03.06.13
14:48
Буду разбираться с "Выгрузить пр правилу", хотя по описантю вроде должно работать и так
32 Рэйв
 
03.06.13
14:49
(31)Имхо если не работает в исходм варианте, то и с ВыгрузитьПоПравилу() не взлетит
33 fisher
 
03.06.13
14:50
(13) Речь о связке одно ПВД - одно ПКО. Это вовсе необязательно. Это для легкости параметрической настройки простых случаев.
34 Noroving
 
03.06.13
14:50
(31) Должно работать без всяких выгрузить по правилу, просто внимательно посмотри что оно выгружает тебе
35 Aleksey
 
03.06.13
14:50
(32) почему?
36 orda
 
03.06.13
14:50
(30) открывал, данные только по первому ПВД. Что-то я крепко напутал
37 Aleksey
 
03.06.13
14:51
(34) Необязательно.а если он чистит данные при первом проходе?
38 Рэйв
 
03.06.13
14:51
(33)Ну и зачем излишне заморачиваться если так по простому вполне работает?  Чтобы показать миру, что мы простых путей не ищем?:-)
39 Рэйв
 
03.06.13
14:52
(35)Потому что скорее всего у него в самих правилах ошибка гдето.
40 Рэйв
 
03.06.13
14:53
+(39)т.е он будет иметь тоже самое только подойдет к граблям с другого угла
41 orda
 
03.06.13
14:53
(39) но почему ПВД прекрасно работают, когда остается одно из них. Не работают оба одновременно, в этом проблема
42 Рэйв
 
03.06.13
14:54
(41)Странная какая то ситуация.
43 Noroving
 
03.06.13
14:56
Попробуй выгрузить универсальной обработкой, если все пройдет, то у тебя лажа с планами обмена, такое может быть 100 %
44 orda
 
03.06.13
14:56
Ладно, спасибо. Буду копать дальше
45 fisher
 
03.06.13
14:57
(38) Две сточки кода - это сложное решение?
46 Рэйв
 
03.06.13
14:58
(45)Ладно, кому как нравится:-) Не будем спорить
47 Feunoir
 
03.06.13
15:01
(41) Потому что выгрузка ведет лог выгруженных объектов. И поэтому объект повторно не выгружается по другому ПВД. Или ставь в ПКО признак "не запоминать выгруженные объекты", или реально не выгружай через Отказ = Истина.
48 AlexNew
 
03.06.13
15:12
Указывай ИмяПКО какое надо перед выгрузкой из других объектов.
49 orda
 
03.06.13
15:16
(47) "не запоминать выгруженные объекты" - проставлено в обоих правилах.
50 orda
 
03.06.13
15:17
(49) требуется из одного элемента справочника А создать по одному элементу в справочниках Б и Д приемника
51 Feunoir
 
03.06.13
15:31
(50) Ну добавь тестовую печать в ПКО и ПВД. Посмотри что где ломается. Посмотри файл выгрузки глазами, сколько там реально выгружено объектов.
52 sttt
 
03.06.13
15:37
в ПКО организации, перед выгрузкой:

Если Объект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.Физическое Тогда
   ИмяПравила = "ОрганизацииФизЛица";    
Иначе
   ИмяПравила = "ОрганизацииЮрЛица";    
КонецЕсли;

ВыгрузитьПоПравилу(Объект, Неопределено, Неопределено, Неопределено, ИмяПравила,,,);

Отказ = Истина;