Имя: Пароль:
1C
1С v8
Конвертация данных. Дубли в источнике.
,
0 ELEA26
 
05.05.17
16:50
При переносе в источнике есть дубли контрагентов по ИНН/КПП.
В приемник не удается записать дубль т.к. запрещено. Но и в обработчике "ПослеЗагрузки":

ТЗапросПоиска = "ВЫБРАТЬ Ссылка КАК КолВо ИЗ Справочник.Контрагенты ГДЕ ИНН=&ИНН И КПП=&КПП";
ЗапросПоиска= Новый Запрос(ТЗапросПоиска);
ЗапросПоиска.УстановитьПараметр("ИНН",СокрЛП(Объект.ИНН));
ЗапросПоиска.УстановитьПараметр("КПП",СокрЛП(Объект.КПП));
Рез = ЗапросПоиска.Выполнить();
Если НЕ ОбъектНайден Тогда
    Если НЕ Рез.Пустой() Тогда
        Сообщить("КПП/ИНН найдено:"+Объект.ИНН+"/"+Объект.КПП+"="+Объект);
        Отказ = Истина;
    Иначе
        Сообщить("Пытаемся грузить:"+Объект.ИНН+"/"+Объект.КПП+"="+Объект);
    КонецЕсли;
КонецЕсли;

Всегда попадает в "Пытаемся грузить".
Где Акелла промахнулся?
1 h-sp
 
05.05.17
16:57
(0) ну может они все ПослеЗагрузки выполняются, а потом запись идет? хотя...
2 ELEA26
 
05.05.17
16:58
v2:
Пока вдуплял, оптимизировал:

Если НЕ ОбъектНайден Тогда
    ТЗапросПоиска = "ВЫБРАТЬ Ссылка КАК КолВо ИЗ Справочник.Контрагенты ГДЕ ИНН=&ИНН И КПП=&КПП";
    ЗапросПоиска= Новый Запрос(ТЗапросПоиска);
    ЗапросПоиска.УстановитьПараметр("ИНН",СокрЛП(Объект.ИНН));
    ЗапросПоиска.УстановитьПараметр("КПП",СокрЛП(Объект.КПП));
    Рез = ЗапросПоиска.Выполнить();    
    Если НЕ Рез.Пустой() Тогда
        Сообщить("КПП/ИНН найдено:"+Объект.ИНН+"/"+Объект.КПП+"="+Объект);
        Отказ = Истина;
    Иначе
        Сообщить("Пытаемся грузить:"+Объект.ИНН+"/"+Объект.КПП+"="+Объект);
    КонецЕсли;
КонецЕсли;

Но это так. Вопрос как был так и остался.
3 vladimir80
 
05.05.17
17:02
Предположу, что СокрЛП(ИНН)<>ИНН... То же и с КПП. А вообще отладчик не используется по религиозным соображениям?
4 vladimir80
 
05.05.17
17:05
попробуй через Подобно %&ИНН% посмотреть...
5 ELEA26
 
05.05.17
17:07
(1) Нет, 1й контрагент записался. Теперь валится именно на дубле. Почему может не находить первый?
В консоли запросов - запрос находит одну запись в приемнике. (3) А на что ставить отладчик? Это обработка V8Exchan83.epf, код вообще из файла обмена (Данные.xml)... Я не знаю куда отладчиком тыкаться, потому втыкаю Сообщить. По сообщениям видно, что запрос явно пустой, но в консоли запросов копирую эти данные из сообщить подставляю в этот же запрос и все находит. Я когда такую мистику вижу - понимаю, что где-то по мелочи затупил. Но не вижу где.
6 vladimir80
 
05.05.17
17:10
(5) Там есть режим отладки. Но все гораздо прозаичнее. Руками в приемнике через консоль запросов сделай и посмотри что произойдет
7 vladimir80
 
05.05.17
17:11
Упс, недочитал.
8 echo77
 
05.05.17
17:12
(0) Что мешает устранить дубли в источнике?
9 vladimir80
 
05.05.17
17:15
попробуй (4)
10 vladimir80
 
05.05.17
17:16
И еще - дубли полные? Может КПП разные при одинаковых ИНН?
11 ELEA26
 
05.05.17
17:17
(9) странно, но с LIKE (ПОДОБНО) вообще не находит даже в консоли...

(8) источников будет много и не перед каждым я буду.
(10) абсолютно полные :(
12 mehfk
 
05.05.17
17:23
(0) Поиск по guid отключен?
13 ELEA26
 
05.05.17
17:24
(12) да, отключен.