Чтение mxl в табличный документ на экране #768016


#0 by PR третий
Предположим, есть mxl-файл довольно приличного размера, пусть 100 Mb. И есть управляемая форма на 8.3, в которую нужно прочитать этот файл. Получается, нужно сначала кинуть файлик на сервер, а потом уже его прочитать в табличный документ. И вот вопрос, а что так медленно происходит этот процесс? Вручную открыть файлик, скопипастить и вставить быстрее получается.
#1 by Живой Ископаемый
на сервере или на сервере без контекста?
#2 by PR третий
Без контекста.
#3 by Живой Ископаемый
А какая из операций происходит медленно? Помещение файлика в хранилище. или уже передача с сервера? Есть мнение что второе, и это происходит от того, что форма на сервере сериализуется в ХМЛ, и вместе с табличным документом этот хмл получается просто о.уеть каких размеров.
#4 by PR третий
1. Форма маленькая, нечего там сериализовать. 2. С хрена ли с сервера передается форма, если &НаСервереБезКонтекста? 3. А что, когда я самостоятельно копипащу содержимое на клиенте в табличный документ, то на сервере ничего не обновляется и данные вдруг перестают быть "о.уеть каких размеров"?
#5 by Живой Ископаемый
ок, принимаются возражения. Но и все-таки, если запустить замер времени, то что конкретно консумит больше всего?
#6 by MishaD
а если заархивировать файлик, а на сервере разархивировать. p.s. Сам не пробовал, не знаю
#7 by PR третий
Больше всего времени на серверную процедуру, вызываемую на клиенте "ПрочитатьИзФайловНаСервере". В самой процедуре все шустро. То есть передача данных.
#8 by PR третий
И че и че? Ты умеешь вклиниваться в передачу контекста с клиента на сервер и наоборот?
#9 by Живой Ископаемый
2 А ПрочитатьИзФайловНаСервере - это на сервере без контекста, но все равно долго? А если просто, передавать с сервара без контекста здоровый табличный документ - будет также долго?
#10 by PR третий
>>А ПрочитатьИзФайловНаСервере - это на сервере без контекста, но все равно долго? Да что ты зацепился за контекст формы? Там три копейки в базарный день. А табличный документ (реквизит объекта) я в параметрах все-равно передаю конечно же, мне же надо куда-то заполнять. А вот он при возвращении и тормозит. >>А если просто, передавать с сервара без контекста здоровый табличный документ - будет также долго? Что значит просто? Просто вернуть функцией табдокумент? Ну, допустим, может будет быстро. И че? Нахрен мне нужен табличный документ? Он у меня и так на клиенте есть в принципе, если понадобится.
#11 by Живой Ископаемый
Так, а что делает ПрочитатьИзФайловНаСервере ?
#12 by PR третий
Получает из временного хранилища помещенный на клиенте mxl-файл, сохраняет его на диск на сервере, читает с помощью "Прочитать" во временный табличный документ и выводит в табличный документ объекта с помощью "Вывести".
#13 by Лефмихалыч
медленно потому, что передача на сервер - это сериализация/десериализация. Вручную ты этого не делаешь.
#14 by PR третий
Ну это как бы понятно. Понятно хотя бы потому, что при наличии недопустимых символов XML все накрывается медным тазом. Тут скорее вопрос в другом, что делать в такой ситуации? 1С рекомендует не гонять такую инфу между клиентом и сервером. И как, спрашивается, жить?
#15 by PR третий
Еще какая-то странная тема. Когда на форме уже прочитался xml-файл и я нажимаю кнопку "Ну давай, грузи", в которой выполняется "ПоказатьВопрос", то пока вопрос покажется, полгода пройдет, пока весь табличный документ не сгоняется на сервер. Спрашивается, зачем?
#16 by Живой Ископаемый
2 " и выводит в табличный документ объекта с помощью "Вывести". - получается, форма на сервере изменена, чтобы она отобразилась на клиенте, сервер ее сериализует, и посылает большой хмл на клиент, который ее десирализует. Хотя все с понтом и происходит в серверной без контекста процедуре. Но это безконтекста, видимо означает что клиент на сервер не отправляет контекст именно только для вызова процедуры
#17 by PR третий
Спасибо, КЭП. Что дальше?
#18 by lodger
попробуй отказаться от ТабДок. сделай ТЗТЧ на формеобъекте, набивай его на сервере. тогда на форму тебе будет прибегать строк не больше чем видимая область. не?
#19 by Живой Ископаемый
2 Да вобщем-то все... === Но можно например по-пробовать сделать так. а) Делаешь ХТТП-сервис, на ПОСТ, который принимает файл. на стороне сервера распаковывает его, читает в Табличный Документа, но не помещает на форму (ну, чтобы выполнять движковую сериализацию/десериализацию формы). Сериализует данные из этого табличного документа в JSON, и отправляет этот джейсон в ответе ХТТП-запроса с клиента. Клиент сам заполняет табличный документ десериализованными из полученного с сервера джейсона данными. ???? ПРОФИТ!!!
#20 by Живой Ископаемый
(ну, чтобы НЕ выполнять движковую сериализацию/десериализацию формы)
#21 by Fragster
в данном случае может быть быстрее в контексте :)
#22 by Serginio1
А еще можно сжимать с помощью ХранилищаЗначения или Zip
#23 by PR третий
Не
#24 by PR третий
Рукалицо. Если заполнять на клиенте построчно, то вся тема не имеет смысла, так как все понятно. Речь про то, что делать, если нужно использовать метод "Вывести", а не выводить через задницу по одной ячейке.
#25 by Лефмихалыч
изобретать что-то, чтобы жить как-то иначе. В целом задача какую-то муйню мутить со стаметровыми таблицами как-то разительно и категорически выбивается из контекста тонкого клиента. Вот прямо совсем в разных углах ринга тонкие клиенты и стаметровые файлы. Как по мне.
#26 by Лефмихалыч
ну, что тут можно сказать, кроме "не делай так"?..
#27 by Живой Ископаемый
2Чувак, вот начни воспринимать тонкого клиента как мобильное приложение. Вот ты видел например мобильные  фейсбук или твитер или там каких-нить интернет магазов клиенты, где оно сразу бы показывало всю новостную ленту/весь ассортимент? нет, исключительно порциями. Даже если первоначальная загрузка долгая - он сохраняется локально, и потом тоже показывается порциями. И даже если эта аналогия кажется притянутой за уши, то вот тебе абсолютно зеркальная - попробуй создай гугл-таблицу со 100 000 строками и 10-ком заполненных колонок. И попробуй как быстро будет эта таблица открываться на мобильном клиенте. Если долго - то радуйся, даже гугл не решило твоей (1с) проблемы. Если все-таки быстро - то не порциями ли грузятся строки?
#28 by PR третий
Да мне пофиг в принципе, если я на клиенте не буду иметь все данные табличного документа. Я все-равно гружу на сервере. Так что если вдруг была бы порционная подгрузка, то мне было бы пофиг.
#29 by mistеr
Если 100 Мб - реальная цифра, то пора задуматься о более подходящем формате хранения того, что в файле. Либо о более подходящем алгоритме загрузки (чтобы файл попадал сразу на сервер, минуя рабочий стол юзера).
#30 by PR третий
Ну попадет он быстрее и что? Он же после загрузки возвращается назад на клиента. Задумываться о другом формате я не буду, в принципе терпимая скорость. Вопрос скорее, теоретический, просто интересно.
#31 by shuhard
[Задумываться о другом формате я не буду] нечем думать ?
#32 by PR третий
Закрой варежку //лениво
#33 by MaxS
Огромная табличная часть на УФ выводится очень медленно. Для ускорения можно таблицу значений с помощью СКД вывести в виде табличного документа.
#34 by Fragster
+ набросал демонстрацию эффекта:
#35 by Fragster
не обязательно использовать СКД
#36 by Fragster
девочки, не ссорьтесь
#37 by Живой Ископаемый
прикольно
#38 by Serginio1
Спасибо. На заметку.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С