Имя: Пароль:
1C
 
Конвертация данных при загрузке не выполняется обработчик "Поля поиска"
0 Trance_1C
 
24.08.16
04:53
Приветствую коллеги!

Подскажите по КД, при загрузке не выполняется код обработчика ПКО "Поля Поиска" где перечислены поля для последовательного поиска объекта в приемнике после неудачного поиска по ссылке, вот этот код не выполняется

Если СвойстваПоиска["ЭтоГруппа"] Тогда
    Если НомерВариантаПоиска = 1 Тогда    
        СтрокаИменСвойствПоиска = "КодУПП,Наименование" ;
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУПП";
    КонецЕсли;
Иначе    
    Если НомерВариантаПоиска = 1 Тогда    
        СтрокаИменСвойствПоиска = "КодУПП,Наименование" ;
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "ИНН,СтраховойНомерПФР";
    ИначеЕсли НомерВариантаПоиска = 3 Тогда
        СтрокаИменСвойствПоиска = "ИНН";
    ИначеЕсли НомерВариантаПоиска = 4 Тогда
        СтрокаИменСвойствПоиска = "СтраховойНомерПФР";
    ИначеЕсли  НомерВариантаПоиска = 5 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУПП";
    КонецЕсли;
КонецЕсли;

Последовательные попытки поиска не осуществляются, вместо этого идет поиск по всем полям поиска определенным в ПКО сразу :(
обмен осуществляется из УПП в ЕРП, в объектах приемника есть реквизит кодУПП, но в справочнике уже есть элементы где он не заполнен, но заполнены другие реквизиты по которым нужен последовательный поиск.
Подскажите плиз, куда копать.
Я пытался вставить в код обработчика где определяются поля поиска деление на 0, ошибок не было, похоже этот код вообще не выполняется.
1 Trance_1C
 
24.08.16
04:57
В правило описания полей поиска выгружается:

                    <ПоследовательностьПолейПоиска>Если СвойстваПоиска["ЭтоГруппа"] Тогда
    Если НомерВариантаПоиска = 1 Тогда    
        СтрокаИменСвойствПоиска = "КодУПП,Наименование" ;
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУПП";
    КонецЕсли;
Иначе    
    Если НомерВариантаПоиска = 1 Тогда    
        СтрокаИменСвойствПоиска = "КодУПП,Наименование" ;
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "ИНН,СтраховойНомерПФР";
    ИначеЕсли НомерВариантаПоиска = 3 Тогда
        СтрокаИменСвойствПоиска = "ИНН";
    ИначеЕсли НомерВариантаПоиска = 4 Тогда
        СтрокаИменСвойствПоиска = "СтраховойНомерПФР";
    ИначеЕсли  НомерВариантаПоиска = 5 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУПП";
    КонецЕсли;
КонецЕсли;</ПоследовательностьПолейПоиска>
                    <СинхронизироватьПоИдентификатору>true</СинхронизироватьПоИдентификатору>
                    <ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли>true</ПродолжитьПоискПоПолямПоискаЕслиПоИдентификаторуНеНашли>
                    <ГенерироватьНовыйНомерИлиКодЕслиНеУказан>true</ГенерироватьНовыйНомерИлиКодЕслиНеУказан>
2 Trance_1C
 
24.08.16
05:01
Сначала я тестировал такой вариант поиска при обмене через универсальный формат и поиск работал. При загрузке в ЕРП через добавленный план обмена, когда загрузка выполняется обработкой "КонвертацияОбъектов" такой поиск не осуществляется, хотя все настройки те-же...
3 MaxS
 
24.08.16
05:35
А действительно ли поиск по УИД неудачный? Может быть в регистре сведений есть соответствие для него?
И про какое КД идёт речь? В КД2 на стороне приёмника должны быть все правила. Правила в источнике игнорируются.
4 Trance_1C
 
24.08.16
06:02
В рсв соответствий нет, речь о КД2
В плане обмена приемника есть макет "ПравилаОбменаКорреспондента", там устаревшие правила, неужели база приемник смотрит правила загрузки в правилах корреспондента?
5 Trance_1C
 
24.08.16
06:15
затянул в приемник актуальный комплект правил, не помогло...
6 Trance_1C
 
24.08.16
07:11
В добавок ко всему, точки останова в обработке КонвертацияОбъектов не отрабатывают, скорее всего обмен выполняется в фоне и отладчиком его не посмотреть
хотел заглянуть в процедуру поиска объекта при загрузке...
7 Trance_1C
 
24.08.16
07:12
А что можно добавить в список вариантов поиска - есть такая таблица на форме ПКО?
Она как-то влияет на отработку поиска объекта по полям?
8 Trance_1C
 
24.08.16
07:17
Опишу подробнее свою Ж... Ситуацию
Есть две базы источник УПП 1.2 приемник ЕРП 2.1.3
в обе базы добавлены планы обмена, правила разрабатываются в КД 1.2.8.2
В ерп используется штатная подсистема конвертации, подключил там свой план обмена к командам.
Интересный момент, пока не добавил в правила обмена ЕРП правила выгрузки объектов, например физ. лиц, они не загружались от источника.
Заглянуть в обработку конвертации в ЕРП во время загрузки я не могу, вообще не понятно какие правила она использует.
Уже напрашивается мысль подключить в ЕРП подсиситему обмена из БСП...
9 Trance_1C
 
24.08.16
07:20
Коллеги подскажите как посмотреть отладчиком конвертацию в ЕРП?
10 Trance_1C
 
24.08.16
07:20
выполняется в фоновом сеансе...
11 Mankubus
 
24.08.16
07:24
(10) вот про отладку фоновых заданий http://1c-programist.ru/otladka-fonovykh-zadanij.html
12 Trance_1C
 
24.08.16
08:01
(11) Спасибо, отладчик заработал и это обнадеживает :)
13 Trance_1C
 
