|
КД поиск по ИНН+КПП, если не удачен, то по наименованию | ☑ | ||
---|---|---|---|---|
0
zak555
15.05.13
✎
11:59
|
Собственно вопрос : как это реализовать при переносе из 77 в 8?
ясно, что для ПКС ИНН/КПП ставим галки по поиску, а вот что писать в обработчике ПриЗагрузке ПКО ? Если НЕ ОбъектНайден Тогда //как обратиться к узлу? КонецЕсли; |
|||
1
mikecool
15.05.13
✎
12:00
|
есть же отдельные критерии поиска (так вроде зовутся) на отдельной закладке
|
|||
2
zak555
15.05.13
✎
12:02
|
(1) и как там ?
я этим не пользовался |
|||
3
mikecool
15.05.13
✎
12:03
|
(2) сам такой, только советую )))
|
|||
4
Defender aka LINN
15.05.13
✎
12:03
|
Обработчик "Поля поиска"
|
|||
5
zak555
15.05.13
✎
12:06
|
(4) в книжке про "это" не написано
|
|||
6
Defender aka LINN
15.05.13
✎
12:09
|
(5) Зато там кнопки есть
|
|||
7
zak555
15.05.13
✎
12:09
|
(4) т.е. я в для ПКС ИНН/КПП/Наименование ставлю галки посика
далее в обработчике Поля поиска указываю сначала ИНН,КПП а потом Наименование ? |
|||
8
Defender aka LINN
15.05.13
✎
12:10
|
(7) Да
|
|||
9
Defender aka LINN
15.05.13
✎
12:10
|
+(8) Только не забудь про ЭтоГруппа
|
|||
10
zak555
15.05.13
✎
12:11
|
(8) пример можно?
я не понимаю, что в справке написано |
|||
11
zak555
15.05.13
✎
12:12
|
(9) у меня в обработчике ПКО Перед выгрузкой стоит
Отказ = Источник.ЭтоГруппа(); |
|||
12
zak555
15.05.13
✎
12:13
|
(8) так что ли ?
Если НомерВариантаПоиска = 1 тогда СтрокаИменСвойствПоиска = "ИНН, КПП"; Иначе СтрокаИменСвойствПоиска = "Наименование"; КонецЕсли; |
|||
13
Defender aka LINN
15.05.13
✎
12:14
|
(11) Поле поиска все равно нужно.
(10) Примерно так:
|
|||
14
Зойч
15.05.13
✎
12:15
|
(13) не катит. А если ИНН и КПП пустые? так все такие элементы в 1 сольются
|
|||
15
Defender aka LINN
15.05.13
✎
12:16
|
(14) Разрешаю их проверить предварительно
|
|||
16
Aleksey
15.05.13
✎
12:17
|
(15) Ну так проверяй на пустоту
|
|||
17
zak555
15.05.13
✎
12:17
|
(14) значит нужно проверить на пустоту ИНН/КПП ?
|
|||
18
Aleksey
15.05.13
✎
12:17
|
собственно в том обработчике можно и самому поискать нужный элемент и скормить найденный
|
|||
19
Aleksey
15.05.13
✎
12:18
|
СсылкаНаОбъект - ссылка на результирующий объект. Если в обработчике установить данную ссылку (не пустую) то программа ее запомнит и поиск на этом будет считать успешно завершенным
|
|||
20
zak555
15.05.13
✎
12:18
|
(13) > Поле поиска все равно нужно
чтобы элемент с наименованием Поставщик не записать в уже существующую группу с наименованием Поставщик ? |
|||
21
Defender aka LINN
15.05.13
✎
12:19
|
(20) да
|
|||
22
zak555
15.05.13
✎
12:21
|
как обратиться к ИНН / КПП ?
|
|||
23
Aleksey
15.05.13
✎
12:21
|
(22) у них должна стоять галочка поиск
|
|||
24
Aleksey
15.05.13
✎
12:22
|
СвойстваПоиска – соответствие, в котором хранятся текущие значения реквизитов поиска. Эти значения можно использовать в произвольных алгоритмах для идентификации объектов ИБ при загрузке данных. Следует иметь в виду, что при создании нового объекта, значения из соответствия СвойстваПоиска используются для заполнения свойств нового объекта.
|
|||
25
zak555
15.05.13
✎
12:27
|
тогда получается так ?
Если ЗначениеЗаполнено(СвойстваПоиска.ИНН) и ЗначениеЗаполнено(СвойстваПоиска.КПП) и НомерВариантаПоиска = 1 Тогда ПоляПоиска = "ИНН, КПП, ЭтоГруппа"; ИначеЕсли ЗначениеЗаполнено(СвойстваПоиска.ИНН) и НомерВариантаПоиска = 2 Тогда ПоляПоиска = "ИНН, ЭтоГруппа"; Иначе ПоляПоиска = "Наименование, ЭтоГруппа"; КонецЕсли; |
|||
26
ЧашкаЧая
15.05.13
✎
12:34
|
Еще нужно не забыть про пустые ИНН и КПП - найдет первого с пустым и перезапишет его. Рабочий пример:
ЭтоГруппа = СвойстваПоиска.Получить("ЭтоГруппа"); Если ЭтоГруппа Тогда Если НомерВариантаПоиска = 1 Тогда Параметры.ПараметрыАлгоритмов.Вставить("ИДСинхронизации77", ПараметрыОбъекта.Получить("ИДСинхронизации77")); Выполнить(Алгоритмы.НайтиОбъектПоИД77); СобственнаяСсылка = Параметры.ПараметрыАлгоритмов.СобственнаяСсылка; Если СобственнаяСсылка = Неопределено Тогда ПрекратитьПоиск = Истина; Иначе СсылкаНаОбъект = СобственнаяСсылка; КонецЕсли; Иначе // создаем новую группу ПрекратитьПоиск = Истина; КонецЕсли; Иначе ЕстьКодПоЕДРПОУ = ЗначениеЗаполнено(СвойстваПоиска.Получить("КодПоЕДРПОУ")); ЕстьИНН = ЗначениеЗаполнено(СвойстваПоиска.Получить("ИНН")); // сначала ищем по ЕДРПОУ, потом по ИНН Если НомерВариантаПоиска = 1 Тогда Параметры.ПараметрыАлгоритмов.Вставить("ИДСинхронизации77", ПараметрыОбъекта.Получить("ИДСинхронизации77")); Выполнить(Алгоритмы.НайтиОбъектПоИД77); СобственнаяСсылка = Параметры.ПараметрыАлгоритмов.СобственнаяСсылка; Если СобственнаяСсылка <> Неопределено Тогда СсылкаНаОбъект = СобственнаяСсылка; КонецЕсли; ИначеЕсли НомерВариантаПоиска = 2 И ЕстьКодПоЕДРПОУ Тогда СвойстваПоиска = "КодПоЕДРПОУ, ЭтоГруппа"; ИначеЕсли НомерВариантаПоиска = 2 И ЕстьИНН ИЛИ НомерВариантаПоиска = 3 И ЕстьКодПоЕДРПОУ И ЕстьИНН Тогда СвойстваПоиска = "ИНН, ЭтоГруппа"; Иначе Если Не (ЕстьКодПоЕДРПОУ ИЛИ ЕстьИНН) Тогда // не по чему искать СсылкаНаОбъект = Параметры.ДопОбработки.ВыбратьКонтрагента.ВыполнитьОбработку(СвойстваПоиска.Получить("Наименование")); УстанавливатьУОбъектаВсеСвойстваПоиска = Ложь; // а вдруг в базе УПП уже установлены коды ЕДРПОУ и/или ИНН, чтобы их не очистить не будем перезаписывать Иначе // не нашли, введем новый ПрекратитьПоиск = Истина; КонецЕсли; КонецЕсли; КонецЕсли; |
|||
27
zak555
15.05.13
✎
12:36
|
вопрос про условие
ИначеЕсли ЗначениеЗаполнено(СвойстваПоиска.ИНН) и НомерВариантаПоиска = 2 Тогда ПоляПоиска = "ИНН, ЭтоГруппа"; как это поиск отработать, чтобы искал по ИНН у тех элементов, у которых КПП пустое (если не пустое, то пусть ищет по наименованию) ? |
|||
28
ЧашкаЧая
15.05.13
✎
12:36
|
+ (26) ИДСинхронизации77 - это параметр в выгрузке (пришлось допилять КД, чтобы выгружались параметры из 7.7) ІD из таблицы контрагенты в 7.7
|
|||
29
Aleksey
15.05.13
✎
12:51
|
(28) а я пихал в строковый реквизит (например в комментарий) и ставил галку поиск,а при загрузки выпиливал этот кусок
|
|||
30
Aleksey
15.05.13
✎
12:53
|
ну типа в ПКС комментария
Значение = ""+ИДСинхронизации77+"$$$"+Источник.Комментарий; а после загрузки инд=найти(Объект.Комментарий, "$$$"); Если инд>0 тогда Объект.Комментарий=сред(Объект.Комментарий, инд+3); КонецЕсли; |
|||
31
ЧашкаЧая
15.05.13
✎
13:13
|
(30) Хорошая идея, не додумался я до этого, а сейчас уже ПараметрыОбъекта есть.
(27) см в (26) поиск элементов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |