Имя: Пароль:
1C
1С v8
БП 2.0, РИБ. Надо отключить фильтр контрагентов в плане обмена "По организации"
,
0 es3000
 
24.09.13
19:01
При создании первоначального образа для новый периферийной базы при помощи плана обмена "По организации" столкнулся с тем, что в периферийную базу выгружаются не все контрагенты.

Оказалось дело в том, что в стандартном плане обмена сделано так что выгружаются только те контрагенты, у которых есть договор с выгружаемой организацией.
А у нас для контрагентов в центральной базе договора не заводили, хотя есть много платежных поручений для этих контрагентов. В плат. поручениях договора указывать необязательно, вот их и не указывали и не заводили. Соответственно эти контрагенты не выгружаются в периферийную базу, а платежные поручения выгружаются. И в периферийной базе получается, что платежные поручения содержат ссылки на несуществующие элементы справочника.

Решили побороть эту ситуацию следующим образом.
Создать новый план обмена "ПоОрганизации_новый" копированием стандартного плана обмена "ПоОрганизации", и отключить в новом плане обмена фильтр по контрагентам.

Помогите это сделать.
Модули большие, сходу в отладчике сам не разобрался.
Может кто знает в какой процедуре и что надо поправить?
1 mehfk
 
24.09.13
20:39
Включи авторегистрацию
2 es3000
 
24.09.13
21:07
(1) Только авторегистрация не поможет, после регистрации объекта при выгрузке он все равно фильтруется.
Поэтому надо как-то фильтр отключить
3 Aleksey
 
24.09.13
22:01
Нафига???
4 Aleksey
 
24.09.13
22:04
ИначеЕсли ТипЭлемента = Тип("СправочникОбъект.Контрагенты")
        ИЛИ ТипЭлемента = Тип("СправочникСсылка.Контрагенты") Тогда        
        
        СсылкаНаЭлемент = ОпределитьПоЭлементуЭтоГруппаИСсылку(Элемент, "Справочники", ТипЭлемента, Истина, ЭтоГруппа);
        
        Если ЭтоГруппа Тогда
            
            // все узлы
            ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи);
            
        Иначе
        
            ДополнитьМассивУзламиПоСправочникуИПараметру("ДоговорыКонтрагентов", "Владелец",
                СсылкаНаЭлемент, МассивУзловДляПередачи, "Организация", СоответствиеУзловИОрганизаций, Истина);
                
            ДополнитьМассивУзламиПоСправочникуИПараметру("СоглашенияОбИспользованииЭД", "Контрагент",
                СсылкаНаЭлемент, МассивУзловДляПередачи, "Организация", СоответствиеУзловИОрганизаций, Истина);    
            
                
        КонецЕсли;


Все что в
Если ЭтоГруппа Тогда
Иначе
КонецЕсли;

Удаляешь, и пишешь


ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи);

И всё, контрагенты будут гулять по все базе
5 Aleksey
 
24.09.13
22:04
Это общий модуль ПроцедурыОбменаДаннымиПоОрганизации

Процедура ДополнитьМассивУзловДляВыгрузкиСправочника
6 es3000
 
24.09.13
22:32
(3) "нафига" что?
(4),(5) код попробую, спасибо
7 Aleksey
 
24.09.13
22:33
(6) еще один план обмена

там можно смело от ИначеЕсли ТипЭлемента = Тип("СправочникОбъект.Контрагенты") ремить
8 es3000
 
24.09.13
22:40
(7) не хочется стандартный план ломать, чтобы обновления устанавливались проще
9 Aleksey
 
24.09.13
23:02
(8) ну так ломать ничего не надо, заремишь 5ток строк и готово
10 es3000
 
07.10.13
10:17
(9) Сработало, спасибо!

Закомментировал строки в указанной процедуре ("ДополнитьМассивУзловДляВыгрузкиСправочника"). И выгрузка выполнилась нормально: выгрузились недостающие контрагенты.

Делать новый план обмена действительно смысла нету, так как комментировать надо в общем модуле.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.