Имя: Пароль:
1C
1С v8
КД: создать свой узел
0 vyaz
 
03.11.11
16:34
Хочу создать свой узел, сразу после выгруженных параметров, но не выходит каменный цветок:

Обработчик конвертации Перед выгрузкой данных, пытаюсь создать узел:

ИнформацияОПользователе = СоздатьУзел("ИнформацияОПользователе");
УстановитьАтрибут(ИнформацияОПользователе, "АутентификацияОС", Источник.АутентификацияОС);

ДобавитьПодчиненный( < что тут должно быть ???> , ИнформацияОПользователе);

Пробовал rootNode и Приемник, все не то. Можно ли вообще так?

На подкорке понимаю, что узел нужно закрыть, но вот как не пойму.
1 vyaz
 
03.11.11
17:22
все так печально иль полу-пятница?
2 Поручик
 
03.11.11
17:22
Продам встроенную справку по обработчикам событий. Если не поможет, за отдельный ценник вывалю готовый код.
3 vyaz
 
03.11.11
17:31
(2) самый умный? если да, то куплю у тебя встроенную справку.

Обработчики "Конвертация"
Перед выгрузкой данных
Условия возникновения события
Событие выполняется самым первым перед началом выгрузки данных и только один раз, после открытия файла для записи. Таким образом в файл могут быть записаны произвольные данные. Кроме того могут быть инициализинованы переменные, которые впоследствии предполагается использовать. Для работы с такими переменными имеется отдельная структура "Параметры".

Параметры:
Отказ - Булево. Если установить значение Истина, то выгрузка данных не производится

Параметры - Структура, в которой хранятся переменные доступные во всех обработчиках

Пример:
Если ЗначениеНеЗаполнено(Параметры.Организация) Тогда
Сообщить("Не указан параметр Организация. Выгрузка невозможна.");
Отказ = Истина;
КонецЕсли;

Параметры.Вставить("НомерВерсии", Константы.НомерВерсииКонфигурации.Получить());

Есть тут ответ на вотпрос???
4 Поручик
 
03.11.11
17:35
(3) Как хочешь, схожу за попкорном.
5 vyaz
 
03.11.11
17:39
(4) колу не забудь, вишь как живо в теме
6 vyaz
 
04.11.11
09:29
все еще актуально...
7 Рэйв
 
04.11.11
09:33
(0)Пример

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


УзелПараметра = DOMDocument.createNode(1, "ЗначениеПараметра", "");
УзелПараметра.setAttribute("ИмяПараметрПКО", "Курс");
УзелПараметра.setAttribute("ЗначениеПараметрПКО", Строка(Источник.Курс.Получить(ТекущаяДата())));
Приемник.appendChild(УзелПараметра);
8 Рэйв
 
04.11.11
09:34
+(7)Правда это для переноса 77-8.х
8->8 может быть и подругому
9 vyaz
 
04.11.11
09:53
(7) неа... не получичилось
Ошибка в обработчике события ПередВыгрузкойДанных (конвертация)
   Обработчик             =  ПередВыгрузкойДанных (конвертация)
   ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(3,17)}: Переменная не определена (DOMDocument)
   ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12762)
   КодСообщения           =  62

---
В ПКО при выгрузке у меня получается создать узел, но там четко известно что:
Приемник - инициализированный xml-узел объекта приемника

Не могу найти какой узел инициализирован в глобальном обработчике Перед выгрузкой данных
Узел должен быть самый корневой...
10 Рэйв
 
04.11.11
09:55
(9)Свой узел создашь только ПриВыгрузке в ПКО.  в глобальной Перед выгрузкой еще нет root ноды
11 Рэйв
 
04.11.11
09:59
+(9)Видимо у теб все таки перенос 8->8 , поэтому и DOMDocument неопределен
12 vyaz
 
04.11.11
10:02
(11) да 8-8
(10) т.е. в рутнод никак? меня смущает описание обработчика "Событие выполняется самым первым перед началом выгрузки данных и только один раз, после открытия файла для записи. Таким образом в файл могут быть записаны произвольные данные." вроде как можно, но вот как...
13 vyaz
 
04.11.11
10:41
вобщем доковырялся, если кому надо будет:

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

внути XML (узел находится сразу за узлом ПравилаОбмена, т.е. до выгруженных объектов) это будет выглядеть вот так:

-<НазваниеМоегоУзла Имя="ИмяУзла" Тип="СтроковыйТипУзла">
  <Значение>МоеЗаписываемоеЗначение</Значение>
</НазваниеМоегоУзла>
14 Рэйв
 
04.11.11
10:48
(13)В каком месте это  писать?
15 vyaz
 
04.11.11
10:54
(14) глобальный обработчик
Обработчики "Конвертация"
Перед выгрузкой данных
16 Рэйв
 
04.11.11
10:54
(15)Уху.Пригодится
17 vyaz
 
04.11.11
10:55
(16) и тебе спасибо :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн