|
ПоместитьВоВременноеХранилище() Есть ли ограничения? | ☑ | ||
---|---|---|---|---|
0
Birmingem
14.08.17
✎
15:41
|
Делаю выгрузку данных в Ексель.
В серверной процедуре собираю различные данные и помещаю все в структуру. Среди этих данных есть и простые типы значений (число, строка), и еще парочка таблиц значений. Пытаюсь передать эту структуру в процедуру на клиенте: &НаСервере Функция ПолучитьДанныеНаСервере() ДанныеОтчета = Новый Структура; //идет заполнение ДанныеОтчета Путь=ПоместитьВоВременноеХранилище(ДанныеОтчета,ЭтаФорма.УникальныйИдентификатор); Возврат Путь; КонецФункции &НаКлиенте Процедура ЭлектроннаяФормаXLS() Путь=ПолучитьДанныеНаСервере(); ДанныеОтчета = ПолучитьИзВременногоХранилища(Путь); КонецПроцедуры Пишет: Ошибка получения значения из временного хранилища по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Вопрос: Есть ли какие то ограничения на помещаемые во временное хранилище данные? Можно ли туда поместить структуру, содержащую несколько таблиц значений? Или я что то не так делаю? |
|||
1
Имитация работы
14.08.17
✎
15:46
|
И как ты собираешься жить с таблицей значений на клиенте?
|
|||
2
Birmingem
14.08.17
✎
15:49
|
(1)В данном примере, что то вроде:
Тз1=ДанныеОтчета.Тз1; СумИт=Тз1.Итог("Сум"); |
|||
3
Buster007
14.08.17
✎
15:51
|
в СП почитай про таблицу значений
|
|||
4
dezss
14.08.17
✎
15:52
|
ТЗ не живет на клиенте. Делай массив структур, тогда можно будет.
|
|||
5
Birmingem
14.08.17
✎
16:11
|
Блин... Точно. ТЗ на клиенте недоступна ...
Вариант - загонять каждую строку ТЗ в структуру, а эти структуры в массив? |
|||
6
drcrasher
14.08.17
✎
16:15
|
(5) посмотри БСП на тему ТаблицаЗначенийВМассив() или как-то так
|
|||
7
Ц_У
14.08.17
✎
16:23
|
(0) храни отдельно ТЗ от всего остального
|
|||
8
apokrit
14.08.17
✎
16:36
|
(0) Если данные нужно просто передать на клиент, то почему просто их туда не передать (прямо вот через Возврат, например)?
Зачем предварительно помещать их во временное хранилище? Продавцы оборудования вам доплачивают? |
|||
9
H A D G E H O G s
14.08.17
✎
16:43
|
(8) Они могут понадобится не прямо сейчас, а могут и вообще не понадобится.
|
|||
10
Вафель
14.08.17
✎
16:51
|
(9) если могут не понадобиться то лучше вообще не получать такие данные
|
|||
11
Birmingem
14.08.17
✎
16:54
|
(6)Спасибо! Нашел эту функцию.
(7)Видимо так и придется. Простые значения отдельно, а каждую ТЗ в отдельный массив. (8)Там есть несколько ТЗ, строки которых на клиенте надо перебирать и выгружать в Ексель. Есть готовая процедура, которая собирала все нужные данные в одну большую структуру (в ней и ТЗ и пр.). Все так красиво аккуратно по полочкам разложено. А теперь придется эту процедуру дробить на кучу мелких ... эх ... |
|||
12
Heckfy
14.08.17
✎
16:56
|
(11) Ну так сформируй файл на сервере и передай двоичными данными на клиента.
|
|||
13
X Leshiy
14.08.17
✎
16:57
|
(11) Заполняй на сервере, делов то.
|
|||
14
Birmingem
14.08.17
✎
17:02
|
(12) (13) На сервере нет Ексель
|
|||
15
dezss
14.08.17
✎
17:03
|
(14) загони в табдок...
|
|||
16
X Leshiy
14.08.17
✎
17:04
|
(14) Вот тебе уже в (15) подсказали :)
|
|||
17
Wirtuozzz
14.08.17
✎
17:05
|
(0) главный вопрос: зачем передавать что то на клиент? Заполняй Ексель на сервере. Так не пойдет?
|
|||
18
Birmingem
14.08.17
✎
17:06
|
Выгружаемый файл Ексель состоит из нескольких листов.
"загони в табдок..." Несколько листов можно сделать? |
|||
19
Birmingem
14.08.17
✎
17:07
|
(17)На сервере нет Ексель. Да и с правами на серваке еще неизвестно как дела обстоят.
|
|||
20
dezss
14.08.17
✎
17:08
|
(18) вывестигоризонатльныйразделительстраниц()
|
|||
21
X Leshiy
14.08.17
✎
17:09
|
(18) Делаешь на сервере n табдоков, передаешь на клиент, сохраняешь в n временных эксельфайлов, делаешь файл n + 1? копируешь в него листы.
Ну иди красивую функцию на n некрасивых бей :) |
|||
22
Heckfy
14.08.17
✎
17:10
|
Ну так MS ADODB тебе в помощь, раз Экселя на сервере нету. :)
|
|||
23
H A D G E H O G s
14.08.17
✎
17:14
|
(10) Да ты - капитан очевидность, пта. Но нет, Анатолий, иногда ВХ идет доп. данными, которое лучше сохранить и не получать еще раз, когда пользователь согласится на продолжение.
|
|||
24
dezss
14.08.17
✎
17:15
|
На те тему для слияния нескольких экселевских файлов
v8: сохранить несколько табличных документов в разные листы excel |
|||
25
Birmingem
15.08.17
✎
16:52
|
(21) Спасибо! Делаю по твоему совету - для каждого будущего листа Ексель создаю ТабДок, чтобы потом на клиенте из них собрать многолистовый файл Ексель.
Теперь вопрос, какой вариант оптимальнее? 1. С сервера на клиента передавать ТабДоки и на клиенте их сохранять во временные файлы Ексель 2. На сервере каждый ТабДок сохранять во временный файл Ексель, помещать во временное хранилище, и потом на клиенте получать их из временного хранилища |
|||
26
Fragster
гуру
15.08.17
✎
17:18
|
я помню интересную штуку, когда большой табдок помещали во временное хранилище и очищали перед серверным вызовом, в самом серверном вызове разворачивали из хранилища и имели нехилый профит по скорости вызова
|
|||
27
X Leshiy
15.08.17
✎
17:28
|
(25)
Лично я передаю табдоки с сервера на клиент и показываю на форме (сохранение в эксель как доп фича). Я бы не заморачивался с ВХ, нормально все ходит в виде ТД. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |