Имя: Пароль:
1C
1С v8
Конвертация данных
0 dddonnn
 
07.10.11
14:03
В правиле конвертации для спр.Контрагенты стоит настройка искать по внутреннему ИД, если не находит то по полям поиска. Поля поиска: Наименование, ЭтоГруппа, Инн, Кпп.
Что я делаю:
1) Выгружаю в первый раз Контрагента - загрузился в приемник.
2) Меняю наименование у этого же к/а в источнике - прилетает еще один к/а.
3) Меняю ещё раз наименование - меняется и наименование у объекта,который загрузился во второй перекачке.
Вопрос: в чем причина того что объект загрузился повторно?
1 GenV
 
07.10.11
14:50
(0) Если грузишь через стандартный обмен (обработка ОбменДаннымиXML), а не через обработку УниверсальныйОбменДаннымиXML, то там при первом создании нового контрагента он сохраниться (со ссылкой на объект в базе источнике) в регистре сведений соответствий ИД. Т.ч. при повторной загрузке данные возьмутся от туда, а не из правил ...
2 dddonnn
 
12.10.11
09:56
Я сделал на каждом входе в условие сообщение, но получается что служебное сообщение выходит "3" и больше ничего! так он должен был и "2" тогда показать и после тройки тоже. Ничего не понимаю.
// Полное соответствие
Если НомерВариантаПоиска = 1 тогда
   Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )и ЗначениеЗаполнено ( СвойстваПоиска.Получить("КПП") )  тогда
       СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН,КПП,Наименование";
       //СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН,КПП";
       Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,ИНН,КПП,Наименование-1");
   иначе
           Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )  тогда
               СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН,Наименование";    
               //СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН";    
               Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,ИНН,Наименование --2");
           Иначе
               СтрокаИменСвойствПоиска = "Этогруппа,Код,Наименование";    
               //Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,Наименование--3");
           Конецесли;        
       
   Конецесли;    
//Конецесли;    
// Не совпадает наименование
ИначеЕсли НомерВариантаПоиска = 2 тогда    
Сообщить("2");
   Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )и ЗначениеЗаполнено ( СвойстваПоиска.Получить("КПП") )  тогда
       СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН,КПП";
       Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,ИНН,КПП--4");
   иначе
       
           Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )  тогда
               СтрокаИменСвойствПоиска = "Этогруппа,Код,ИНН";    
               Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,ИНН--5");
           Конецесли;
   Конецесли;    
//КонецЕсли;
// Не совпадает код
ИначеЕсли НомерВариантаПоиска = 3 тогда    
   Сообщить("3");
   Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )и ЗначениеЗаполнено ( СвойстваПоиска.Получить("КПП") )  тогда
       СтрокаИменСвойствПоиска = "Этогруппа,Наменование,ИНН,КПП";
       Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Наменование,ИНН,КПП--4");
   иначе
       
           Если ЗначениеЗаполнено( СвойстваПоиска.Получить("ИНН") )  тогда
               СтрокаИменСвойствПоиска = "Этогруппа,Наменование,ИНН";    
               Сообщить(СвойстваПоиска.Получить("Наименование") +" "+"Этогруппа,Код,ИНН--5");
           Конецесли;
   Конецесли;    
ИначеЕсли НомерВариантаПоиска = 4 тогда    
   Сообщить("4**********");
   СтрокаИменСвойствПоиска = "Этогруппа,Код";
КонецЕсли