Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует