Имя: Пароль:
1C
 
Помогите пожалуйста с XML-анализатором
0 Pazhar21
 
16.05.10
09:02
Мне необходимо из 1С создать XML-файл, содержащий .pdf документ в формате base-64. Для этого у меня есть таблица занчений ТЗТекст, которая содержит преобразованный документ и состоит из более чем 100000 строк. В коде прописываю:
Если ТзТекст.КоличествоСтрок()<>0 Тогда
    DocTransfer= Message00.СоздатьПодчиненныйЭлемент("DocTransfer");  
    нс=0;    
    Тзтекст.ВыбратьСтроки();
    Пока ТзТекст.ПолучитьСтроку()<>0 Цикл
   Нс=Нс+1;
       Если Нс=1 Тогда
      Doctransfer.Значение=СокрЛП(ТзТекст.Текст);  
   иначе
   Doctransfer.Значение=Doctransfer.Значение  + РазделительСтрок + СокрЛП(ТзТекст.Текст);  
   КонецЕсли;  
КонецЦикла;
КонецЕсли;  
При таком коде через определенной время 1с просто "вылетает".
Подскажите как можно в атрибут "Значение" передать многострочный документ?
1 mike
 
16.05.10
09:29
Надо последовательну запись в XML использовать
я примерно так делал :
/////////////////////////////////////////////
   Узел =УзелДок.СоздатьПодчиненныйЭлемент("ТаблицаСтрок");
   ТЗТекст.ВыбратьСтроки();
   нс = 0 ;
   Пока ТЗТекст.ПолучитьСтроку()=1  Цикл                
       нс = нс +1 ;
       Узел.УстановитьАтрибут("Значение"+ Строка(нс) ,ТЗ.Значение);
   КонецЦикла ;    
//////////////////////////////////////////////////////
2 Pazhar21
 
16.05.10
10:14
Но в таком случае занчение устанавливается как атрибут и также выскакивает ошибка:
{Обработка.АСДОУ.Форма.Модуль(1862)}: : Неопознанная ошибка
[<DocTransfer Значение1="JVBERi0xLjQKMiAwIG9iago8PCAKPj4KZW5kb2JqCjMgMCBvYmoKPDwgCi9UeXBlIC9QYWdl" Значение2="Ci9QYXJlbnQgMSAwIFIKL01lZGlhQm94IFs (error position = 2904616)]
3 Torquader
 
16.05.10
10:32
А не проще ли сделать это "сторонними методами" или "собрать" XML при помощи Scripting.FileSystemObject, чтобы весь документ не сидел в памяти до его записи.
4 Pazhar21
 
16.05.10
10:57
Само создание xml-файла уже прописано через XML-анализатор. Через  Scripting.FileSystemObject во внешний файл я могу прописать значение тэга Doctransfer. Но, подскажите, как его вставить в xml-файл с помощью
Doctranfer.Значение?
5 Pazhar21
 
16.05.10
11:00
Подскажите, Может быть можно испольсовать атрибут Doctransfer.Текст для вставки многострочного значения?
6 mike
 
16.05.10
18:33
может сделать многострочную строку а потом ее записать

стр = "";

Пока ТзТекст.ПолучитьСтроку()=1 Цикл
   стр = стр + ТзТекст.Текст + РазделительСтрок ;
КонецЦикла ;

Doctransfer.Значение=стр ;  

Еслм вырубится внутри цикла то вариант с XML анализатором не пойдет