Имя: Пароль:
1C
1С v8
КД: Добавить категорию перенесенным сотрудникам
,
0 KrEAtive
 
17.07.11
19:55
Переношу сотрудников из одной базы в другую.
Во второй базе сотруднику должна добавиться категория "Перенесен".
Можно написать в ПКО в ПослеЗагрузки, но если Сотрудника нет в базе, то в регистр КатегорииОбъектов запись не добавить - ссылки еще нет.
Как лучше это сделать?
1 Amra
 
17.07.11
19:59
ПослеЗагрузки ссылка уже есть
2 Aleksey
 
17.07.11
19:59
а почему при выгрузке нельзя ее заполнить?
3 Aleksey
 
17.07.11
20:01
(1) Объект еще не записан в базу

Обработчики "Правила конвертации объектов"
После загрузки

Условия возникновения события
Только для платформы V8.


Событие выполняется после прочтения и установки атрабутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта.

Параметры:

Отказ - Булево - Если Истина, то объект загружен не будет.

Ссылка – Произвольный – ссылка на найденный объект в информационной базе.

Т.е. для нового объекта ссылки может и не быть
4 KrEAtive
 
17.07.11
20:03
(2)Категория вообще всегда одна "перенесен", даже запоминать не надо. Как потом всем перенесенным присвоить, запоминать где-то список?
5 Amra
 
17.07.11
20:08
(3) Ну конечно же и в обработчике этого события ее и записать нельзя) Да?)
6 Aleksey
 
17.07.11
20:09
(4) Тем более. Дописать конвертацию, что бы при выгрузки физлица автоматом выгружалась по правилу и РС КатегорииОбъектов

Вообще, ИМХО, идеология КД подразумевает, что мы по максимуму делаем при выгрузке. В идеале должно тупо загрузиться и все, без выбора
7 Aleksey
 
17.07.11
20:09
(5) Записать можно
8 KrEAtive
 
17.07.11
20:11
(5) Щас попробую записать, спс
9 Amra
 
17.07.11
20:22
(7) Спасибо, кэп!))
10 KrEAtive
 
17.07.11
20:24
(5)Записать не получается.
11 Amra
 
17.07.11
20:27
(10) КАк записываешь?)
12 KrEAtive
 
17.07.11
20:29
Я не силен в КД, поэтому прямо в обработчике делаю:
Объект.Записать(); Естественно, ругается
13 KrEAtive
 
17.07.11
20:32
Похоже, придется делать ПКО на Категории
14 ДенисЧ
 
17.07.11
20:33
(12) КАК ругается?
15 KrEAtive
 
17.07.11
20:35
Ругается уже при загрузке на то, что запись в регистр не может сделать.
Запись не верна! Значение поля "Объект" не может быть пустым!: КатегорииОбъектов

Для тех сотр., которых находит, все нормально, категорию переносит
16 SIS72
 
18.07.11
07:56
Тебе постоянно надо делать обмен сотрудниками или разово?
17 KrEAtive
 
18.07.11
08:11
(16) Разово
18 SIS72
 
18.07.11
09:08
так не парься - добавь в комментарий (если он есть, баз под рукой нет) например "!!!" через Значение = "!!!"+Значение; и потом обработку сделай  - где в комментарии первые три символа !!! - делай свою категорию. Так намного проще и быстрее, чем с правилами разбираться.

И еще зайди http://www.mykod.info - там про ковертацию данных с нуля очень доходчиво и на простых примерах
19 SIS72
 
18.07.11
09:10
Если вдруг нет комментария - можно, например и к фамилии !!! прицепить - а потом в обработке убрать...
20 Синий зуб
 
18.07.11
09:44
Теоретически должно прокатить событие После выгрузки в файл в ПКО. Там пишешь ВыгрузитьПоПравилу твой регистр сведений, и при загрузке сначала отработается загрузка сотрудника, а потом запись регистра сведений.
21 KrEAtive
 
18.07.11
10:53
Разобрался, почему не записывался регистр.
Я ссылку брал из Параметра обработчика
То есть был код:
Объект.Записать();
...
НаборЗаписей.Отбор.Объект.Установить(Ссылка);

Сделал так:
Объект.Записать();
Ссылка = Объект.Ссылка;
...
НаборЗаписей.Отбор.Объект.Установить(Ссылка);
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.