24.08.16
09:51
Проблема решилась, некоторые поля поиска были указаны не в том РеГиСтРе что в таблице полей, с каких это пор при сравнении строк 1С стала учитывать регистр символов?
14 Trance_1C
 
24.08.16
09:53
вот такой алгоритм поиска отрабатывает как положено:

Если СвойстваПоиска["ЭтоГруппа"] Тогда
    Если НомерВариантаПоиска = 1 Тогда
        Если ЗначениеЗаполнено(СвойстваПоиска["КодУпп"]) И ЗначениеЗаполнено(СвойстваПоиска["Наименование"]) Тогда
            УстанавливатьУОбъектаВсеСвойстваПоиска = Истина;
        Иначе
            УстанавливатьУОбъектаВсеСвойстваПоиска = Ложь;
        КонецЕсли;    
        СтрокаИменСвойствПоиска = "КодУпп,Наименование" ;
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУпп";
    КонецЕсли;
Иначе    
    Если НомерВариантаПоиска = 1 Тогда    
        СтрокаИменСвойствПоиска = "КодУпп,Наименование" ;
        
        Если ЗначениеЗаполнено(СвойстваПоиска["КодУпп"])
            И ЗначениеЗаполнено(СвойстваПоиска["Наименование"])
            И ЗначениеЗаполнено(СвойстваПоиска["ИНН"])
            И ЗначениеЗаполнено(СвойстваПоиска["СтраховойНомерПФР"]) Тогда
            УстанавливатьУОбъектаВсеСвойстваПоиска = Истина;
        Иначе
            УстанавливатьУОбъектаВсеСвойстваПоиска = Ложь;
        КонецЕсли;    
    ИначеЕсли  НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "ИНН,СтраховойНомерПФР";
    ИначеЕсли НомерВариантаПоиска = 3 Тогда
        СтрокаИменСвойствПоиска = "ИНН";
    ИначеЕсли НомерВариантаПоиска = 4 Тогда
        СтрокаИменСвойствПоиска = "СтраховойНомерПФР";
    ИначеЕсли  НомерВариантаПоиска = 5 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "КодУПП";
    КонецЕсли;
КонецЕсли;