Имя: Пароль:
1C
1С v8
Конвертация данных. Дублируются контрагенты.
0 Босечка
 
13.04.16
10:40
В полях поиска стоит код:

Если СвойстваПоиска["ИНН"] = "" Тогда

Если НомерВариантаПоиска = 1 тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
ИначеЕсли НомерВариантаПоиска = 2 тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли;
КонецЕсли;

В конвертации свойств стоит галочка на поле "ИНН". Все равно создаются новые контрагенты (дубли). Что надо ставить в настройках , какие галочки?
1 Хуан
 
13.04.16
10:45
По меньшей мере на КПП и Наименование тоже должны быть галочки
2 hhhh
 
13.04.16
10:48
(0) в чем смысл? Если пустое ИНН, зачем по нему поиск?
3 Босечка
 
13.04.16
10:48
А в настройках ПКО что ставить?
4 Pro-tone
 
13.04.16
10:49
(3) продолжить поиск по полям поиска
5 Pro-tone
 
13.04.16
10:50
хотя эти галки можно не ставить, снять галку поиска по ссылке, поставить галки напротив полей поиска и все
6 Босечка
 
13.04.16
10:51
Это я для физлиц пробовала. Можно убрать это:

Если НомерВариантаПоиска = 1 тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
ИначеЕсли НомерВариантаПоиска = 2 тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли

все равно не выходит
7 Magnetic
 
13.04.16
10:51
(2) + кстати да зачем искать по ИНН если ИНН =""?
8 Magnetic
 
13.04.16
10:52
(6) сча гляну как извращался над поиском именно контрагентов...
9 Magnetic
 
13.04.16
10:54
(8) +

Если НомерВариантаПоиска = 1 тогда
    
СтрокаИменСвойствПоиска = "Родитель, Наименование, НаименованиеПолное, ИНН";

ИначеЕсли НомерВариантаПоиска = 2 тогда

СтрокаИменСвойствПоиска = "Родитель, Наименование, ИНН";

ИначеЕсли НомерВариантаПоиска = 3 тогда

СтрокаИменСвойствПоиска = "Родитель, Наименование";

ИначеЕсли НомерВариантаПоиска = 4 тогда

СтрокаИменСвойствПоиска = "Родитель, ИНН";

Иначе

л_Родитель = СвойстваПоиска.Получить("Родитель");
л_Наименование = СвойстваПоиска.Получить("Наименование");
л_НаименованиеПолное = СвойстваПоиска.Получить("НаименованиеПолное");
л_ИНН = СвойстваПоиска.Получить("ИНН");

Предупреждение("Конртагент " + л_Наименование + " не найден!", 3);

Сообщить ("Параметры контрагента: ",СтатусСообщения.Важное);
Сообщить ("Группа контрагента:              " + л_Родитель,СтатусСообщения.Важное);
Сообщить ("Наименование контрагента:        " + л_Наименование,СтатусСообщения.Важное);
Сообщить ("Полное наименование контрагента: " + л_НаименованиеПолное,СтатусСообщения.Важное);
Сообщить ("ИНН контрагента:                 " + л_ИНН,СтатусСообщения.Важное);
Сообщить ("*************************************************************************************");
    
КонецЕсли;

Дело давнее было немного подправь может стартанет
10 Босечка
 
13.04.16
10:54
(8) Заранее спасибо.
11 Pro-tone
 
13.04.16
10:57
(7) это верный поиск. потому что названия юрлиц могут меняться в разных базах, а ИНН+КПП всегда уникальны для одного юрлица
12 Босечка
 
13.04.16
10:57
(8) А мне в первую очередь надо по ИНН искать. Тогда как писать?
13 Pro-tone
 
13.04.16
10:58
(0) вот так пиши

Если НомерВариантаПоиска = 1 тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
ИначеЕсли НомерВариантаПоиска = 2 тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли;
14 Magnetic
 
