Имя: Пароль:
1C
1С v8
Как получить размер еще не созданного XML, который будет создан из ОбъектаXDTO?
0 kugelfangg
 
25.09.18
11:07
Всем привет!

Господа, подскажите пожалуйста как можно получить размер в Мб или количество символов ОбъектаXDTO?

Суть задачи в следующем:
Сделать выгрузку данных в XML, при этом файл не должен быть больше 4 Мб.

Для того чтобы «вовремя остановиться» нужно каким то образом проверять размер ОбъектаXDTO. Делать это нужно до записи в файл XML.

К сожалению, вариант с записью ОбъектаXDTO в файл XML не подходит, так как данных выгружаться будет очень много и если постоянно мурыжить (перезаписывать, проверять размер файла) это сильно скажется на скорости выгрузки данных.
1 s03
 
25.09.18
11:12
Выгружай по одному объекту (одному комплекту объектов, которые нельзя разделить на разные выгрузки)
2 MaxS
 
25.09.18
11:15
Собирать статистику, чтобы повысить вероятность угадывания. В конце проверять размер если превысил, повторить с меньшим количеством объектов.
3 mTema32
 
25.09.18
11:17
(0)"Как получить размер еще не созданного XML"
Автор, перечитай еще раз свой вопрос.
Тут логическая ошибка.
4 kugelfangg
 
25.09.18
11:18
(1) Один комплект это строка срока товара, при каждой выгрузке будет выгружаться примерно 400 000 строк. SFTP помрет от такого обилия файлов=)
5 kugelfangg
 
25.09.18
11:26
(2) Этот вариант можно рассматривать как запасной, так как количество символов всегда будет разное, и рано или поздно можно будет влететь на перебор с размером, даже если собрать статистику. Конечно можно уменьшить лимит до 3.5 Мб, чтобы точно попадать в лимит 4 Мб. Но проблема в том что таких выгрузок около 12 и в каждой свой объем данных поэтому придется долго шаманить=) Я хотел найти более технологичный способ решения проблемы.

Но за идею все равно спасибо!=)
6 Serg_1960
 
25.09.18
11:31
На память приходит только ветка v8: Как хотя бы грубо определить размер будущего файла из ЗаписьXML? - но там я предлагал пообъектную запись во временный файл для получения размера перед добавлением в основной файл. Не оптимальный подход.
7 RomaH
 
naïve
25.09.18
11:35
"Сделать выгрузку данных в XML, при этом файл не должен быть больше 4 Мб. "
делай по 2 МБ
8 Serg_1960
 
25.09.18
11:41
Помню однажды было обсуждение "обратной" задачи - сформированный большой файл XML "разбить" на пачку файлов ограниченного размера. Сейчас, увы, не могу найти.
9 Вафель
 
25.09.18
12:13

ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXTDO);
СтрокаXML = ЗаписьXML.Закрыть();