|   |   | 
| 
 | Конвертация данных: как передать в приемник произвольную таблицу значений | ☑ | ||
|---|---|---|---|---|
| 0
    
        ботаникус 06.03.12✎ 12:58 | 
        Всем привет. Нужно передавать в приемник таблицу значений/дерево значений, с какими-то данными, которые не нужно никак конвертировать и т.д.... Нужно обрабатываать эту тз перед обменом и выполнять с базой кое-какие действия. Каким образом можно такого добиться ? подскажите     | |||
| 1
    
        Stim 06.03.12✎ 13:01 | 
        ПКО с пустыми приемниками и источниками. произвольная выгрузка для этого ПКО. В обработчик ПКО пишешь свой код     | |||
| 2
    
        ботаникус 06.03.12✎ 13:12 | 
        (1)хорошо, а как в этом случае добиться того, чтобы то, что я описал просходило до обмена, а не в процессе     | |||
| 3
    
        GenV 06.03.12✎ 13:20 | 
        (2) Выражайся яснее: до выгрузки объектов или после выгрузки и до загрузки объектов.     | |||
| 4
    
        СноваЗдорова 06.03.12✎ 13:21 | 
        может через параметры?     | |||
| 5
    
        zippygrill 06.03.12✎ 13:26 | 
        (4) кому как нравится.     | |||
| 6
    
        ботаникус 06.03.12✎ 13:38 | 
        (4) а как через параметры ? параметр может иметь тип деревозначений? или преобразовывать дерево в строку?     | |||
| 7
    
        ботаникус 06.03.12✎ 16:46 | 
        товарищи, а кто-нибудь пробовал дописывать файл обмена в событии "После выгрузки данных"? может есть примеры?     | |||
| 8
    
        ботаникус 06.03.12✎ 18:12 | 
        подниму, кто нибудь добавлял свои узлы в файл обмена?     | |||
| 9
    
        acsent 06.03.12✎ 18:16 | 
        передавать тз сереализованную в строку     | |||
| 10
    
        fisher 06.03.12✎ 18:24 | 
        (8) Сам не добавлял, но в справке по обработчикам встречал мини-примерчики     | |||
| 11
    
        ботаникус 06.03.12✎ 18:28 | 
        (10) ни могу найти никаких примеров, можешь подкинуть?     | |||
| 12
    
        fisher 06.03.12✎ 18:36 | 
        Ну, например в справке по "При выгрузке" ПКО вижу такое:
  Приемник - инициализированный xml-узел объекта приемника. Может быть дополнен призвольным xml-содержимым, например используемым при загрузке. В случае отключения СтандартнойОбработки, правила конвертации свойств (ПКС) не обрабатываются, т.е. необходимо реализовать алгоритм заполняющий узел приемника в соответствии с форматом файла обмена Пример: ИнформацияОПользователе = СоздатьУзел("ИнформацияОПользователе"); УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияОС", Источник.АутентификацияОС); УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияСтандартная", Источник.АутентификацияСтандартная); УстановитьАтрибут(ИнформацияОПользователе, "ПоказыватьВСпискеВыбора", Источник.ПоказыватьВСпискеВыбора); УстановитьАтрибут(ИнформацияОПользователе, "ПользовательОС", Источник.ПользовательОС); УстановитьАтрибут(ИнформацияОПользователе, "ПолноеИмя", Источник.ПолноеИмя); ЧислоРолей = 1; Для Каждого Роль Из Источник.Роли Цикл УстановитьАтрибут(ИнформацияОПользователе, "Роль"+ЧислоРолей, Роль.Имя); Сообщить(Роль.Имя); ЧислоРолей = ЧислоРолей + 1; КонецЦикла; ДобавитьПодчиненный(Приемник, ИнформацияОПользователе | |||
| 13
    
        fisher 06.03.12✎ 18:40 | 
        А в при загрузке вот такая хня:
  Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(Объект.Код)); Если Пользователь = Неопределено Тогда Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); Пользователь.Имя = СокрЛП(Объект.Код); Пользователь.ПолноеИмя = СокрЛП(Объект.Код); КонецЕсли; Пока ФайлОбмена.Прочитать() Цикл ИмяУзла = ФайлОбмена.ЛокальноеИмя; ТипУзла = ФайлОбмена.ТипУзла; Если ИмяУзла = "ИнформацияОПользователе" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда Пользователь.АутентификацияОС = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияОС"); Пользователь.АутентификацияСтандартная = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияСтандартная"); Пользователь.ПоказыватьВСпискеВыбора = одАтрибут(ФайлОбмена, одТипБулево, "ПоказыватьВСпискеВыбора"); Пользователь.ПользовательОС = одАтрибут(ФайлОбмена, одТипСтрока, "ПользовательОС"); Пользователь.ПолноеИмя = одАтрибут(ФайлОбмена, одТипСтрока, "ПолноеИмя"); СтрокаРоль1 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль1"); СтрокаРоль2 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль2"); СтрокаРоль3 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль3"); ИначеЕсли (ИмяУзла = "ИнформацияОПользователе") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда Прервать; КонецЕсли; КонецЦикла; Пользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Полный; Пользователь.Язык = Метаданные.Языки.Русский; Пользователь.Роли.Очистить(); Роль1 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1)); Роль2 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1)); Роль3 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1)); Если НЕ Роль1 = Неопределено Тогда Пользователь.Роли.Добавить(Роль1); КонецЕсли; Если НЕ Роль2 = Неопределено Тогда Пользователь.Роли.Добавить(Роль2); КонецЕсли; Если НЕ Роль3 = Неопределено Тогда Пользователь.Роли.Добавить(Роль3); КонецЕсли; Пользователь.Записать(); | |||
| 14
    
        ботаникус 06.03.12✎ 18:43 | 
        (13)спасибо друг     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |