Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как выгрузить реквизит документа в XML файл

Как выгрузить реквизит документа в XML файл
Я
   EvgenyRus31
 
12.07.18 - 15:35
Добрый день! Подскажите, как выгрузить реквизит документа в XML файл? Создаю новую команду в документе "Взвешивание". Там добавляю процедуру, но не хватает ума написать правильно код. Нужно, чтоб при нажатии кнопки с этого документа создавался файл XML и туда записан был реквизит документа "НомерТТН".
Дошел до такого кода:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   
Запись=Новый ЗаписьXML;
Запись.ОткрытьФайл("D:\document.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Доумент", "Взвешивание");

Выборка = ЭтотОбъект.Ссылка;       

 Запись.ЗаписатьНачалоЭлемента("Элемент");
 Запись.ЗаписатьАтрибут("Номер", Строка(Выборка.НомерТТН));
 Запись.ЗаписатьКонецЭлемента();

Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры

Однако 1с ругается на эту строку: Выборка = ЭтотОбъект.Ссылка;
подскажите как правильно сослаться на форму открытого документа и оттуда взять реквизит НомерТТН?
 
 
   LeoKeyn
 
1 - 12.07.18 - 15:37
(0) А код ты пишешь в форме документа?
   LeoKeyn
 
2 - 12.07.18 - 15:39
(0) Скорее всего ты имеешь дело с УФ, следовательно тебе нужно поменять "ЭтотОбъект" на "Объект".
Объект.НомерТТН(если это реквизит документа)
   LeoKeyn
 
3 - 12.07.18 - 15:40
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   
Запись=Новый ЗаписьXML;
Запись.ОткрытьФайл("D:\document.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Доумент", "Взвешивание");

Выборка = Объект.НомерТТН;       

 Запись.ЗаписатьНачалоЭлемента("Элемент");
 Запись.ЗаписатьАтрибут("Номер", Строка(Выборка));
 Запись.ЗаписатьКонецЭлемента();

Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
   EvgenyRus31
 
4 - 12.07.18 - 15:57
Код пишу в самом документе, добавлением новой "команды", она же выводит кнопку на форму.
   EvgenyRus31
 
5 - 12.07.18 - 15:59
Не выходит так. Пишет: Переменная не определена (Объект)
   dezss
 
6 - 12.07.18 - 15:59
(4) еще раз...
это в форме документа?
если да, то тебе в (3) дали правильный код
   dezss
 
7 - 12.07.18 - 16:00
(4) кароч, добавь команду в форму документа и сделай как в (3) и будет тебе щастье
   EvgenyRus31
 
8 - 12.07.18 - 16:03
Нет это не в форме документа, это в разделе "Команды".

Документ взвешивание -> формы
                     -> Команды
                     -> Макеты

Так вот я добавил Команду и в ней пишу данную процедуру
   Timon1405
 
9 - 12.07.18 - 16:06
в (3) нужно поменять Объект на "ПараметрКоманды"
   EvgenyRus31
 
10 - 12.07.18 - 16:13
Спасибо, все отлично рассказали и получилось, теперь я знаю даже 2 способа, как делать из формы документа и из параметра Команд. Супер БЛАГОДАРЮ.
 
 Рекламное место пустует
   EvgenyRus31
 
11 - 12.07.18 - 16:50
Помогите продолжить заполнение, может нужно типы данных еще дописывать?
Дополнил код:
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
Запись=Новый ЗаписьXML;
Запись.ОткрытьФайл("D:\document.xml");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Корневой");
Запись.ЗаписатьАтрибут("Доумент", "Взвешивание");

 Запись.ЗаписатьНачалоЭлемента("Номер");
 Запись.ЗаписатьТекст(ПараметрКоманды.Номер);
 Запись.ЗаписатьКонецЭлемента();
      
 Запись.ЗаписатьНачалоЭлемента("Нетто");
 Запись.ЗаписатьТекст(ПараметрКоманды.Дата);
 Запись.ЗаписатьКонецЭлемента();
 
 Запись.Закрыть();
КонецПроцедуры

Номер выводит отлично, так как надо, но вот Дату выдает ошибку:
{Документ.Взвешивание.Команда.Меркурий.МодульКоманды(16)}: Ошибка при вызове метода контекста (ЗаписатьТекст)
 Запись.ЗаписатьТекст(ПараметрКоманды.Дата);
по причине:
Несоответствие типов (параметр номер '1')

Помогите решить проблему. Может лучше было бы делать с формы документа, тогда бы не было данных ошибок

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует