Имя: Пароль:
1C
 
Конвертация данных
0 mpbakunov
 
11.03.10
19:31
Доброго дня!

в ПКД (обработчик ПередОбработкой) формирую произвольную выборку и используя ВыгрузитьПоПравилу передаю Источник и доп. параметры в 1 и 3 параметре соответственно. в ПКО указанном в ВыгрузитьПоПравилу мне нужно в обработчике ПослеЗагрузки использовать доп. данные переданные ранее (см. выше) Как это реализовать?
1 Господин ПЖ
 
11.03.10
19:57
выгружать в параметры
2 Naumov
 
11.03.10
20:08
либо в подчиненный узел
3 mpbakunov
 
11.03.10
20:16
(1) Пожалуйста пример если можно!
4 Господин ПЖ
 
11.03.10
20:20
все примеры в самой КД. в ПКС переключатель видишь? выгружать в свойство/в параметр
5 mpbakunov
 
11.03.10
20:26
(4) Я понимаю что в самой КД примеры, но когда только начал юзать КД то как то не все понятно. Вы написал "в свойство/в параметр", Если бы написали в свойство то понятно а что значит связка "свойство/в параметр"?
6 mpbakunov
 
12.03.10
09:38
всебы хорошо, только "Передавать данные в параметр" в ПКС не активно. Подозреваю из за того что конвертирую из 7.7. Так ли это?
7 mpbakunov
 
12.03.10
09:41
(6) посмотрел по коду, действительно не активно из-за того что источник 7.7 поэтому первоначальный вопрос остается в силе!
8 Господин ПЖ
 
12.03.10
10:29
ну тогда выгружай в подчиненный узел. Примеры в книжке Бояркина
9 mpbakunov
 
12.03.10
10:57
(8) что такое подчиненый узел? я просматривал книгу, но чтото  о подчиненных узлах ничего не видел.
10 Defender aka LINN
 
12.03.10
11:14
(9) Дописать после выгрузки объекта в XML нужные данные и после загрузки прочитать
11 mpbakunov
 
12.03.10
11:22
(10)так мой и вопрос в принципе об этом. я пока не понял как и куда записать доп. данный и как  потом их прочитать!?
12 Naumov
 
12.03.10
11:33
Пример есть в конвертации ПриВыгрузкеОбъекта:
Пример:
ИнформацияОПользователе = СоздатьУзел("ИнформацияОПользователе");
УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияОС", Источник.АутентификацияОС);
УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияСтандартная", Источник.АутентификацияСтандартная);
УстановитьАтрибут(ИнформацияОПользователе, "ПоказыватьВСпискеВыбора", Источник.ПоказыватьВСпискеВыбора);
УстановитьАтрибут(ИнформацияОПользователе, "ПользовательОС", Источник.ПользовательОС);
УстановитьАтрибут(ИнформацияОПользователе, "ПолноеИмя", Источник.ПолноеИмя);
ЧислоРолей = 1;
Для Каждого Роль Из Источник.Роли Цикл
УстановитьАтрибут(ИнформацияОПользователе, "Роль"+ЧислоРолей, Роль.Имя);
Сообщить(Роль.Имя);
ЧислоРолей = ЧислоРолей + 1;
КонецЦикла;
ДобавитьПодчиненный(Приемник, ИнформацияОПользователе);




Ну и смотри извлечение в примере при загрузке.
13 mpbakunov
 
12.03.10
11:49
(12) Это в конфигурации которая на ИТС или которая шла с книгой?
14 Naumov
 
12.03.10
11:51
На ИТС типовая КонвертацияДанных 2.0
15 mpbakunov
 
12.03.10
11:55
(14)Уже бы указал полный путь: Название конвертации и название ПКО :) Заранее спасибо!
16 Naumov
 
12.03.10
12:00
Это из хелпа. описание обработчиков
17 Naumov
 
12.03.10
12:01
описание к обработчику выгрузки объекта событие "при выгрузке"
18 mpbakunov
 
12.03.10
15:53
(17) эксперементирую следующее:

В обработчике ПриВыгрузке ПКО:

УзелДополнительного=СоздатьУзел("УзелДополнительного");
УстановитьАтрибут(УзелДополнительного,"Имя","Дополнительный");

ДобавитьПодчиненный(Приемник,УзелДополнительного);

обработчик ПослеЗанрузки еще пуст!

При закрузки в конфигурацию Приемник получаю ошибки:

Ошибка формата файла обмена

Ошибка формата файла обмена
   ИмяУзла                =  УзелДополнительного

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Пусто

Ошибка формата файла обмена
   ИмяУзла                =  Пусто

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(6895)}: Тип не определен

Окончание загрузки: 12.03.2010 14:50:24

Загружено объектов: 13

Что не так?
19 Naumov
 
12.03.10
16:02
а ты свой подчиненный узел читать не забываешь?
20 mpbakunov
 
12.03.10
16:08
(19)Забиваю .. вот полный код обработчика:

УзелДополнительного=СоздатьУзел("УзелДополнительного");
УстановитьАтрибут(УзелДополнительного,"Имя","Дополнительный");

УзелЗначения=СоздатьУзел("УзелЗначения");
УстановитьАтрибут(УзелЗначения,"Значение",ВходящиеДанные.ПолучитьЗначение(2));
ДобавитьПодчиненный(УзелДополнительного,УзелЗначения);

ДобавитьПодчиненный(Приемник,УзелДополнительного);


Я думаю, что и с незаполненным вариантом тоже должно было не выдавать ошибки при загрузке!
21 Naumov
 
12.03.10
16:13
(20)Читай вопрос внимательно: ты должен при загрузке прочитать свой узел и обработать его, иначе обработчик не знает что с ним делать, а следовательно ругается.
22 Naumov
 
12.03.10
16:24
вот пример более конкретный (из каких-то старых версий правил обмен УТ и БП)
При выгрузке ДокументСсылка.ОтчетОРозничныхПродажах:

УзелКомиссияПоСтрокамТабличнойЧасти = СоздатьУзел("КомиссияПоСтрокамТабличнойЧасти");

Для каждого Строка из КоллекцияОбъектов Цикл
   
   НомерСтроки = НомерСтроки + 1;
   
   УзелСтрока = СоздатьУзел("Строка");
   УстановитьАтрибут(УзелСтрока, "НомерСтроки", НомерСтроки);
   УзелСтрока.ЗаписатьТекст(XMLСтрока(Строка.Комиссия));
   ДобавитьПодчиненный(УзелКомиссияПоСтрокамТабличнойЧасти, УзелСтрока);
   
КонецЦикла;

УзелКомиссияПоСтрокамТабличнойЧасти.ЗаписатьКонецЭлемента();
УзелКомиссияПоСтрокамТабличнойЧасти = УзелКомиссияПоСтрокамТабличнойЧасти.Закрыть();
ДобавитьПодчиненный(Приемник, УзелКомиссияПоСтрокамТабличнойЧасти);

//------------------------
При загрузке

КомиссияПоСтрокамТабличнойЧасти = Новый Соответствие;

Пока ФайлОбмена.Прочитать() Цикл
       
   ИмяУзла = ФайлОбмена.ЛокальноеИмя;
   ТипУзла = ФайлОбмена.ТипУзла;
   
   Если ИмяУзла = "Строка" Тогда
       
       КомиссияПоСтрокамТабличнойЧасти.Вставить(одАтрибут(ФайлОбмена, одТипЧисло, "НомерСтроки"), одЗначениеЭлемента(ФайлОбмена, Тип("Булево")));
       
   ИначеЕсли (ИмяУзла = "КомиссияПоСтрокамТабличнойЧасти") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда
       
       Параметры.КомиссияПоСтрокамТабличнойЧасти.Вставить(Ссылка, КомиссияПоСтрокамТабличнойЧасти);
       Прервать;
       
   КонецЕсли;
   
КонецЦикла;


т.е. ты должен САМ прочитать все добавленное.
23 mpbakunov
 
12.03.10
16:27
(20)я уже и так пробовал. вот обработчик события ПриЗагрузке:

Объект.Организация=Параметры.БазОрганизация;
ПодчиненныеУзлы=Узел.ВыбратьУзлы("УзелДополнительного");
ПодчиненныйУзел=ПодчиненныеУзлы.ПолучитьУзел(0);
УзелЗначения=ПодчиненныеУзел.ПолучитьУзел(0);

если УзелЗначения.ПолучитьАтрибут("Значение")=1 тогда
   Объект.ВидЗанятости=Перечисления.ПеречислениеСсылка.ВидыЗанятостиВОрганизации.Совместительство;
иначе    
   Объект.ВидЗанятости=Перечисления.ПеречислениеСсылка.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы;
КонецЕсли    

получил!!!

Начало загрузки:   12.03.2010 15:28:08

Ошибка в обработчике события ПриЗагрузкеОбъекта
   ИмяПКО                 =  Сотрудники
   ТипОбъекта             =  Справочник ссылка: Сотрудники организаций
   Объект                 =  Алита И. И.
   Обработчик             =  ПриЗагрузкеОбъекта
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML(7215)
   КодСообщения           =  20

Ошибка формата файла обмена

Ошибка формата файла обмена
   ИмяУзла                =  УзелЗначения

Ошибка формата файла обмена
   ИмяУзла                =  УзелЗначения

Ошибка формата файла обмена
   ИмяУзла                =  УзелДополнительного

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  

Ошибка формата файла обмена
   ИмяУзла                =  Значение

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Ссылка

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка формата файла обмена
   ИмяУзла                =  Пусто

Ошибка формата файла обмена
   ИмяУзла                =  Пусто

Ошибка формата файла обмена
   ИмяУзла                =  Свойство

Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML(6895)}: Тип не определен

Окончание загрузки: 12.03.2010 15:28:09

Загружено объектов: 13
24 Naumov
 
12.03.10
16:32
(22) Кхм, а нафига ты так свойство пренеосишь?
не могу я разбираться с тем, что ты не так в обработчике пишешь.
25 mpbakunov
 
12.03.10
16:36
(24) а как? :)
26 Naumov
 
12.03.10
21:00
Свойство объекта добавляешь в списке. источник не указываешь.
в обрабочике события перед выгрузкой свойства пишешь
если "такое-то условие" тогда
   Значение = "Совместительство";
иначе    
   Значение = "ОсновноеМестоРаботы";
КонецЕсли    
и оно само родит.