|
Конвертация данных БП 3 - Перенос пользователей |
☑ |
0
cmex
13.08.14
✎
15:39
|
Добрый день.
Как правильно написать правила для переноса справочника "Пользователи"?
У меня в базе источника и приемника есть один и тот же пользователь - с разным наименованием, но одинаковой учетной записью при аутентификации средствами ОС. Но информация о "ПользовательОС" в явном виде не хранится в справочнике "Пользователи".Есть только реквизит "ИдентификаторПользователяИБ", по которому находится ПользовательИнформационнойБазы. Можно ли в КД написать собственный алгоритм поиска и подпихнуть его в какой-нибудь обработчик событи ПКО или ПКС? Спасибо
|
|
1
Поpyчик-4
13.08.14
✎
15:41
|
(0) Можно. Для этого и есть обработчик Поля поиска.
|
|
2
cmex
13.08.14
✎
15:45
|
(1) в полях поиска нужно указать по каким полям искать, а мне нужно сперва в источнике по "ИдентификаторПользователяИБ" найти ПользователяИнформационнойБазы, оттуда выцепить "ПользователяОС", потом в приемнике перебрать всех пользователей и ПользователейИнформационнойБазы и сопоставив их, жестко присвоить "СсылкаНаОбъект". Как это сделать пока не представляю
|
|
3
Поpyчик-4
13.08.14
✎
15:46
|
(2) Для этого и есть обработчик Поля поиска.
|
|
4
acsent
13.08.14
✎
15:47
|
проще добавить поле на время переноса ))
|
|
5
Поpyчик-4
13.08.14
✎
15:49
|
(4) Садись, кол. Есть ПараметрыОбъекты.
|
|
6
toypaul
гуру
13.08.14
✎
15:51
|
в хелпе по обработчкам в КД есть пример переноса пользователей. используются параметры объекта. подробнее в курсе по КД :)
|
|
7
RMpnz
13.08.14
✎
15:51
|
В "Информации по обработчикам..." ПКО в обработчике "При выгрузке" есть пример выгрузки пользователей. рекомендую
|
|
8
cmex
13.08.14
✎
15:53
|
вот такой код примерно в обработчике Поля поиска
//ПользовательОС - нужно найти в Источнике по реквизиту "ИдентификаторПользователяИБ" и запонить его для дальнейшего поиска в приемнике
ПользователиИБПриемника = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого эл Из ПользователиИБПриемника Цикл
Если эл.ПользовательОС = ПользовательОС Тогда
СсылкаНаОбъект = Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ", эл.УникальныйИдентификатор);
Прервать;
КонецЕсли
КонецЦикла;
|
|
9
cmex
13.08.14
✎
15:55
|
(5) как ими пользоваться? я второй раз с КД общаюсь
|
|
10
toypaul
гуру
13.08.14
✎
15:57
|
(9) описание обработчиков при выгрузке и после загрузки. вроде так.
как пользоваться? курс по КД недорого стоит :). книжка еще дешевле
|
|
11
cmex
13.08.14
✎
16:24
|
(5) а где заполнить ПараметрыОбъекта?
|
|
12
cmex
13.08.14
✎
16:34
|
я добавил новое свойство, в обработчике "ПередВыгрузкой" написал
Значение = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Источник.ИдентификаторПользователяИБ).ПользовательОС;
И установил по этому полю поиск и галочку поставил "ПередаватьДанныеВПарамет" с именем ПользовательОС. Теперь он будет доступен как ПараметрыОбъекта([ПользовательОС]) в Полях поиска?
|
|
13
cmex
14.08.14
✎
08:09
|
народ, подскажите, как такой вариант (12)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший