Имя: Пароль:
1C
1С v8
Табличный документ, на веб клиенте.
0 SkillUp
 
26.01.21
11:37
Здравствуйте, столкнулся с проблемой не знаю что и делать.

Есть алгоритм:
&НаКлиенте
Процедура ...
Если ТипЗнч(ТД) = Тип("ТабличныйДокумент") Тогда
        #Если ВебКлиент Тогда
                // если веб клиент.
            ТабличныйДокумент = ТД;
            #Иначе
                // если тонкий клиент.
               ТабличныйДокумент = ТД;
            #КонецЕсли        
КонецЕсли;

КонецПроцедуры.

На тонком клиенте все отлично отлично, сформированный ранее табличный документ, присваивается в строке (ТабличныйДокумент = ТД;). И в пользовательском режиме, пользователю показывает заполненный табличный документ.

На веб клиенте, показывает не заполненный табличный документ. Если сделать вызов сервера, и передать ТД на сервер и присвоить там ТД, то тоже показывает заполненный табличный документ, как на тонком клиенте.

&НаСервере
Процедура ТДСервер(ТД)

    ТабличныйДокумент = ТД;    
    
КонецПроцедуры

Да, все работает, если через серверный вызов. НО! Слишком медленно работает на веб клиенте. И желательно как-то правильно присвоить сформированный ТД, еще на клиенте и без лишних вызовов сервера. А как правильно сделать это? Или из-за чего может быть проблема с ТД? Почему на тонком клиенте ("ТабличныйДокумент = ТД"), все нормально работает, а на вебе такое не прокатывает?
1 SkillUp
 
26.01.21
11:46
Еще сложность, что этот весь код в общей форме.
2 fisher
 
26.01.21
11:55
Никогда не сталкивался, потому что всегда на сервере присваивал. Непонятно, зачем ты ТД на клиент отдельно вытягиваешь. Формируешь-то все равно на сервере. Почему сразу там и не присвоить реквизиту?
Но если все-таки сабж, попробуй ОбновитьОтображениеДанных()
3 Малыш Джон
 
26.01.21
11:59
Ну где-то же ТД формируется? Там же и ТабличныйДокумент формируй.
4 Guk
 
26.01.21
11:59
никогда не понимал, зачем в если и иначе вставляют один и тот же код...
5 SkillUp
 
26.01.21
12:05
Это общая форма - "ПечатьДокументов" , пользователь выбирает какой ТД напечатать. Табличные документы уже все есть сформированные.  Вот как вывести табличный документ заполненный (пользователю на экран), проблемка.
6 SkillUp
 
26.01.21
12:05
На вебе*
7 SkillUp
 
26.01.21
12:07
И себе самоуму интересно, почему на тонком клиенте (в процедуре наклиенте) -ТабличныйДокумент = ТД , все работает, на вебе не работает...
8 SkillUp
 
26.01.21
12:08
(4) Это для объяснения проблемы.
9 SkillUp
 
26.01.21
12:09
(2) Ну на тонком клиенте (&НаКлиенте) работает же...
10 Пузан
 
26.01.21
12:13
Как бы ежу понятно, что браузер - это не тонкий клиент и не умеет почти ничего кроме как показать готовый HTML и выполнить какой-нибудь сценарий Javascript. Поэтому логично, что все для вэба формируется исключительно на сервере, а тонкий многое умеет делать сам.
11 Пузан
 
26.01.21
12:14
А еще можно в синтаксис помощнике посмотреть где доступен ТабличныйДокумент, скорее всего вэб-клиента там нет.
12 SkillUp
 
26.01.21
12:16
(11) Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
13 fisher
 
26.01.21
12:22
(9) Ты просто делаешь лишние телодвижения. Вытягиваешь ТД на клиента вне контекста формы, потом пишешь в контекст формы (после чего еще будет синхронизация этого контекста на сервер). Зачем?
ЗЫ. ОбновитьОтображениеДанных() пробовал?
14 SkillUp
 
26.01.21
12:34
(13) Сейчас тестирую...
15 SkillUp
 
26.01.21
12:51
(13) ОбновитьОтображениеДанных()  И Этаформа.ОбновитьОтображениеДанных() и указывал что обновлять. Табличный документ с не заполненными полялми... (
16 fisher
 
26.01.21
12:55
(15) Ну, значит багофича. Можешь подготовить демонстрацию проблемы и связаться с техподдержкой, чтобы проблему зарегали.
Но, походу, эта проблема никого кроме тебя не парит :) Уже писал, почему.
17 SkillUp
 
26.01.21
12:56
(16) Ок. Спасибо! )
18 fisher
 
26.01.21
12:58
Только проверь на последнем релизе. А то вдруг уже пофиксили.