Имя: Пароль:
1C
 
Передача таблицы значений между клиентом и сервером
, , ,
0 NIGHTHUNTER
 
03.10.20
07:32
Тестировал под толстым клиентом все работало, но под тонким выходят эти ошибки, о невозможности передавать таблицу значений между клиентом и сервером

Подскажите наглядно пожалуйста, ряд решений этой проблемы, что бы взять их на вооружение .
1 NIGHTHUNTER
 
03.10.20
07:35
(0 + ) Конкретно, есть таблица значений. Полученная на сервере, как её без проблем и ошибок передать на клиент ?
2 Галахад
 
гуру
03.10.20
07:36
ТаблицаЗначений

Доступность:

Сервер, толстый клиент, внешнее соединение.
3 ДенисЧ
 
03.10.20
07:40
Посмотри направо. Там стенка есть...
4 TormozIT
 
гуру
03.10.20
09:11
Пересадить всех на толстый клиент, либо себя заставить пользоваться реквизитом формы.
5 hhhh
 
03.10.20
09:15
(1) сделай реквизит формы типа ТаблицаЗначений. И его заполняй. Тогда не надо будет передавать.
6 H A D G E H O G s
 
03.10.20
10:30
(0) Не передавать таблицу на клиент.
7 H A D G E H O G s
 
03.10.20
10:31
(4) хороший план, надежный как китайские часы.
8 Стаканов
 
03.10.20
10:38
(0) Да передай в виде массива структур :)))
9 Gbpltw
 
03.10.20
11:04
"ЗначениеВФайл()", "ЗначениеИзФайла()"
10 Gbpltw
 
03.10.20
11:04
бгг
11 PR
 
03.10.20
11:09
(9) LOL
12 Ненавижу 1С
 
гуру
03.10.20
11:40
Зачем?
13 rphosts
 
03.10.20
11:53
посмотри интервью Чистова - там этот вопрос обсуждался
14 hhhh
 
03.10.20
14:17
можно еще Сериализовать - Десериализовать
15 jsmith82
 
03.10.20
14:20
1. ОбщегоНазначения.ТаблицаЗначенийВМассив
2. Можно коллекцию создать в качестве реквизита формы и заполнять её, если предполагается манипуляция на клиенте, например
16 NIGHTHUNTER
 
05.10.20
05:39
Создал массив, создал структуру с таблицой значений, поместил ее в массив, почему не могу передать ее на клиент?

    Запрос.УстановитьПараметр("НачДата", Период.ДатаНачала);
    Запрос.УстановитьПараметр("КонДата", КонецДня(Период.ДатаОкончания));
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
        ПолученнаяТзРТУ = Результат.Выгрузить();
        СТРУКТ.Вставить("ТзРТУ", ПолученнаяТзРТУ);
        МАСС.Добавить(СТРУКТ);
        Возврат МАСС;
    КонецЕсли;
Возврат 0;    
КонецФункции
17 NIGHTHUNTER
 
05.10.20
05:44
похоже нешльзя таблицу значений передавать вообще
18 Провинциальный 1сник
 
05.10.20
05:53
(17) Как можно передать ТЗ на клиент, если на клиенте не поддерживается такой тип данных? Только изобразить её в виде, который клиент понимает. Обычно делают массив структур.
19 NIGHTHUNTER
 
05.10.20
06:02
(18) Понятно, сам уже дохожу до этого. Видимо раньше все время получалось запускать под толстым клиентом.

А как можно попроще сделать?

Если я создам таблицу как реквизит, ее тоже не получается заполнять ((((
20 NIGHTHUNTER
 
05.10.20
06:22
изменил на &НаСервере где не работало

но что таблицу значений больше не буду пробовать передавать с клиента на сервер понял

то есть нужно все формировать в массив структур и передавать, и так же обрабатывать
какие есть исчерпывающие варианты?

1. массив структур

2. создать таблицу как реквизит формы, сделал, но не получилось, я ее в правом окне создавал

3. какие ещё точно варианты? наверное не делать этого вообще !!!!! Зачем я вообще с этим связываюсь не понятно! Изи есть моменты где без этого не обойтись?
тут я просто сменил на сервер и все, не хочу я возиться ни с чем этим пока .
21 hhhh
 
05.10.20
06:54
(19) заполняй методом Загрузить()

где-то так

ТаблицаРеквизит.Загрузить(Запрос.Выполнить().Выгрузить());
22 NIGHTHUNTER
 
05.10.20
07:11
(21) Да я именно так пробовал. Создал ТаблицуЗначений у обработки в правом окне. Это же не реквизит формы? Или реквизит?
Реквизит в левом же. И делал как вы написали в (21) и отрабатывало. Только там не было таблицы. 2 столбца каких то. Я не понял что это и почему. Не стал разбираться.
Перенес все на сервер.
23 nicxxx
 
05.10.20
07:13
передать ТЗ на клиент можно через ЗначениеВДанныеФормы()
получить ее же с клиента - ДанныеФормыВЗначение()
Книжка Хрусталевой есть? Там рассказано подробнее
24 NIGHTHUNTER
 
05.10.20
08:41
почему за место таблицы там вот это http://joxi.ru/LmGO73GsJyDvZm ?
25 ДенисЧ
 
05.10.20
08:42
(24) Потому что на клиенте смотришь
26 ДенисЧ
 
05.10.20
08:43
(23) Книга? Издеваешься????
27 NIGHTHUNTER
 
05.10.20
08:47
на сервере есть таблица значений, хочу ее вывести на клиенте

как это сделать кроме массива структур ?

так вот сделал

    ИдКоллекции = "ПоказатьТЗ";
    ЗначениеВРеквизитФормы(ТаблицаЗначений,ИдКоллекции);

а как на клиенте получить?
28 NIGHTHUNTER
 
05.10.20
08:58
так не получается, как нужно?

ДанныеФормыВЗначение(ПоказатьТЗ, Тип("ТаблицаЗначений"))
29 Evgenchik
 
05.10.20
09:00
Ты понимаешь, что на клиенте НЕТ таблицы значений?

Но есть реквизит формы Таблица значений. Ты можешь на сервере заполнить этот реквизит и с клиента обращаться к нему.
30 NIGHTHUNTER
 
05.10.20
09:01
(23) пишет не определена такая процедура
31 NIGHTHUNTER
 
05.10.20
09:02
(29) Я заполднил на сервере, но там вот что http://joxi.ru/LmGO73GsJyDvZm

как мне на клиенте получить данные этой таблицы значений? http://joxi.ru/5mdKGW5uex054r
32 Василий Алибабаевич
 
05.10.20
09:04
(31) В ПоказатьТЗ колонки добавить не пробовал?
33 VladZ
 
05.10.20
09:04
(31) Структура ТЗ фиксированная? Опиши сразу структуру.
Вытащи свою  ПоказатьТЗ на форму.
34 del123
 
05.10.20
09:09
(32) Там не то что показать, там, скорее всего, колонок даже нет в реквизите таблицы значений
35 NIGHTHUNTER
 
05.10.20
09:11
(32) Там без колонок
36 Evgenchik
 
05.10.20
09:11
37 Garykom
 
гуру
05.10.20
09:14
38 Василий Алибабаевич
 
05.10.20
09:17
(35) Стесняюсь спросить - а нафига она такая (без колонок) нужна?
39 NIGHTHUNTER
 
05.10.20
09:18
(38) стремился к динамичности, сейчас займусь колонками
40 Мимохожий Однако
 
05.10.20
09:25
(39) "стремился к динамичности"-поясни
41 nicxxx
 
05.10.20
09:26
(30) Она доступна в серверных методах формы, т.е. тех, которые предваряются аннотацией &НаСервере.
Надо рассказывать про  то, что форма живет сразу в двух местах, на клиенте и сервере?
42 Evgenchik
 
05.10.20
09:27
(40) Он хотел сформировать ТЗ на сервере с произвольными колонками.

(41) Он только открыл для себя использование тонкого клиента, не надо пока ему.
43 NIGHTHUNTER
 
05.10.20
09:47
44 Evgenchik
 
05.10.20
09:54
(43) А если тебе не скажут "ДА", то ты не станешь пробовать?
45 Мимохожий Однако
 
05.10.20
09:55
(43) а на форме это будет не таблица значений и коллекция
46 H A D G E H O G s
 
05.10.20
10:03
Епстать, какой ты автор тяжелый.

1) таблица значений в тонком клиенте есть, но она недоступна простым человекам.
2) передача таблицы значений с сервера на клиент и обратно не поддерживается просто потому, что по концепции 1С(спорной), все манипуляции с данными ты должен проводить на сервере
3) реквизит на форме, который тебе так советуют "специлисты" служит только для Порционного отображения, он подтаскивает данные с сервера порционно, по 45 строк и, в случае большого количества данных, во первых, замучит сервер, а, во вторых, устанет позиционироваться при каждом серверном вызове в таблице значений.
47 NIGHTHUNTER
 
05.10.20
10:03
(44) я сейчас это делаю
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший