Имя: Пароль:
1C
1С v8
Вопрос про конвертацию данных из 1с7.7 в 1с8.2
, ,
0 Help1c8
 
19.07.11
11:47
Подскажите пожалуйста. Я пытаюсь конвертировать справочник физ лица из 7 в 8.

Столкнулся с проблемой не хочет выгружаться ПОЛ тип перечисление.

и в 7 и в 8 реквизит ПОЛ имеет тип перечисление.
Побывал делать по книге
В ПКС (конвертация свойств) -> модуль Перед Выгрузкой делал так:
1) Значение = "Мужской";
2) Значение = СокрЛП(Строка(Источник.Пол));

Затем сохранял правила, а в 7 при помощи обработки "Универсальная выгрузка данных в формате ХМЛ" в. 2.1.5 выгружал в файл данных. После чего в окне сообщений выдает следующее:

ПКС_ПередВыгрузкой_ФизическиеЛица_Пол_Реквизит9<<?>>(Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, НомерПКС, НомерПКО, ОбъектКоллекции, Значение, ТипПриемника, ИмяПКО, ИмяПКОВидСубконто, Пусто, Выражение, НеЗамещать, УзелКоллекцииСвойств)
Функция не обнаружена (ПКС_ПередВыгрузкой_ФизическиеЛица_Пол_Реквизит9)

Заранее спасибо за советы
1 Dorosh
 
19.07.11
17:12
Модуль обработки не забыл заменить?
2 Amra
 
19.07.11
17:22
(0) НАфуя такой изврат?
3 Help1c8
 
20.07.11
09:59
Да забыл модуль заменить потом уже сам разобрался.

Есть еще вопрос. В правилах конвертации объектов есть обработчики Перед загрузкой и после загрузки. В обработчике после загрузки у меня получается обратиться к Объекту т.е. например

Объект.ФизЛицо.Код

а как мне обратиться к этим данным перед загрузкой. Это возможно?
4 nazi
 
20.07.11
10:01
(2) ну может еще не до шел человек до инфы про ПКЗ )
5 Help1c8
 
20.07.11
10:06
(4) Это правило конвертации значений? Но я не совсем понял как это работает. Как я понял там надо было добавить 2 элемента

Мужской и Женский. Это и все? или там еще что то нужно прописывать?
6 nazi
 
20.07.11
10:07
там надо сопоставить перечисление 7.7 и перечисление 8.2 в твоем случае - пол:
делаем ПКО - перечисление пол
на закладке правила конвертации значений делаем:
мужской - м;
женский - ж
7 ДенисЧ
 
20.07.11
10:12
+6 и в правиле конвертации указать это ПКЗ...
8 nazi
 
20.07.11
10:13
(7) ну это самосабой уже)))
9 Help1c8
 
20.07.11
10:21
Ага спасибо получилось) Хотя мне вариант кода в одну строчку больше нравиться)

Значение = СокрЛП(Строка(Источник.Пол));

А по поводу поста (3)?
10 nazi
 
20.07.11
11:16
(9) вариант в строчку придется повторят 100500 раз, через ПКО - 1 раз сделал, потом подцепляешь и все.

ни как по ходу - опиши задачу что нужно, другой вариант подскажут
11 Help1c8
 
20.07.11
11:27
После того как я в регистр сведений выгружаю паспортные данные создается новая запись. Почему не пойму, хотя все ресурсы в регистре совпадают кроме даты создания. По идее он не должен создавать новую запись, исключение если бы данные паспорта поменялись серия номер и т.д.

Раз так получилось что он создает новую запись я решил удалять предыдущие и написал обработчик.

Обработчик После загрузки.


ОтборПД = Новый Структура;
ОтборПД.Вставить("ФизЛицо",Объект.ФизЛицо);

РС_ПД=РегистрыСведений.ПаспортныеДанныеФизЛиц.Выбрать(,,ОтборПД);

Пока РС_ПД.Следующий() цикл
   Если РС_ПД.Период<ТекущаяДата() тогда
       РС_ПД.ПолучитьМенеджерЗаписи().Удалить();
   КонецЕсли;    
КонецЦикла;    

Объект.ДокументВид = Справочники.ДокументыУдостоверяющиеЛичность.НайтиПоНаименованию("Паспорт",истина);

Но это не совсем хорошо т.к. программа сначала добавляет данные, а я потом удаляет что сказывается на скорости выгрузки. Вот я и хочу сделать проверку перед выгрузкой, если все поля в регистре совпадают с данными в хмл то не записывать в регистр данные (дата создания не в счет).