Имя: Пароль:
1C
1С v8
Ускоренное сохранение в xls|xlsx
, , ,
0 onetone
 
16.10.17
21:09
Товарищи, коллеги, Выручайте.

ERP 2.2. отчет прайс-лист с картинками(или без таковых) и в нем 29 000 строк.

Объединения все убрал, но есть собственный макет расцветки и структуры.
Выглядит так https://yadi.sk/i/2TmsO3UU3NoeJ4

В общем сохраняется он в xls за 75 сек, можно ли, как то, это дело ускорить?
1 Злопчинский
 
16.10.17
21:13
блин... сколько мегабайт итоговый файл получается?
2 onetone
 
16.10.17
21:19
(1) 7,4мб
3 Филиал-msk
 
16.10.17
21:22
А зачем тебе быстрее? У вас цены каждые 10 минут меняются что-ли и прайсы протухают? Если надо один раз много прайсов, так в базу можно дважды войти есличо.
4 onetone
 
16.10.17
21:24
(3) Все просто, прайс формируется для каждого клиента индивидуально со своими настройками и наценками. Клиентов естественно очень много, и менеджеры не хотят ждать, типа долго очень.
5 Злопчинский
 
16.10.17
21:32
(4) фигня.
формируй прайсы для групп клиентов с одинаковыми параметрами, потом "модифицируй" если надо под каждого клиента шапку.. или что там еще... или вообще не персонализировать прайс...
6 yzimin
 
16.10.17
21:32
(4) средствами 1C формируется или COM-объект?
7 onetone
 
16.10.17
21:34
(5) Эх... было бы так просто, я бы тут не писал.
8 Лефмихалыч
 
16.10.17
21:34
(4) сделай автоматическую отправку прайсов клиентам, чтобы от манагеров это ощпе не зависело.
9 onetone
 
16.10.17
21:35
(6) Не, ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS);
10 Лефмихалыч
 
16.10.17
21:35
чтобы оно каженное утро само рассылалось, пока все спят.
Так же добавь возможность для манагера инициировать эту же самую отправку руками.
11 onetone
 
16.10.17
21:36
(8) Я честно сам не понимаю, но ком.директор уперся что каждый менеджер должен сохранять прайсы по клиентам сам, и каждому отправлять и общаться с ним.
12 onetone
 
16.10.17
21:36
(10) Так было раньше, теперь решили они делать вручную.
13 Лефмихалыч
 
16.10.17
21:42
(12) глупые, плохие люди
14 yzimin
 
16.10.17
21:46
(9) ТипФайлаТабличногоДокумента.XLSX не быстрее?
15 onetone
 
16.10.17
22:11
(14) Спасибо.

Итог такой.
Сохрание ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS); - 70с
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX); - 20с

&НаСервере
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX); - 4 с

Благо, все клиенты сидят на хосте сервера 1с, поэтому возьму последний вариант в работу.
16 yzimin
 
16.10.17
22:13
(15) и сколько в xlsx стал весить файл?
17 onetone
 
16.10.17
22:15
(15) Для чистоты экспериментов.

&НаСервере
ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS); - 71 с
18 onetone
 
16.10.17
22:17
(16)  1,6 мб
19 Злопчинский
 
16.10.17
22:26
с картинками на 29000 строк - 2 Мб..? - не верю.. разве только картинки у вас по 1 пикселу...
20 onetone
 
16.10.17
22:32
(19) Речь идет о файле без картинок пока.

Картинки сейчас измерим тоже. Сначала нужно было разобраться без них.
21 onetone
 
16.10.17
22:44
(19) С картинками 15с, и 10мб.
Картинки пережаты 100х200 специально для прайса.
22 onetone
 
16.10.17
22:44
И да, не во всех строках есть.
23 cons74
 
17.10.17
08:53
"менеджеры не хотят ждать, типа долго очень." - сделайте формирование и сохранение фоновым заданием. Чтоб не сидели у монитора не ждали. И возмущение "че так долго" пройдет.
24 onetone
 