13.04.16
10:58
(10) Да вот смотрю что-то практически тоже самое только блин вспоминается мне у меня немного другой момент был ... из конфигурации где велось штук 5-10 организаций перекидывались документы (ну и тянули за собой контрагентов само собой) поэтому группу только переносил ну и в такуюже группу помещал... чтоб не захватить такого же контрагента заведенного в другой организации
15 Pro-tone
 
13.04.16
10:59
Все же лучше не по ИНН искать, а 1й вариант поиска ИНН+КПП, а уже 2й проход - это чисто по одному ИНН
16 Карупян
 
13.04.16
10:59
может наименование  обрезается?
17 Magnetic
 
13.04.16
11:04
(0) А что есть контрагенты с незаполненными ИНН? Может напрячь бухов чтоб в обеих базах ИНН+КПП сначала проставили а потом будешь конвертацию настраивать...
18 Magnetic
 
13.04.16
11:08
(17) Я в итоге так и сделал после долгих попыток "сделать чтоб все было хорошо".
Еще как вариант выгрузить всех контрагентов.
Найти дубликаты
И перекинуть все ссылки на выгруженные
При последующих обменах контрагенты будут однозначно идентифицироваться без всяких поисков дополнительных
19 Босечка
 
13.04.16
11:08
Все везде уже проставлено. Я про галки в настройках спрашиваю:
1)Не замещать новые объекты при загрузке... и т.д.
2)Не создавать новый объект
3)При переносе объекта по ссылке НЕ создавать новый...
20 Босечка
 
13.04.16
11:09
(17) это у меня не пройдет, потому что контрагенты еще грузятся из клиент банка
21 Босечка
 
13.04.16
11:10
продолжить поиск по полям поиска стоит
22 Magnetic
 
13.04.16
11:12
(21) у меня стоит тока 1 галка
Не создавать новый объект в приемнике, если он не найден но я уже описал специфику...
23 Magnetic
 
13.04.16
11:15
(21) Понимаешь внутренние идентификаторы будут совпадать только с теми которые ты выгрузил ранее...
А вот поля поиска надо задать в ПКС обязательно те которые описываешь в обработчике поиска
24 Босечка
 
13.04.16
11:17
А если надо создать действительно новый объект?
25 Босечка
 
13.04.16
11:18
Как быть с новыми объектами?
26 Magnetic
 
13.04.16
11:19
Обработчики "Правила конвертации объектов"
Поля поиска
Условия возникновения события
Только для платформы V8.
Событие выполняется при поиске элемента ссылочного типа. Если установлен поиск по уникальнму идентификатору и программа нашла элемент, то поиск прекращается. Если поиск по уникальному идентификатору не дал положительного результата и указано, что нужно продолжить поиск в этом случае или поиск по уникальному идентификатору не проводился, то программа пытается найти элементы по свойствам поиска. В обработчике нужно установить список полей через запятую по которым нужно проводить поиск. Если очередная попытка дала положительный результат, то поиск прекращается.
Поиск возможен только по тем полям у которых на этапе выгрузка был установлен флаг поиска данных!!!
27 Borteg
 
13.04.16
11:21
(0)  Если СвойстваПоиска["ИНН"] = "" Тогда
изза этой строки у тебя поиск идет только по уникальному для контрагентов у которых заполнен ИНН. Так как ты говоришь что он везде заполнен то поиск идет только по нему.
Если НомерВариантаПоиска = 1 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
Иначе  
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
ИначеЕсли НомерВариантаПоиска = 2 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли;

Условия подправить можно чтобы не дублировать,но это не столь важно.
28 Magnetic
 
13.04.16
11:22
(24) (25) Мой вариант тогда тебе не годится, Ну сам обработчик то можно немного упростить и добавить КПП, А галки поставь искать по ИД и продолжить тоже поставь и также не замещать а создавать новые это как раз для того чтоб не трогал то что нашел и то что не нашел создал
29 Borteg
 
13.04.16
11:23
(27) +поля поиска должны быть все поля, которые используются в обработчики - поставь галочки напротив кпп и наименование еще.
30 Magnetic
 
13.04.16
11:24
(28) Но ИМХО вот тут у тебя и получатся дубликаты бухи лишний пробел поставили и не заполнили ИНН КПП все дубль гарантирован
31 Босечка
 
13.04.16
11:28
Я вообще только по ИНН искала в начале, все равно не получалось.
32 Borteg
 
13.04.16
11:31
(31) смотри (27)
33 Magnetic
 
13.04.16
11:38
Кстати а в приемнике и в источнике нету изначально дубликатов? Ну контрагентов с одинаковыми ИНН? Например в 3 раза завели контрагента в группах разных... ну там покупатель прочее и т.д.
34 Magnetic
 
13.04.16
11:40
могли и наименование разное немного написать ну там сокращенное и не сокращенное чета там местами немного поменять и забить тот же ИНН или в базах порядок в этом плане?
35 Босечка
 
13.04.16
11:43
Сделала как вы написали, все равно не получается....
На наименование мне плевать, если честно, я ищу по ТОЛЬКО по ИНН.
36 Босечка
 
13.04.16
11:45
ИНН одит и тот же
37 Magnetic
 
13.04.16
11:46
(35) как насчет (33) (34) и потом такая ситуация в приемнике заполнено ИНН в источнике не заполнено и таких контрагенов несколько как быть?
38 Magnetic
 
13.04.16
11:46
(36) В ПКС стоят галки на полях поиска на всех??? что в обработчике используете?
39 Magnetic
 
13.04.16
11:47
(37) + кстати и наоборот тоже в источнике заполнено в приемнике нет
40 Magnetic
 
13.04.16
11:48
(36) (38) конкретно у ИНН стоит галка чтоб искал по ИНН в ПКС
41 Босечка
 
13.04.16
11:48
ДА. Я вообще переношу  один документ. Там 1 контрагент. Наименование у них разные, а инн один и тот же
42 Босечка
 
13.04.16
11:49
(40) да.
43 Босечка
 
13.04.16
11:54
Вот в ПКО что написано
Если НомерВариантаПоиска = 1 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
Иначе  
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
ИначеЕсли НомерВариантаПоиска = 2 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли;
44 Босечка
 
13.04.16
11:55
причем это происходит не всегда я имею ввиду дубли
45 Йохохо
 
13.04.16
11:58
(41) [ДА. Я вообще переношу  один документ. Там 1 контрагент. Наименование у них разные, а инн один и тот же]
(44) [причем это происходит не всегда я имею ввиду дубли]
напишите сообщение на бумажке, подумайте, исправьте смысл, сделайте понятным другим, отправьте на форум
46 Magnetic
 
13.04.16
12:00
47 Босечка
 
13.04.16
12:02
Настройки так, а в ПКС ИНН,КПП,Наименование. Это имеет значение или нет?
48 Magnetic
 
13.04.16
12:04
(47) Да имеет те поля которые в обработчике поиска используешь должны быть ОБЯЗАТЕЛЬНО отмечены в ПКС как поля поиска
49 Босечка
 
13.04.16
12:06
Они отмечены, только в другом порядке а ПКО правильное?
Если НомерВариантаПоиска = 1 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
Иначе  
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
ИначеЕсли НомерВариантаПоиска = 2 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН";
Иначе
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
Иначе
    СтрокаИменСвойствПоиска = "Наименование";
КонецЕсли;
50 AneJIbcuH
 
13.04.16
12:15
(49) Порядок, как отмечены не важен. Если ИНН не заполнено, тогда просто так:

Если НомерВариантаПоиска = 1 тогда
Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
    СтрокаИменСвойствПоиска = "ИНН, КПП";
Иначе  
СтрокаИменСвойствПоиска = НомерВариантаПоиска;
КонецЕсли;
ИначеЕсли НомерВариантаПоиска = 2 тогда
   Если ЗначениеЗаполнено(СвойстваПоиска["ИНН"]) Тогда
       СтрокаИменСвойствПоиска = "ИНН";
       Иначе
      СтрокаИменСвойствПоиска = "Наименование";
   КонецЕсли;

КонецЕсли;
AdBlock убивает бесплатный контент. 1Сергей