Имя: Пароль:
1C
1С v8
Как выгрузить,загрузить документы за период (серилизация)?
0 budnik
 
22.06.17
10:40
Выгрузка-загрузка одноко документа получается , а если группу ошибка при загрузке.
Значения данного типа не могут быть представлены в XML
че не так делаю ?


Процедура Выгрузка()
    // Выгрузить в файл xml.
    ЗаписьXML=Новый ЗаписьXML();
    ЗаписьXML.ОткрытьФайл(Файл);
    ЗаписьXML.ЗаписатьНачалоЭлемента("Root");
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Производство.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.Производство КАК Производство
        |ГДЕ
        |    Производство.Дата МЕЖДУ &Дата1 И &Дата2";
    Запрос.УстановитьПараметр("Дата1", НачалоДня(НачПериода));
    Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода));
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        сс=ВыборкаДетальныеЗаписи.Ссылка;
        Сообщить(сс);
        ВыгружаемыйОбъект=сс.ПолучитьОбъект();
           ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента();
    
    ЗаписьXML.Закрыть();     
КонецПроцедуры

Процедура Загрузка()
    ЧтениеXML=Новый ЧтениеXML();
    ЧтениеXML.ОткрытьФайл(Файл);
    ЧтениеXML.Прочитать();
    
    //Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
        //Сообщить("Загрузка");
        Данные = ПрочитатьXML(ЧтениеXML);
        
        Данные.Записать();      
    //КонецЦикла;
    
    ЧтениеXML.Закрыть();     
    
КонецПроцедуры
1 Курцвейл
 
22.06.17
10:44
//читаем рут
    ЧтениеXML.Прочитать();
    //читаем записи
    ЧтениеXML.Прочитать();
2 Курцвейл
 
22.06.17
10:45
Вот дальше мой пример из моей КонсолиЗапросов

Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
        ОбъектРС = ПрочитатьXML(ЧтениеXML);
        //ОбъектРС.Родитель = Справочники.Номенклатура.НайтиПоКоду("00-00000005");
        //ОбъектРС.УстановитьНовыйКод();
        стрОшибки = "";
        Попытка
            //Если Объект.ОбходКонтроляЗаписи Тогда
                ОбъектРС.ОбменДанными.Загрузка = Истина;
            //КонецЕсли;
            ОбъектРС.Записать();
        Исключение
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
            стрОшибки = ОписаниеОшибки();
        КонецПопытки;
        //обход проблемы уникальности номера
        Если Найти(стрОшибки,"поля ""Номер"" не уникально") > 1 Тогда
            Попытка
                ОбъектРС.УстановитьНовыйНомер("Б");
                ОбъектРС.Записать();
            Исключение
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());
            КонецПопытки;
        КонецЕсли;
    КонецЦикла;
3 budnik
 
22.06.17
11:07
Все. Спасибо. Выручил.
Независимо от того, куда вы едете — это в гору и против ветра!