Имя: Пароль:
1C
1С v8
Можно ли выгружая данные в xml, дописывать в файл раз за разом ?
0 Анастасия Изотова
 
10.08.16
04:22
Добрый день. Помогите советом)))  у меня 1С 8.1.
делаю выгрузку в xml из документа.
Есть файл на диске. и в него нужно писать (в зависимости от событий происходящих в документе).
Только нужно что бы файл был один, не удалялся и не пересоздавался, а дозаписывался. Такое возможно ?
при процедуре такой-то, в коде, в файл писалось несколько строк, потом еще, и еще ...

Делаю вот так:

Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл("C:\1\tel.xml", "UTF-8");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("Начало");

Действие();

Запись.ЗаписатьНачалоЭлемента("сработалЗапрос");
Запись.ЗаписатьТекст(Строка(Результат.ДействияВфайлЗаписываем));
Запись.ЗаписатьКонецЭлемента();

Запись.ЗаписатьКонецЭлемента();
1 Garykom
 
гуру
10.08.16
04:27
Как закрывающие теги удалите?

А без "Запись.ЗаписатьКонецЭлемента();" файл xml будет невалидный, т.е. нужно перед "дописыванием" открыть, удалить "последнюю строку", дописать своими телефонами и снова закрыть.
2 Garykom
 
гуру
10.08.16
04:29
Не то что то делаете, сделайте чтение файла, разбор и снова запись по кнопке записать.
3 Garykom
 
гуру
10.08.16
04:31
Лучше не xml, а обычный текст или dbf (XBase) пользуйте для своих "логов"
4 NorthWind
 
10.08.16
06:46
(0) наверно, только используя DOM возможно. Но если файлик большой - будет ужор памяти и небыстро.
5 Горогуля
 
10.08.16
06:48
а взять из ЖР предлагали?
6 NorthWind
 
10.08.16
06:50
Либо же - вариант второй - при старте зачитывать файл и переносить теги в новый до закрывающего, а потом дописывать новую инфу, ставить закрывающий и сохранять.
7 Garykom
 
гуру
10.08.16
07:07
(6) Есть всего 2 разных метода работы с XML, это DOM или https://ru.wikipedia.org/wiki/SAX
8 Garykom
 
гуру
10.08.16
07:08
(7)+ в смысле твоя обычный SAX описать простейший ))