Имя: Пароль:
1C
 
Чтение mxl в табличный документ на экране
0 PR третий
 
21.03.16
11:48
1. Неправильно ты бутерброд ешь, нужно по-другому... 40% (2)
2. Свое мнение 40% (2)
3. Ну вот так вот, ничего не попишешь 20% (1)
Всего мнений: 5

Предположим, есть mxl-файл довольно приличного размера, пусть 100 Mb.
И есть управляемая форма на 8.3, в которую нужно прочитать этот файл.
Получается, нужно сначала кинуть файлик на сервер, а потом уже его прочитать в табличный документ.
И вот вопрос, а что так медленно происходит этот процесс?
Вручную открыть файлик, скопипастить и вставить быстрее получается.
1 Живой Ископаемый
 
21.03.16
12:01
на сервере или на сервере без контекста?
2 PR третий
 
21.03.16
12:04
(1) Без контекста.
3 Живой Ископаемый
 
21.03.16
12:09
А какая из операций происходит медленно? Помещение файлика в хранилище. или уже передача с сервера?
Есть мнение что второе, и это происходит от того, что форма на сервере сериализуется в ХМЛ, и вместе с табличным документом этот хмл получается просто о.уеть каких размеров.
4 PR третий
 
21.03.16
12:16
(3) 1. Форма маленькая, нечего там сериализовать.
2. С хрена ли с сервера передается форма, если &НаСервереБезКонтекста?
3. А что, когда я самостоятельно копипащу содержимое на клиенте в табличный документ, то на сервере ничего не обновляется и данные вдруг перестают быть "о.уеть каких размеров"?
5 Живой Ископаемый
 
21.03.16
12:17
ок, принимаются возражения. Но и все-таки, если запустить замер времени, то что конкретно консумит больше всего?

Ну вот так вот, ничего не попишешь
6 MishaD
 
21.03.16
12:24
а если заархивировать файлик, а на сервере разархивировать.

p.s. Сам не пробовал, не знаю
7 PR третий
 
21.03.16
12:34
(5) Больше всего времени на серверную процедуру, вызываемую на клиенте "ПрочитатьИзФайловНаСервере".
В самой процедуре все шустро.
То есть передача данных.
8 PR третий
 
21.03.16
12:35
(6) И че и че?
Ты умеешь вклиниваться в передачу контекста с клиента на сервер и наоборот?
9 Живой Ископаемый
 
21.03.16
12:39
2(7) А ПрочитатьИзФайловНаСервере - это на сервере без контекста, но все равно долго?
А если просто, передавать с сервара без контекста здоровый табличный документ - будет также долго?
10 PR третий
 
21.03.16
12:46
(9) >>А ПрочитатьИзФайловНаСервере - это на сервере без контекста, но все равно долго?
Да что ты зацепился за контекст формы? Там три копейки в базарный день. А табличный документ (реквизит объекта) я в параметрах все-равно передаю конечно же, мне же надо куда-то заполнять. А вот он при возвращении и тормозит.

>>А если просто, передавать с сервара без контекста здоровый табличный документ - будет также долго?
Что значит просто? Просто вернуть функцией табдокумент? Ну, допустим, может будет быстро. И че? Нахрен мне нужен табличный документ? Он у меня и так на клиенте есть в принципе, если понадобится.
11 Живой Ископаемый
 
21.03.16
12:47
Так, а что делает ПрочитатьИзФайловНаСервере ?
12 PR третий
 
21.03.16
12:51
(11) Получает из временного хранилища помещенный на клиенте mxl-файл, сохраняет его на диск на сервере, читает с помощью "Прочитать" во временный табличный документ и выводит в табличный документ объекта с помощью "Вывести".
13 Лефмихалыч
 
21.03.16
13:04
(0) медленно потому, что передача на сервер - это сериализация/десериализация. Вручную ты этого не делаешь.
14 PR третий
 
21.03.16
13:16
(13) Ну это как бы понятно.
Понятно хотя бы потому, что при наличии недопустимых символов XML все накрывается медным тазом.
Тут скорее вопрос в другом, что делать в такой ситуации?
1С рекомендует не гонять такую инфу между клиентом и сервером.
И как, спрашивается, жить?
15 PR третий
 
21.03.16
13:32
Еще какая-то странная тема.
Когда на форме уже прочитался xml-файл и я нажимаю кнопку "Ну давай, грузи", в которой выполняется "ПоказатьВопрос", то пока вопрос покажется, полгода пройдет, пока весь табличный документ не сгоняется на сервер.
Спрашивается, зачем?
16 Живой Ископаемый
 
21.03.16
13:35
2(12) " и выводит в табличный документ объекта с помощью "Вывести". - получается, форма на сервере изменена, чтобы она отобразилась на клиенте, сервер ее сериализует, и посылает большой хмл на клиент, который ее десирализует.
Хотя все с понтом и происходит в серверной без контекста процедуре. Но это безконтекста, видимо означает что клиент на сервер не отправляет контекст именно только для вызова процедуры
17 PR третий
 
21.03.16
13:37
(16) Спасибо, КЭП. Что дальше?
18 lodger
 
21.03.16
14:00
попробуй отказаться от ТабДок.
сделай ТЗ\ТЧ на форме\объекте, набивай его на сервере.
тогда на форму тебе будет прибегать строк не больше чем видимая область.
не?

Свое мнение
19 Живой Ископаемый
 
21.03.16
14:02
2(17) Да вобщем-то все...
===
Но можно например по-пробовать сделать так.
а) Делаешь ХТТП-сервис, на ПОСТ, который принимает файл.
на стороне сервера распаковывает его, читает в Табличный Документа, но не помещает на форму (ну, чтобы выполнять движковую сериализацию/десериализацию формы). Сериализует данные из этого табличного документа в JSON, и отправляет этот джейсон в ответе ХТТП-запроса с клиента.
Клиент сам заполняет табличный документ десериализованными из полученного с сервера джейсона данными.
????
ПРОФИТ!!!

Свое мнение
20 Живой Ископаемый
 
21.03.16
14:29
(ну, чтобы НЕ выполнять движковую сериализацию/десериализацию формы)
21 Fragster
 
гуру
21.03.16
14:33
в данном случае может быть быстрее в контексте :)
22 Serginio1
 
21.03.16
14:44
А еще можно сжимать с помощью ХранилищаЗначения или Zip
23 PR третий
 
21.03.16
15:19
(18) Не
24 PR третий
 
21.03.16
15:21
(19) Рукалицо.
Если заполнять на клиенте построчно, то вся тема не имеет смысла, так как все понятно.
Речь про то, что делать, если нужно использовать метод "Вывести", а не выводить через задницу по одной ячейке.
25 Лефмихалыч
 
21.03.16
15:40
(14) изобретать что-то, чтобы жить как-то иначе. В целом задача какую-то муйню мутить со стаметровыми таблицами как-то разительно и категорически выбивается из контекста тонкого клиента. Вот прямо совсем в разных углах ринга тонкие клиенты и стаметровые файлы. Как по мне.
26 Лефмихалыч
 
21.03.16
15:45
(15) ну, что тут можно сказать, кроме "не делай так"?..
27 Живой Ископаемый
 
21.03.16
16:08
2(24)Чувак, вот начни воспринимать тонкого клиента как мобильное приложение. Вот ты видел например мобильные  фейсбук или твитер или там каких-нить интернет магазов клиенты, где оно сразу бы показывало всю новостную ленту/весь ассортимент? нет, исключительно порциями.
Даже если первоначальная загрузка долгая - он сохраняется локально, и потом тоже показывается порциями.

И даже если эта аналогия кажется притянутой за уши, то вот тебе абсолютно зеркальная - попробуй создай гугл-таблицу со 100 000 строками и 10-ком заполненных колонок. И попробуй как быстро будет эта таблица открываться на мобильном клиенте. Если долго - то радуйся, даже гугл не решило твоей (1с) проблемы. Если все-таки быстро - то не порциями ли грузятся строки?
28 PR третий
 
21.03.16
19:33
(27) Да мне пофиг в принципе, если я на клиенте не буду иметь все данные табличного документа.
Я все-равно гружу на сервере.
Так что если вдруг была бы порционная подгрузка, то мне было бы пофиг.
29 mistеr
 
21.03.16
19:38
Если 100 Мб - реальная цифра, то пора задуматься о более подходящем формате хранения того, что в файле. Либо о более подходящем алгоритме загрузки (чтобы файл попадал сразу на сервер, минуя рабочий стол юзера).

Неправильно ты бутерброд ешь, нужно по-другому...
30 PR третий
 
21.03.16
19:46
(29) Ну попадет он быстрее и что? Он же после загрузки возвращается назад на клиента.
Задумываться о другом формате я не буду, в принципе терпимая скорость.
Вопрос скорее, теоретический, просто интересно.
31 shuhard
 
21.03.16
20:03
(30)[Задумываться о другом формате я не буду]
нечем думать ?

Неправильно ты бутерброд ешь, нужно по-другому...
32 PR третий
 
21.03.16
20:08
(31) Закрой варежку //лениво
33 MaxS
 
21.03.16
20:16
Огромная табличная часть на УФ выводится очень медленно.
Для ускорения можно таблицу значений с помощью СКД вывести в виде табличного документа.
34 Fragster
 
гуру
22.03.16
11:15
(21)+ набросал демонстрацию эффекта: http://catalog.mista.ru/public/504141/
35 Fragster
 
гуру
22.03.16
11:16
(33) не обязательно использовать СКД
36 Fragster
 
модератор
22.03.16
11:17
(31)(32) девочки, не ссорьтесь
37 Живой Ископаемый
 
22.03.16
11:27
(34) прикольно
38 Serginio1
 
22.03.16
11:32
(34) Спасибо. На заметку.