Имя: Пароль:
1C
 
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
Собстно, возник еще вопросец: в ПКО "Физлица" в событии "поля поиска" нельзя получить параметры, в которые передаются значения в другом ПКО, а именно "ПаспортныеДанные"?