Имя: Пароль:
1C
1С v8
почему не выгружается в XML регистр сведений?
0 vasmedv
 
26.03.12
12:52
ЗаписьXML=Новый записьXML;
рег_имя="ДляОтчета_ОбщийПоСтроению";
ЗаписьXML.ОткрытьФайл("D:\home\РегистрСведений"+рег_имя+".xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("РегистрСведений"+рег_имя);
ВыгружаемыйОбъект = РегистрыСведений[рег_имя].СоздатьНаборЗаписей();
ВыгружаемыйОбъект.Прочитать();
ВыгружаемыйОбъект=выборка.Ссылка.ПолучитьОбъект();
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);    
ЗаписьXML.ЗаписатьКонецЭлемента();    
ЗаписьXML.Закрыть();


содержимое файла выгрузки:
<?xml version="1.0" encoding="UTF-8"?>
<РегистрСведенийПодрядчикиДляНЗ>
   <InformationRegisterRecordSet.ПодрядчикиДляНЗ>
       <Filter/>
       <Records/>
   </InformationRegisterRecordSet.ПодрядчикиДляНЗ>
</РегистрСведенийПодрядчикиДляНЗ>
1 Kashemir
 
26.03.12
12:54
(0)

ВыгружаемыйОбъект = РегистрыСведений[рег_имя].СоздатьНаборЗаписей();
ВыгружаемыйОбъект.Прочитать();
ВыгружаемыйОбъект=выборка.Ссылка.ПолучитьОбъект();

Спасибо посмеялся.
2 vasmedv
 
26.03.12
12:55
ой это закомментировано было
3 vasmedv
 
26.03.12
13:01
ЗаписьXML=Новый записьXML;
рег_имя="РегистрСведенийПодрядчикиДляНЗ";
ЗаписьXML.ОткрытьФайл("D:\home\РегистрСведений"+рег_имя+".xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("РегистрСведений"+рег_имя);
ВыгружаемыйОбъект = РегистрыСведений[рег_имя].СоздатьНаборЗаписей();
ВыгружаемыйОбъект.Прочитать();
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);    
ЗаписьXML.ЗаписатьКонецЭлемента();    
ЗаписьXML.Закрыть();

причем для других регистров сведений работает
4 ptiz
 
26.03.12
13:03
Возможно, не хочет работать без установки отборов, например, по регистратору.
5 Kashemir
 
26.03.12
13:03
А где отборы ?
6 vasmedv
 
26.03.12
13:04
так мне нужно все строки регистра сведений. Я не хочу ограничивать отбором. А как тогда сделать отбор по регистратору, чтобы все строки получить
7 vasmedv
 
26.03.12
13:13
списокзначений = новый списокзначений;
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ПодрядчикиДляНЗ.Регистратор.Ссылка как ссылка
   |ИЗ
   |    РегистрСведений.ПодрядчикиДляНЗ КАК ПодрядчикиДляНЗ";
   Запрос.УстановитьПараметр("", );
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       списокзначений.Добавить(Выборка.ссылка);
   КонецЦикла;
   ВыгружаемыйОбъект.отбор.регистратор.видсравнения=видсравнения.ВСписке;
   ВыгружаемыйОбъект.отбор.регистратор.значение=списокзначений;
   ВыгружаемыйОбъект.отбор.регистратор.использование=истина;

ошибка - Недопустимый тип сравнения
8 vasmedv
 
26.03.12
13:14
почему?
9 zladenuw
 
26.03.12
13:14
в списке нельзя. отбор только на равенство
10 vasmedv
 
27.03.12
06:04
Сделал так:
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ПодрядчикиДляНЗ.Регистратор.Ссылка как ссылка
   |ИЗ
   |    РегистрСведений.ПодрядчикиДляНЗ КАК ПодрядчикиДляНЗ";
   Запрос.УстановитьПараметр("", );
   Выборка = Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       ВыгружаемыйОбъект.отбор.регистратор.значение=Выборка.ссылка;
       ВыгружаемыйОбъект.отбор.регистратор.использование=истина;
       ВыгружаемыйОбъект.Прочитать();
       ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
   КонецЦикла;