|
Не установлен приемник XML. | ☑ | ||
---|---|---|---|---|
0
batmansoft
15.07.14
✎
20:54
|
Добрый день. При попытке выполнить код:
Пока Выборка.Следующий() Цикл XML.ЗаписатьНачалоЭлемента("data"); сообщить(строка(Выборка.Номенклатура)+" "+строка(Выборка.ЭтоГруппа)); Если НЕ Выборка.ЭтоГруппа Тогда XML.ЗаписатьНачалоЭлемента("goods"); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНиже.Следующий() Цикл сообщить("Характеристика "+строка(ВыборкаНиже.Характеристика)); НаименованиеЭлемента=ВыборкаНиже.ХарактеристикаНаименование; XML.ЗаписатьАтрибут("name",НаименованиеЭлемента); КонецЦикла; XML.ЗаписатьКонецЭлемента(); иначе XML.ЗаписатьНачалоЭлемента("part"); XML.ЗаписатьАтрибут("name",Выборка.Наименование); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //ОбходРезультатаЗапроса.ПоГруппировкамСИерархией XML.ЗаписатьКонецЭлемента(); ОбходЗапроса(ВыборкаНиже); КонецЕсли; XML.ЗаписатьКонецЭлемента(); КонецЦикла; XML.Закрыть(); Пишет:" {Форма.Форма.Форма(80)}: Ошибка при вызове метода контекста (ЗаписатьКонецЭлемента) XML.ЗаписатьКонецЭлемента(); по причине: Не установлен приемник XML" Подскажите пожалуйста, как это лечиться? |
|||
1
MiniMuk
15.07.14
✎
20:57
|
а че СП говорить про ЗаписатьНачалоЭлемента?
|
|||
2
batmansoft
15.07.14
✎
21:47
|
(1) Да ничего особенного не говорит. ЗаписатьНачалоЭлемента может быть как с одним аргументом, так и с двумя
|
|||
3
m-serg74
15.07.14
✎
22:04
|
(2) ЗаписатьОбъявлениеXML() не пробовал?
|
|||
4
m-serg74
15.07.14
✎
22:05
|
да и ОткрытьФайл(<ИмяФайлаXML>, <ТипКодировки>)
имеется? |
|||
5
Zypse
15.07.14
✎
22:42
|
XML.ЗаписатьКонецЭлемента() используется 2 раза. Один раз внутри конструкции Если-КонецЕсли, Другой раз снаружи
|
|||
6
m-serg74
15.07.14
✎
22:53
|
(5) садись - два
|
|||
7
m-serg74
15.07.14
✎
22:54
|
+(5) но вот корневвой должен быть один походу ТС перед циклом не создает его
так что за наводку тебе + 100 к умениям |
|||
8
m-serg74
15.07.14
✎
22:55
|
*один походу
один, походу зпт пропустил |
|||
9
alle68
16.07.14
✎
02:20
|
Кусок кода не тот: всё интересное - инициализация источника - написано ранее.
Вот это и надо представить на суд сообществу. |
|||
10
batmansoft
16.07.14
✎
10:28
|
(9) Вот полный код:
Процедура ВыгрузитьНаСервере() Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Наименование, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстатки.Характеристика, | ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток, | ТоварыНаСкладахОстатки.Характеристика.ДополнительныеРеквизиты.( | Ссылка КАК Ссылка, | Свойство КАК Свойство, | Значение КАК Значение | ) КАК Реквизиты, | ТоварыНаСкладахОстатки.Номенклатура.ЭтоГруппа КАК ЭтоГруппа, | ТоварыНаСкладахОстатки.Характеристика.Наименование КАК ХарактеристикаНаименование |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &Дата, | &ПоВсей | ИЛИ Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ТоварыНаСкладахОстатки |ИТОГИ ПО | Номенклатура ИЕРАРХИЯ" ; Запрос.УстановитьПараметр("Дата",Объект.ДатаВыгрузки); Запрос.УстановитьПараметр("Номенклатура",Объект.ФильтрПоНоменклатуре); Запрос.УстановитьПараметр("ПоВсей",Не ЗначениеЗаполнено(Объект.ФильтрПоНоменклатуре)); //Объект.ТЗ=Запрос.Выполнить().Выгрузить(); Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //ОбходРезультатаЗапроса.ПоГруппировкамСИерархией XML=Новый ЗаписьXML(); XML.ОткрытьФайл(Объект.ИмяФайла); XML.ЗаписатьОбъявлениеXML(); ОбходЗапроса(Выборка); КонецПроцедуры Процедура ОбходЗапроса(Выборка) Пока Выборка.Следующий() Цикл XML.ЗаписатьНачалоЭлемента("data"); сообщить(строка(Выборка.Номенклатура)+" "+строка(Выборка.ЭтоГруппа)); Если НЕ Выборка.ЭтоГруппа Тогда XML.ЗаписатьНачалоЭлемента("goods"); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНиже.Следующий() Цикл сообщить("Характеристика "+строка(ВыборкаНиже.Характеристика)); НаименованиеЭлемента=ВыборкаНиже.ХарактеристикаНаименование; XML.ЗаписатьНачалоЭлемента("item"); XML.ЗаписатьАтрибут("name",НаименованиеЭлемента); XML.ЗаписатьКонецЭлемента(); КонецЦикла; XML.ЗаписатьКонецЭлемента(); иначе XML.ЗаписатьНачалоЭлемента("part"); XML.ЗаписатьАтрибут("name",Выборка.Наименование); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //ОбходРезультатаЗапроса.ПоГруппировкамСИерархией ОбходЗапроса(ВыборкаНиже); XML.ЗаписатьКонецЭлемента(); КонецЕсли; XML.ЗаписатьКонецЭлемента(); КонецЦикла; XML.Закрыть(); КонецПроцедуры |
|||
11
m-serg74
16.07.14
✎
12:46
|
(10) тогда читай (7)
|
|||
12
batmansoft
16.07.14
✎
15:28
|
(11)
Сделал вот так: Процедура ВыгрузитьНаСервере() Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК Наименование, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстатки.Характеристика, | ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток, | ТоварыНаСкладахОстатки.Характеристика.ДополнительныеРеквизиты.( | Ссылка КАК Ссылка, | Свойство КАК Свойство, | Значение КАК Значение | ) КАК Реквизиты, | ТоварыНаСкладахОстатки.Номенклатура.ЭтоГруппа КАК ЭтоГруппа, | ТоварыНаСкладахОстатки.Характеристика.Наименование КАК ХарактеристикаНаименование |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &Дата, | &ПоВсей | ИЛИ Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ТоварыНаСкладахОстатки |ИТОГИ ПО | Номенклатура ИЕРАРХИЯ" ; Запрос.УстановитьПараметр("Дата",Объект.ДатаВыгрузки); Запрос.УстановитьПараметр("Номенклатура",Объект.ФильтрПоНоменклатуре); Запрос.УстановитьПараметр("ПоВсей",Не ЗначениеЗаполнено(Объект.ФильтрПоНоменклатуре)); //Объект.ТЗ=Запрос.Выполнить().Выгрузить(); Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //ОбходРезультатаЗапроса.ПоГруппировкамСИерархией XML=Новый ЗаписьXML(); XML.ОткрытьФайл(Объект.ИмяФайла); XML.ЗаписатьОбъявлениеXML(); XML.ЗаписатьНачалоЭлемента("data"); ОбходЗапроса(Выборка); XML.ЗаписатьКонецЭлемента(); КонецПроцедуры Процедура ОбходЗапроса(Выборка) Пока Выборка.Следующий() Цикл сообщить(строка(Выборка.Номенклатура)+" "+строка(Выборка.ЭтоГруппа)); Если НЕ Выборка.ЭтоГруппа Тогда XML.ЗаписатьНачалоЭлемента("goods"); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНиже.Следующий() Цикл сообщить("Характеристика "+строка(ВыборкаНиже.Характеристика)); НаименованиеЭлемента=ВыборкаНиже.ХарактеристикаНаименование; XML.ЗаписатьНачалоЭлемента("item"); XML.ЗаписатьАтрибут("name",НаименованиеЭлемента); XML.ЗаписатьКонецЭлемента(); КонецЦикла; XML.ЗаписатьКонецЭлемента(); иначе XML.ЗаписатьНачалоЭлемента("part"); XML.ЗаписатьАтрибут("name",Выборка.Наименование); ВыборкаНиже=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); //ОбходРезультатаЗапроса.ПоГруппировкамСИерархией ОбходЗапроса(ВыборкаНиже); XML.ЗаписатьКонецЭлемента(); КонецЕсли; КонецЦикла; XML.Закрыть(); КонецПроцедуры такая же фигня |
|||
13
batmansoft
16.07.14
✎
15:32
|
А не все, спасибо, уже разобрался, вот так надо:
XML.ОткрытьФайл(Объект.ИмяФайла); XML.ЗаписатьОбъявлениеXML(); XML.ЗаписатьНачалоЭлемента("data"); ОбходЗапроса(Выборка); XML.ЗаписатьКонецЭлемента(); XML.Закрыть(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |