![]() |
![]() |
![]() |
|
v8: Конвертация данных - Синхронизация справочника через поиск в регистре | ☑ | ||
---|---|---|---|---|
0
SStep
26.04.13
✎
10:28
|
Работаю над следующим: настроен обмен между двумя УПП 1.3 по правилам, необходимо синхронизировать справочник "физические лица" по серии и паспорту последних. То есть, при синхронизации конкретного элемента справочника "физические лица" делаем по нему выборку по регистру сведений "паспортные данные" в базе источнике, ищем по ним в базе-приемнике, если находим - то перезаписываем наденное физлицо, если нет - создаем новое из источника. Так вот, в ПКО ФизическиеЛица в событии "После выгрузки" пишем:
Запросы.ВыбратьПаспортныеДанныеПоФизЛицу.УстановитьПараметр("Физлицо", Источник); ВыборкаПаспортныхДанных = ВыбратьПаспортныеДанныеПоФизЛицу.Выполнить().Выбрать(); Пока ВыборкаПаспортныхДанных.Следующий() Цикл ВыгрузитьПоПравилу(ВыборкаПаспортныхДанных,,,,КонтактнаяИнформация); КонецЦикла; Как выбранные записи регистра источника использовать в событии "поля поиска"? |
|||
1
tdm
26.04.13
✎
10:31
|
зачем придумывать себе трудности чтобы потом их преодолевать?)))
тем более УПП, тем более регулярный - кроме вас потом никто это понимать не будет... |
|||
2
tdm
26.04.13
✎
10:33
|
+(1) так и хочется вспомнить старое доброе:
- если какая-то проблема может случится,то она обязательно случится - сложность программы растет до уровня программиста - усложнять просто, упрощать - сложно и т.д. и т.п. |
|||
3
SStep
26.04.13
✎
10:34
|
(1) Требуется синхронизация именно по паспортным данным
|
|||
4
MaxS
26.04.13
✎
10:38
|
Если физлицо меняет паспорт, в базе приёмнике появляется новой физлицо или у "старого" физлица в базе приёмнике меняется паспорт?
|
|||
5
tdm
26.04.13
✎
10:38
|
(3) а вн.идентификатор ?) в конце концов серия+номер паспорта ?
|
|||
6
SStep
26.04.13
✎
10:39
|
(4) Если физлицо меняет паспорт, в источнике имеется две записи в регистре, мы выбираем их и ищем по ним..если хотя бы по одной из них имеется запись в регистре приемника, то текущее физлицо перезаписывается
|
|||
7
SStep
26.04.13
✎
10:40
|
(5) серия + номер паспорта хранятся в регистре сведений "паспортные данные физлиц"
|
|||
8
tdm
26.04.13
✎
10:43
|
(7) я про другое...синхронизировал бы физ.лиц по физ.лицам
запись РС не объект, т.е. можно случайно удалить, скопировать, поправить и т.д. а в результате вы никак не поймете что "исходная запись" = "измененная запись" ))) я к этому |
|||
9
Alex S D
26.04.13
✎
10:44
|
ищи ссылку в событии Поля поиска.. присваиваешь
СсылкаНаОбъект = ТвояСсылка.. все |
|||
10
Alex S D
26.04.13
✎
10:44
|
ну и нужные параметры отбора я думаю надо передать через ПараметрыОбъекта
|
|||
11
SStep
26.04.13
✎
11:00
|
(9) Если я делаю запрос в событии "поля поиска", то выборка получается из приемника? нужно лишь передать параметры в этот запрос.
|
|||
12
Alex S D
26.04.13
✎
11:01
|
(11) да по идее..
|
|||
13
SStep
26.04.13
✎
11:09
|
Остается лишь проблема: есть физ лицо с паспортными данными в источнике, а в приемнике есть только элемент справочника без паспортных данных, то есть без записи в регистре, получается в результате обмена создастся новый элемент справочника и запись в регистре для него..
|
|||
14
Alex S D
26.04.13
✎
11:11
|
хм.. ну а что ты хотел? ты же синхронишь по регистру..
|
|||
15
Alex S D
26.04.13
✎
11:12
|
(13) и как понимать, что физ.лицо без записи в регистре это именно это физ лицо? без регистра?
|
|||
16
SStep
26.04.13
✎
11:16
|
(15) да в том то и проблема, что уникальные у физ лица только паспортные данные, так что создавать новую запись единственный адекватный вариант
|
|||
17
Alex S D
26.04.13
✎
11:17
|
(16) просто исключить ситуации, когда физ. лицо без записи в регистре
|
|||
18
dk
26.04.13
✎
11:26
|
(0) Если других вариантов нет, то можно и вручную синхронизировать,не обязательно в КД упираться
|
|||
19
MaxS
26.04.13
✎
11:42
|
(11) поля поиска из источника, запрос к данным - к данным приёмника, т.к. этот код выполняется при загрузке.
|
|||
20
SStep
26.04.13
✎
11:59
|
(18) обмен по правилам удобней, так как по правилам синхронизируем и другие справочники, например, контрагенты и договора, и обмен периодический
|
|||
21
SStep
26.04.13
✎
15:04
|
(10) в ПКО Паспортные данные у свойств СерияДокумент и Номер документ ставим выгружать в параметр. А если в выборке 2 записи регистра, получим 2 значения у СерияДокумент и 2 у НомерДокумент. Как к ним обратиться потом? а еще вроде пишут что эти параметры нельзя использвовать в событии "поля поиска"
|
|||
22
Alex S D
26.04.13
✎
15:06
|
(21) на счет вроде пишут, ты зайди в описание обработчика и сам увидишь, а на счет 2 записи.. это уже твои трудности, передавай одну запись)
|
|||
23
SStep
29.04.13
✎
13:45
|
Собстно, возник еще вопросец: в ПКО "Физлица" в событии "поля поиска" нельзя получить параметры, в которые передаются значения в другом ПКО, а именно "ПаспортныеДанные"?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |