Имя: Пароль:
1C
1C 7.7
v7: Недостаточно памяти при сохранении в xls
,
0 zenon46
 
02.05.24
13:12
Доброго дня!
Падает платформа при сохранении в xls, вот в этом месте.

mxl_doctor.ВылечитьMXL();        
Таб.Записать(СокрЛП(глПолучитьПутьРабочегоСтола())+"\Выгрузка_"+ТекущаяДата()+".xls", 1);

Посмотрел в отладчике перед выполнением кода, ТЗ - 116800 строк на 38 полях, по полям тоже не особо много инфо.
Можно как-то блоками сохранить в один файл ?
1 Волшебник
 
02.05.24
13:15
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS);
но лучше XLSX
2 Builder
 
02.05.24
13:16
(1) Не завезли в клюшки такое....
(0) Можно попробовать напрямую писать в excel по OLE.
3 SleepyHead
 
гуру
02.05.24
13:36
(0) сохраняйте в mxl, потом конвертируйте в ексел йокселем.

официальный сайт йокселя легко ищется.
4 asady
 
02.05.24
13:39
(0) давным давно делали это через промежуточное сохранение в файл типа html и последующий импорт его в эксель
5 SleepyHead
 
гуру
02.05.24
13:40
(0) А может, платформе просто не нравятся двоеточия в имени файла, которые дает ТекущаяДата()? Да не, бред какой-то..
6 trad
 
02.05.24
13:48
(5) бред конечно. В дате нет двоеточий
7 SleepyHead
 
гуру
02.05.24
13:53
(6) да что ты такое говоришь..
8 SleepyHead
 
гуру
02.05.24
13:57
Забыл, что в 77 нет времени, точно бред.
9 Кондер
 
02.05.24
14:09
64000 строк ограничение эксель 98
10 АгентБезопасной Нацио
 
02.05.24
15:28
(9) если быть точным - 64К, или 65535 (или 65636, непринципиально) на лист.
(0)Йоксель вроде может выгружать "полистно"
Ну или выгружай в xlsx вручную (через xml и архивацию..)
11 Ёпрст
 
02.05.24
17:19
И никто не спросил, нахрена вообще ЭТО нужно в экселе?
Видать, перенос чего-либо лепит
12 Aleksey
 
02.05.24
17:34
(10) 65 536
13 zenon46
 
03.05.24
08:56
(11) не, не перенос. нужна большая выборка данных для анализа - для обработки ИИ, товарищи кто будет делать запросили в Excel.
14 Смотрящий
 
03.05.24
08:57
(13) В csv им отдайся
15 DrZombi
 
гуру
03.05.24
09:04
(13) Выгрузи в DBF :)
16 uno-group
 
03.05.24
09:11
йоксел решает проблему и быстродействие поднимает + кодить 10 минут.
А в целом ИИ сейчас с более подходящими файлами может работать.
Выгрузи в таблицу sql и скорми ее быстрее будет на всех этапах.
17 Djelf
 
03.05.24
09:22
Йоксель не решит проблему, слишком много строк.
А вот эта ВК должна помочь https://github.com/DmitryDreytser/v7Moxel
18 d4rkmesa
 
03.05.24
10:04
(0) В родной mxl сохраняется? Откройте в 8-ке его и сохраните вручную, если разово.
19 arsik
 
гуру
03.05.24
10:04
(13) Уверен, те товарищи, что запросили эксель будут не против если ты 1 файл разобьешь на 10.
20 MWWRuza
 
гуру
03.05.24
10:21
+(17) Классная штука! Я такой пользуюсь.
Незнаю, как она решит задачу ТС, у меня таких объемов никогда не было, но то, как она встраивается в меню "сохранить как", мне, как лентяю, ну, очень нравится.
Одна строчка кода при старте системы, и в "Сохранить как" появляется и xlsx, и pdf.
Это конечно ОФФ для этой темы, просто нравится эта ВК.
21 zenon46
 
03.05.24
15:09
(20) насколько я понял к ней NetFramework нужен ?
22 Djelf
 
03.05.24
16:20
(21) Да, но он минимальный по требованиям, и почти везде есть, если у тебя не Wine или Win98.
23 Злопчинский
 
07.05.24
01:28
(20) а еще с перехватом сохранения в Formex - можно в перехвате йокселем сохранять, на дорексе рассматривали
24 Злопчинский
 
07.05.24
01:32
я вот, например, делал автоопределение со строками переменной высоты чтобы не было висящих подвалов или висящих итогов по странице, при сохранении йокселем в пдф это не работает ... хм.. или это не работало при сохранении в ПД через пдфпринтер..? не помню точно.. вроде через пдфпринтер не работало...
25 Kigo_Kigo
 
07.05.24
10:37
(18) +100500 если надо разово, то вариант 100%, вариант с csv(по сути текст) тоже рабочий, открываешь екселем сохраняешь как полноценный ексель
26 MWWRuza
 
гуру
07.05.24
12:33
(24) А, если не "влом" :-)  пришли такой файлик в mxl, попробую, как его компонента из (17)(20) преобразует в Ексель-2007 или ПДФ...
27 Злопчинский
 
08.05.24
00:26
(26) это ж к текущему принтеру привязано, посредством КоличествоСтраниц()... Просто сформированный моксель тут не получится.