|
Как выгрузить реквизит документа в XML файл | ☑ | ||
---|---|---|---|---|
0
EvgenyRus31
12.07.18
✎
15:35
|
Добрый день! Подскажите, как выгрузить реквизит документа в XML файл? Создаю новую команду в документе "Взвешивание". Там добавляю процедуру, но не хватает ума написать правильно код. Нужно, чтоб при нажатии кнопки с этого документа создавался файл XML и туда записан был реквизит документа "НомерТТН".
Дошел до такого кода: &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Запись=Новый ЗаписьXML; Запись.ОткрытьФайл("D:\document.xml"); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("Корневой"); Запись.ЗаписатьАтрибут("Доумент", "Взвешивание"); Выборка = ЭтотОбъект.Ссылка; Запись.ЗаписатьНачалоЭлемента("Элемент"); Запись.ЗаписатьАтрибут("Номер", Строка(Выборка.НомерТТН)); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); КонецПроцедуры Однако 1с ругается на эту строку: Выборка = ЭтотОбъект.Ссылка; подскажите как правильно сослаться на форму открытого документа и оттуда взять реквизит НомерТТН? |
|||
1
LeoKeyn
12.07.18
✎
15:37
|
(0) А код ты пишешь в форме документа?
|
|||
2
LeoKeyn
12.07.18
✎
15:39
|
(0) Скорее всего ты имеешь дело с УФ, следовательно тебе нужно поменять "ЭтотОбъект" на "Объект".
Объект.НомерТТН(если это реквизит документа) |
|||
3
LeoKeyn
12.07.18
✎
15:40
|
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Запись=Новый ЗаписьXML; Запись.ОткрытьФайл("D:\document.xml"); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("Корневой"); Запись.ЗаписатьАтрибут("Доумент", "Взвешивание"); Выборка = Объект.НомерТТН; Запись.ЗаписатьНачалоЭлемента("Элемент"); Запись.ЗаписатьАтрибут("Номер", Строка(Выборка)); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); КонецПроцедуры |
|||
4
EvgenyRus31
12.07.18
✎
15:57
|
Код пишу в самом документе, добавлением новой "команды", она же выводит кнопку на форму.
|
|||
5
EvgenyRus31
12.07.18
✎
15:59
|
Не выходит так. Пишет: Переменная не определена (Объект)
|
|||
6
dezss
12.07.18
✎
15:59
|
(4) еще раз...
это в форме документа? если да, то тебе в (3) дали правильный код |
|||
7
dezss
12.07.18
✎
16:00
|
(4) кароч, добавь команду в форму документа и сделай как в (3) и будет тебе щастье
|
|||
8
EvgenyRus31
12.07.18
✎
16:03
|
Нет это не в форме документа, это в разделе "Команды".
Документ взвешивание -> формы -> Команды -> Макеты Так вот я добавил Команду и в ней пишу данную процедуру |
|||
9
Timon1405
12.07.18
✎
16:06
|
в (3) нужно поменять Объект на "ПараметрКоманды"
|
|||
10
EvgenyRus31
12.07.18
✎
16:13
|
Спасибо, все отлично рассказали и получилось, теперь я знаю даже 2 способа, как делать из формы документа и из параметра Команд. Супер БЛАГОДАРЮ.
|
|||
11
EvgenyRus31
12.07.18
✎
16:50
|
Помогите продолжить заполнение, может нужно типы данных еще дописывать?
Дополнил код: Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Запись=Новый ЗаписьXML; Запись.ОткрытьФайл("D:\document.xml"); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("Корневой"); Запись.ЗаписатьАтрибут("Доумент", "Взвешивание"); Запись.ЗаписатьНачалоЭлемента("Номер"); Запись.ЗаписатьТекст(ПараметрКоманды.Номер); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("Нетто"); Запись.ЗаписатьТекст(ПараметрКоманды.Дата); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); КонецПроцедуры Номер выводит отлично, так как надо, но вот Дату выдает ошибку: {Документ.Взвешивание.Команда.Меркурий.МодульКоманды(16)}: Ошибка при вызове метода контекста (ЗаписатьТекст) Запись.ЗаписатьТекст(ПараметрКоманды.Дата); по причине: Несоответствие типов (параметр номер '1') Помогите решить проблему. Может лучше было бы делать с формы документа, тогда бы не было данных ошибок |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |