|
Передача Таблицы значений с сервера на клиент (внешняя обработка) | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
17.08.21
✎
14:06
|
Заезженная тема, понимаю. Но на УФ раньше работал мало, а тут понять не могу, как работает механизм.
Получаю наименования документов базы: ТБ2 = Новый ТаблицаЗначений; ТБ2.Колонки.Добавить("Док"); Для каждого стр Из Метаданные.Документы Цикл Новстр = ТБ2.Добавить(); Новстр.док = (стр.Синоним); КонецЦикла; Далее нужно показать этот список на уже созданной таблице значений на форме. "ТЗ1" Хотел передать ТБ2 с сервера на клиент способом ПоместитьВоВременноеХранилище(ТБ2, ЭтаФорма.УникальныйИдентификатор); А потом на клиенте ПолучитьИзВременногоХранилища(ЭтаФорма.УникальныйИдентификатор); Но способ не работает, пишет "Ошибка получения значения из временного хранилища". Какая ошибка, не известно, никаких подробностей в "Подробнее" и в конфигуратор не попадает. |
|||
1
MAPATNK2
naïve
17.08.21
✎
14:08
|
Знаю, что есть механизм РеквизитФормыВЗначение("Объект"), но так и не понял, как его сюда запихнуть. Постоянно вываливаются ошибки.
писал так РеквизитФормыВЗначение("Объект"), ошибка типа. писал так РеквизитФормыВЗначение("ТЗ1") та же ошибка. |
|||
2
acht
17.08.21
✎
14:09
|
На клиенте таблица значений не существует. Вообще. Никак.
Для обхода есть реквизиты формы и массивы структур |
|||
3
lodger
17.08.21
✎
14:09
|
это всё потому, что вы не понимаете сущности процесса работы клиент-сервера.
|
|||
4
lodger
17.08.21
✎
14:10
|
(1) если ТЗ1 уже есть на форме, так и заполни её на сервере. на клиент она сама приедет в конце серверного вызова.
|
|||
5
lodger
17.08.21
✎
14:10
|
Получаю наименования документов базы:
Для каждого стр Из Метаданные.Документы Цикл Новстр = ТЗ1.Добавить(); Новстр.док = (стр.Синоним); КонецЦикла; |
|||
6
MAPATNK2
naïve
17.08.21
✎
14:14
|
(4) Спасибо большое.
Надо почитать книжки по УФ |
|||
7
MAPATNK2
naïve
17.08.21
✎
14:16
|
(2) Как пользоваться реквизитом формы? Я пробовал по аналогиис примерами в интернете делать, ещё на сервере ошибка вылезала.
РеквизитФормыВЗначение("Объект"), ошибка типа. писал так РеквизитФормыВЗначение("ТЗ1") та же ошибка. |
|||
8
Флориан
17.08.21
✎
14:25
|
с сервера на клиент
&На сервере: ДокументОбъект = РеквизитФормыВЗначение("Объект"); ДокументОбъект.Запасы.Загрузить(ВыборкаДетальныеЗаписи.Скопировать()); ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); |
|||
9
Kassern
17.08.21
✎
14:28
|
(0) ну так заполните реквизит модуля формы ТЗ на сервере и все. Он автоматом у вас не клиенте отобразится, если выведен на форму.
|
|||
10
MAPATNK2
naïve
17.08.21
✎
14:29
|
(9) Да, уже выше писали, Так получилось. Хотел попробовать другим способом. Например РеквизитФормыВЗначение
|
|||
11
MAPATNK2
naïve
17.08.21
✎
14:30
|
(8) У меня тут внешняя обработка, а не документ объект...
|
|||
12
Флориан
17.08.21
✎
14:33
|
(11) передай через массив структур
|
|||
13
runoff_runoff
17.08.21
✎
14:35
|
(12) не надо так.. надо как в (9)
|
|||
14
MAPATNK2
naïve
17.08.21
✎
14:40
|
(13) Я понимаю, просто рассматривал способы передачи ТЗ
|
|||
15
MAPATNK2
naïve
17.08.21
✎
14:41
|
(13) Только я так и не понял. Почему клиентская таблица заполняется на сервере, а на самом клиенте её вообще не существует, как писали выше.
|
|||
16
runoff_runoff
17.08.21
✎
14:42
|
на клиенте существует ДанныеФормыКоллекция
|
|||
17
Вафель
17.08.21
✎
14:45
|
Проще всего
РеквизитФормыТз.загрузить(моятз) Всякие объекты в значения не нужны |
|||
18
Kassern
17.08.21
✎
15:17
|
(14) массив структур вам в помощь. Даже где то были тут куски кода, которые такое делают
|
|||
19
VladZ
17.08.21
✎
15:21
|
(0) Зачем ее передавать?
|
|||
20
ildary
17.08.21
✎
15:36
|
(16) Потому что так решила 1С.
|
|||
21
lamme
17.08.21
✎
16:10
|
Я так пользуюсь для передачи ТЗ с сервера на клиент функциями
ПреобразоватьТаблицуЗначенийВМассив(входящаяТЗ) - это когда на сервере сформировал ТЗ и ее надо на клиента вернуть а на клиенте конвертирую ее обратно в ТЗ ПреобразоватьМассивВТаблицуЗначений (входящиймассив) (в инете есть полные примеры фунгкций. как я понимаю - это из БСП) -- а по (0) если у формы есть реквизит - с типом ТаблицаЗначений то ее на сервере и заполнить через Для каждого стр Из Метаданные.Документы Цикл Новстр = ЭтотОбъект.МояТаблицаЗначений.Добавить(); Новстр.док = (стр.Синоним); КонецЦикла; только структуру - задать руками у этого реквизита |
|||
22
AlvlSpb
17.08.21
✎
21:55
|
(0) "Далее нужно показать этот список на уже созданной таблице значений на форме. "ТЗ1"". Так если надо показать на форме, используй ТЧ а не ТЗ и способ из (17). Создаешь трудности там где их нет
|
|||
23
серый КТУЛХУ
17.08.21
✎
22:03
|
(2): таладно "несущиствууииит".
попробуй на коиенте ОписаниеТипа = Новый ОписаниеТипов("ТаблицаЗначений"); ОйШоЕтоТакое = Новый(ОписаниеТипа.Типы()[0]); отладка = истина; // суй сюдой брейкпойнт и шифт-ф9 на ОйШоЕтоТакое... а потом на киенте погоняй методы... |
|||
24
acht
17.08.21
✎
22:24
|
(23) А теперь тоже самое на веб-клиенте. ОйШоЕтоТакое, а?
|
|||
25
1ctube
17.08.21
✎
22:33
|
ТЗ ты можешь дополнить данными на сервере. А на клиенте получаются устаревшие данные. Непорядок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |