Имя: Пароль:
1C
 
Сохранить ссылку в XML
0 Dimarik_1
 
24.06.15
12:28
Можно ли сохранить ссылку на какой-то документ в XMl и потом прочитать?
Я сохраняю, у меня записыватся в файл, а затем пытаюсь прочитать и у меня какая-то ерунда вместо ссылки на документ
1 mehfk
 
24.06.15
12:29
Показывай код.
2 Dimarik_1
 
24.06.15
12:29
&НаКлиенте
Процедура СохранитьРеквизитыИТабличныеЧасти(ИмяФайла)
    
    Структура = Новый Структура;
    Структура.Вставить("Таблица_1",Новый Массив);
    Структура.Вставить("Таблица_2", Новый Массив);
    
    Структура_Таблица1 = Новый Структура("Документ,КлючСвязи,СуммаДокумента");    
    Структура_Таблица2 = Новый Структура("Проект,СтатьяБюджета,Сумма,КлючСвязи");
    
    
    
    Для Каждого Строка Из ДокументыТЧ Цикл
        Структура.Таблица_1.Добавить(Новый Структура("Документ,КлючСвязи,СуммаДокумента"));
        НоваяСтрока = Структура.Таблица_1[Структура.Таблица_1.Количество()-1];
        ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
    КонецЦикла;
    
    Для Каждого Строка Из РаспределениеПоПроектам Цикл
        Структура.Таблица_2.Добавить(Новый Структура("Проект,СтатьяБюджета,Сумма,КлючСвязи"));
        НоваяСтрока = Структура.Таблица_2[Структура.Таблица_2.Количество()-1];

        ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
    КонецЦикла;
    
    
    ЗаписьВXML = Новый ЗаписьXML;
    ЗаписьВXML.ОткрытьФайл(ИмяФайла);
    СериализаторXDTO.ЗаписатьXML(ЗаписьВXML,Структура);
КонецПроцедуры


&НаКлиенте
Процедура ЗагрузитьРеквизитыИТабличныеЧасти(ИмяФайла)
    
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ИмяФайла);
    Структура = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
    
    Для Каждого Строка Из Структура.Таблица_1 Цикл
            НоваяСтрока = ДокументыТЧ.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
            НоваяСтрока.СуммаДокумента = ПолучитьСуммуДокумента(НоваяСтрока.Документ);
        КонецЦикла;
    
    
        
        Для Каждого Строка Из Структура.Таблица_2 Цикл
            НоваяСтрока = РаспределениеПоПроектам.Добавить();                
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
            НоваяСтрока.СуммаДокумента = ПолучитьСуммуДокумента(НоваяСтрока.Документ);
        КонецЦикла;

        
КонецПроцедуры
3 ИС-2
 
naïve
24.06.15
12:32
не мое

Выгрузка объекта в XML строку:

Функция ВXML(ДокументСсылка) Экспорт
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    ЗаписатьXML(ЗаписьXML, ДокументСсылка.ПолучитьОбъект());
    Возврат ЗаписьXML.Закрыть();
КонецФункции


Загрузка объекта из XML строки:
Функция ИзXML(Стр) Экспорт
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(Стр);
    
    Возврат ПрочитатьXML(ЧтениеXML);
КонецФункции
4 Dimarik_1
 
24.06.15
12:37
Я не могу так сделать, потому что процедура должна выполняться на клиенте. А ДокументОбъект недоступен на клиенте
5 Dimarik_1
 
24.06.15
12:39
При работе с SQL возникала такая проблема: я пытаюсь сохранить на клиентской машине файл. И если написать &НаСервере Тогда не сохранится файл на клиентской машине. Была ошибка что-то типа Путь не найден или как-то так.
6 ИС-2
 
naïve
24.06.15
12:39
Функция ВXML(ДокументСсылка) Экспорт
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    ЗаписатьXML(ЗаписьXML, ДокументСсылка;
    Возврат ЗаписьXML.Закрыть();
КонецФункции
7 Dimarik_1
 
24.06.15
12:45
зачем необходимо устанавливать строку? Можете пояснить?