Имя: Пароль:
1C
1С v8
Сохранение mxl файла в текст.
0 Lama12
 
21.02.23
15:54
Имеется mxl файл с плоской таблицей. Размер файла 85 Гб. Как его сохранить в текстовый файл с разделителями, если при открытии файла в платформе (не важно какой режим), или в программе "1С:Работа с файлами" потребляется более 128 Гб оперативки?
1 mistеr
 
21.02.23
16:01
(0) Yoksel попробуй
2 lodger
 
21.02.23
16:09
(0) попробуй сделать то же самое в 1с, но открывать файл через прослойку в виде:
табдок.прочитать(
Новый ФайловыйПоток(<ИмяФайла>, <РежимОткрытия>, <РазмерБуфера>)
);
3 mistеr
 
21.02.23
16:18
(0) А сколько памяти есть в наличии?
4 Lama12
 
21.02.23
16:24
(3) Сейчас 32 Гб. Файл делался на машине с 128 Гб.
5 mistеr
 
21.02.23
16:27
(4) Значит на той машине и конвертируй.
6 Lama12
 
21.02.23
16:33
(1) Помер Yoksel.
(5) Рад бы, но при конвертации платформе требуется еще столько же памяти. Поэтому и сохранялось в xml.
7 mistеr
 
21.02.23
16:57
(6) Позовите программиста, который умеет пользоваться ЗаписьТекста.
8 Мультук
 
гуру
21.02.23
17:04
(6)

XML <> MXL

Определитесь плиз
9 Lama12
 
21.02.23
17:09
(8) Да, MXL. В (6) описка.
10 Мультук
 
гуру
21.02.23
17:22
(9)

1) Купить 128 Гб ОЗУ быстро/"дешево"/сразу заработает (наверное)
2) Ковырять формат MXL и написать свою компоненту для нативного чтения.
Самому или нанять кого.
Но тут смотри п1. -- стоимость 128 Гб ОЗУ

P.S.
Если не секрет, какой-такой чудодейственный метод может собрать целый mxl
Но не состоянии плюнуть текстовой строкой в плоский файл.
11 Lama12
 
21.02.23
17:29
(10) Это выгрузка журнала регистрации за пол года. Анализировать его в платформе - то еще мучение. Выгружать в XML нужно больше ресурсов. Поэтому хотелось выгрузить в большой текстовый файл и анализировать его в Excel (благо он умеет работать с неограниченным текстовым файлом). Просто выгрузить в Excel не получается, т.к. ограничение количества строк.
12 Мультук
 
гуру
21.02.23
17:37
(11)

Сейчас (наверное) придут "опытные собаководы" и расскажут про стек ELK и поделятся опытом

P.S.
Я бы начал с чтения
https://infostart.ru/1c/articles/1257666/

или чего-то подобного

P.P.S.
Увы, у самого так руки и не дошли.
13 PLUT
 
21.02.23
17:38
14 vladmenleo
 
21.02.23
17:42
(10) Восьмерка еще сырая. В 7.7 стандартно можно сохранить журнал регистрации как текстовый файл
15 Lama12
 
21.02.23
17:44
(14) :-) В 8 тоже, но ресурсов на это нужно дополнительно.
16 vladmenleo
 
21.02.23
17:47
(15) Через Еще - вывести в список тоже памяти не хватает?
17 Lama12
 
21.02.23
17:48
(16) Да.
18 Lama12
 
21.02.23
17:50
(16) Точнее не так. Журнал был выведен в список. Его удалось сохранить в mxl. Сохранить в txt нужно больше памяти. Сохранить журнал в XML, так вообще сразу всю оперативку сжирает не успев ничего записать на диск.
19 vladmenleo
 
21.02.23
17:51
(17) тогда частями за период. Фары тер, по колесу стучал, почему не едет не знаю. (Из какого-то анекдота)
20 Кирпич
 
21.02.23
17:55
(0) только самому парсить mxl. у меня где то валяется mxl2csv.exe
писал пару лет назад. выложи примерчик. попробую, распарсит или нет.
21 Кирпич
 
21.02.23
18:00
о. даже mxl2xlsx.exe
и памяти ваще не потребляет. только таких больших не пробовал. 100-150 мгб были файлы
22 Lexandr
 
21.02.23
19:17
(18) Лет 10 назад выгружал достаточно большой журнал в xml без проблем. Только делал это периодами в квартал, потом склеил в отдельной базе, чтобы отчетики красивые рисовать
23 Lexandr
 
21.02.23
19:22
(22) Ну не в сам журнал, а справочник с нужными полями создал, в который этот журнал запихал.
24 Злопчинский
 
21.02.23
19:27
(21) mxl2xlsx.exe - если есть скинь на [email protected]
25 magicSan
 
22.02.23
05:06
ексель тоже помрет чем лдг не устроил?
26 rphosts
 
22.02.23
05:55
(0) Эээээ, читать не весь файл одним куском а порционно?
27 Мультук
 
гуру
22.02.23
07:26
(26)

А можно простой пример (код или псевдокод), как прочитать из моксель файла порцию строк откуда-нибудь с середины файла?

P.S.
Как прочитать что-то из плоского файла объяснять не нужно, fileseek и т.п. и т.д
28 АгентБезопасной Нацио
 
22.02.23
08:50
(27) Структура известна - http://yoksel.net.ru/FormatMOXCEL/StrukturaFajjla#formatmoxcel/sekcii
читать последовательно, писать кусками. не?
29 ДедМорроз
 
22.02.23
21:38
А что windows уже отучилась виртуальную память использовать ?
Ну или Linux взять и swap-ов насоздавать хоть на терабайт.
Да,будет медленно,но что вы хотели.

На той машине,где сохраняли,почему именно mxl выбрали ?
ЗаписьXml умеет писать очень и очень большие файлы.
30 DES
 
23.02.23
00:22
(29) + руками отключили виртуальную память?
31 VladZ
 
23.02.23
01:04
32 ДедМорроз
 
23.02.23
12:21
MXL - это табличный документ 1с.
Интересно,если такое же в Excel запихать в родном Microsoft-формате,какой размер файла будет ?
(Понятно,что новый формат xml в zip будет существенно меньше).
33 Ник второй
 
23.02.23
12:23
В 1С на уровне платформы есть методы по чтению информации из журнала регистрации. Пишешь простую обработку которая построчно читает журнал и пишешься его куда хочешь.
34 timurhv
 
23.02.23
13:49
(11) >Выгружать в XML нужно больше ресурсов.
Как при помощи КД2 выгружают данные? Там же порциями пишется в файл, зачем пытаться всю таблицу сразу записать?
35 ДедМорроз
 
23.02.23
15:51
Xml - это файл последовательного доступа (если DOM не использовать)
Поэтому,очень удобно писать файлы любого размера.
36 DES
 
23.02.23
20:42
(33) какие?
37 goodzone
 
24.02.23
01:41
(0) Зачем в текст!? Засунуть все в БД, в постгрес, мускул, мелкОсофт или еще куда, настроить индексы и радоваться. При условии что все быстро [приемлемо] считывается.
38 goodzone
 
24.02.23
02:15
(27), поддерживаю, поток => в => поток, главное инструментарий правильно выбрать