|   |   | 
| 
 | Передача Таблицы значений с сервера на клиент (внешняя обработка) | ☑ | ||
|---|---|---|---|---|
| 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 naïve 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 | 
        ТЗ ты можешь дополнить данными на сервере. А на клиенте получаются устаревшие данные. Непорядок     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |