Имя: Пароль:
1C
1С v8
Конвертация контрагентов из базы1 в базу2 по ИНН
0 olo_lo1
 
26.03.13
12:29
Товарищи комрады ребзы, не пойму 2 момента по данному сабжу
1) как сделать так что при нахождении ИНН этот зверь не перезагружал в него все поля из базы1
2) если ИНН нет (не заполнен в карточке) что бы искал по внутреннему идентификатору
1 samozvanec
 
26.03.13
12:31
2. там галка есть в свойствах правила
2 gorakh
 
26.03.13
12:32
Кури КД2.
3 Alexor
 
26.03.13
12:32
Две галки поставить.
Поиск по внутреннему коду.
И вроде не перегружать найденный элемент.

Пишу по памяти, обе галки есть в ПКО.
4 PCcomCat
 
26.03.13
12:32
У-у-у! Это очень интересная штука с вариантами поиска.
1)Галочку поставить у конвертации объекта.
2)Варианты поиска копай.
5 Никулин Леонид
 
26.03.13
12:33
Посмотри в ПКО есть вкладка настройки там галочки есть
6 PCcomCat
 
26.03.13
12:33
А вообще по внутреннему идентификатору в двух разных базах - это как?
7 Никулин Леонид
 
26.03.13
12:33
Нашел?
8 samozvanec
 
26.03.13
12:34
(6) либо по соответствию, либо выгружать их
9 PCcomCat
 
26.03.13
12:37
(8) Так сначала производится поиск по внутреннему идентификатору, а потом уж по полям поиска.
10 olo_lo1
 
26.03.13
12:37
(3) мне кажется что если включаешь галку искать по внутреннему ИД, то поиск идет по нему как приоритет 1 и все остальное в игнор или после того как по внутр не найден. Мне надо чтио бы вначале по ИНН шло
11 olo_lo1
 
26.03.13
12:38
(9) во-во, я о том же
12 PCcomCat
 
26.03.13
12:39
ПКО:
Закладка настройки:

V искать по внутреннему идентификатору
V Продолжить поиск по полям

Закладка Обработчики событий (Поля поиска):

Сообщить("***");
Сообщить(СокрЛП(СвойстваПоиска));
Для каждого ЗначСоотв из СвойстваПоиска цикл
   Сообщить(СокрЛП(ЗначСоотв.Ключ) + " - " + СокрЛП(ЗначСоотв.Значение));
КонецЦикла;    
Сообщить("***");

Если НомерВариантаПоиска = 1 и СокрЛП(СвойстваПоиска.Получить("ИНН"))<>"" тогда
   Сообщить("1");
   СтрокаИменСвойствПоиска = "ИНН";
//ИначеЕсли НомерВариантаПоиска = 2 тогда
//    Сообщить("2");
//    СтрокаИменСвойствПоиска = "Наименование";
Иначе
   Сообщить("3");
   СтрокаИменСвойствПоиска = "ЭтоГруппа, Наименование";
КонецЕсли;
13 olo_lo1
 
26.03.13
12:41
(12) ну поиск по ИНН вижу а где по внутреннему ID ?

это точно не то - Иначе
   Сообщить("3");
   СтрокаИменСвойствПоиска = "ЭтоГруппа, Наименование";
КонецЕсли;
14 samozvanec
 
26.03.13
12:41
(10) хитрый больно
15 PCcomCat
 
26.03.13
12:41
(13) Ты думаешь, что по внут.идент. в двух базах будут разные контрагенты???
16 olo_lo1
 
26.03.13
12:43
(15) я хочу понять как в коде указать поиск по внутреннему ID если ИНН нет или в идеале не только нет но и не найден
17 PCcomCat
 
26.03.13
12:44
(13) Наоборот через КД не прокатит!
18 PCcomCat
 
26.03.13
12:46
(16) При первой загрузке не будет ни одного контрагента с совпадающим внут. идент., поэтому поиск продолжится по полям. А вот если не найдет и по полям, то добат элемент с новым внут идент.
19 olo_lo1
 
26.03.13
12:47
(18) так чечь идет о том что выгрузка не в первый раз..
добавил вот так, но конечно это не то что я хотел
Если СвойстваПоиска["ЭтоГруппа"] Тогда
СтрокаИменСвойствПоиска = "Родитель, Наименование, ЭтоГруппа";
Иначе
Если СокрЛП(СвойстваПоиска.Получить("ИНН"))<>"" Тогда
СтрокаИменСвойствПоиска = "ИНН";
Иначе
СтрокаИменСвойствПоиска = "Родитель, ЭтоГруппа , Наименование";
КонецЕсли;
КонецЕсли;
20 Aleksey
 
26.03.13
12:47
(13) Передава УИД в поле, а в полях поиска уже сам ищи по УИДУ
21 olo_lo1
 
26.03.13
12:49
(20) а без поля к нему никак обратиться нельзя ?
22 Aleksey
 
26.03.13
12:51
(21) обратится можно к тем полям по которым стоит галочка поиск
23 olo_lo1
 
26.03.13
12:58
ок, понял, спс