17.10.17
10:12
В общем, не получилось. Это тесты были при пустой нагрузке.
При 25 пользователях, все поменялось.

Сохранение в файл с картинками занимает 3-5мин.
При этом система не особо загружена, доходит макси 50% в пике.
25 onetone
 
17.10.17
10:13
(23) Да, такой вариант я вбиваю им в голову со вчерашнего дня.
26 v77
 
17.10.17
10:14
(24) точно дело в excel? может просто сам прайс долго формируется?
27 onetone
 
17.10.17
10:15
(26) Прайс формируется по разному, с картинками очень долго занимает вывод самой платформы картинок. Без картинок формируется за 10-15с
28 onetone
 
17.10.17
10:16
При этом размера файла 10,6 мб всего.
29 v77
 
17.10.17
10:17
(27) ну если дело не в Excel, то об чом разговаривать тогда
30 v77
 
17.10.17
10:17
тормоза 1с это другая, отдельная тема
31 onetone
 
17.10.17
10:18
(29) Я не заню в чем дело, но я данную тему завел именно для ускорения процесса сохранения табличного документа в эксель. На данный момент это занимает до 5 мин. Вроде бы очень долго...
32 Numerus Mikhail
 
17.10.17
10:19
(31) Ради тестов попробуй сам формировать эксель через ком
33 v77
 
17.10.17
10:20
(31) ну замерь сколько времени формируется прайс и сколько идет сохранение в excel
34 braslavets
 
17.10.17
10:21
(12) Так пусть манагер инициирует запуск рег.задания. А сколько оно там на сервере будет выполняться - уже не важно. Да и быстрее будет все одно.
35 v77
 
17.10.17
10:22
если уж совсем туго, то держи картинки во внешней базе и создавай файл excel внешней прогой по текстовому файлу из 1с
36 grigo
 
17.10.17
10:28
Формируй экселевский файл при изменении цен в прайсе (можно,например, фоновым заданием), сохраняй его в базе или на диске. При необходимости выгрузить прайс просто копируй уже сформированный эксель.
37 onetone
 
17.10.17
10:53
(33) Вот так получается.
https://yadi.sk/i/Gr4jJCAA3NpMoR
38 arsik
 
гуру
17.10.17
11:00
(37) Формируй файлы ночью и складируй. Потом отдавай как менеджеру нужно будет. Время до 1 сек сократится.
39 onetone
 
17.10.17
11:06
(38) Там для каждого клиента формировать + используются прайсы поставщиков, и там закупка рулит, когда можно прайсы формировать когда нет. Короче полуручной режим.
40 kiruha
 
17.10.17
11:10
(0)
Необходимо сделать все строки одинаковой высоты
Заголовки сделайте из 2 строк

Выделить строки - задать одинаковую высоту. авто отключить
41 onetone
 
17.10.17
11:16
(40)

Заголовки сделайте из 2 строк

Это не понял. Как это сделать?
42 kiruha
 
17.10.17
11:16
тем более структура простенькая у вас
43 onetone
 
17.10.17
11:17
Заголовок имеется введу "Прайс лист от дата"?
44 kiruha
 
17.10.17
11:17
(41)
Ну если хотите заголовки "побольше" но чтобы не менять высоту строки сделайте например через объединение
тогда это на выводе не сказывается
45 kiruha
 
17.10.17
11:18
4 и 5 строку объедините - там заголовок
46 asady
 
17.10.17
11:28
(0) как вариант
1. у менеджеров устанавливаете утилиту 1С работа с файлами
2. сохранять прайс на клиенте в mxl
3 .менеджер сам открывает файл в программе 1С работа с файлами и сохраняет в экселе - не нагружая сервак
47 v77
 
17.10.17
11:30
(46) Точно. Пускай сами сохраняют и все дела.
48 onetone
 
17.10.17
12:00
Эх...
Хороши идеи... да не про мою контору.

Они по сути с прайсом не работают. они указывают клиента, договор(оттуда берутся настройки для прайса), выбирают вариант и формируют, сохраняют в эксель и пуляют клиенту.