Имя: Пароль:
1C
1С v8
УФ отображать ТабДок в цикле
0 SweetaAngel
 
29.10.22
12:21
Допустим заполняется ТабДок как можно сделать, чтобы результата отображался на лету, а не в конце результата появлялся?
1 RomanYS
 
29.10.22
12:46
(0) заполнять ТД частями и возвращаться на клиент. Только это глупость. Если тебе нужно что-то подобное, значит нужен ДС, а не ТабДок
2 Мультук
 
гуру
29.10.22
13:00
(0)

Вы хотите, чтобы клиент радовался и понимал сколько документов из 100500 штук обработка уже создала?
Как прикрутить прогресс-бар можно посмотреть на примере типовой обработки "Удаление объектов".

Но лучше показывать котиков, как это сделано в БП 3.0

Короткий ответ: "просто и легко" -- никак.
3 SweetaAngel
 
29.10.22
13:12
(1) > заполнять ТД частями и возвращаться на клиент.

Заполняется на клиенте
4 RomanYS
 
29.10.22
13:46
(3) ну значит проблема в занятости клиента, а не в отображении на лету. Заполняйте в фоне... и см (1)
5 SweetaAngel
 
29.10.22
15:12
(4) Сделал через подключение обработчика ожидания.


&НаКлиенте
Перем чСчетчик, мсЁРезультат;

&НаКлиенте
Процедура ВывестиЛинии()
    
    Если чСчетчик = 1 ТОгда
        Х1(мсЁРезультат);    
    ИначеЕсли чСчетчик = 2 ТОгда
        Х2(мсЁРезультат);    
    ИначеЕсли чСчетчик = 3 ТОгда
        Х3(мсЁРезультат);    
    ИначеЕсли чСчетчик = 4 ТОгда
        Х4(мсЁРезультат);    
    ИначеЕсли чСчетчик = 5 ТОгда
        Х5(мсЁРезультат);
    ИначеЕсли  чСчетчик > 5 ТОгда
        ОтключитьОбработчикОжидания("ВывестиЛинии");
    КонецЕсли;  
    чСчетчик = чСчетчик + 1;
    
КонецПроцедуры

&НаКлиенте
Процедура кмдЁЛиния(Команда)
    
    мсЁРезультат = Новый Массив(160, 90);
    чСчетчик = 1;
    ПодключитьОбработчикОжидания("ВывестиЛинии", 2);
    
КонецПроцедуры
6 SweetaAngel
 
29.10.22
15:15
(1) > значит нужен ДС,

Что такое "ДС"?
7 RomanYS
 
29.10.22
15:17
(6) Динамический список
8 RomanYS
 
29.10.22
15:19
(5) помогло? Типа у пользователя есть 2 секунды поскролить ТД пока он снова не зависнет, или это не так работает?
9 SweetaAngel
 
29.10.22
15:20
(7) Понял. Мне немного для другого ТабДОк нужен
(8) Я анимацию хочу на Табдок выводить. 2 сек. на кадр.
10 SweetaAngel
 
29.10.22
15:22
(9) > 2 секунды

Там не 2 секунды, а 2/10 секунды

"Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число)."
11 FirstLine Support
 
29.10.22
15:27
не проще ли на форму бросить компонент для вывода анимации и транслировать туда "Ёжика в тумане"
12 SweetaAngel
 
29.10.22
15:31
(11) На какую компоненту можно выводить точки?

Вроде читал, что можно JavaScript D3 — но решил не заморачиватся.
13 RomanYS
 
29.10.22
15:37
(10) 2- это 2 секунды, 0.2 - две десятых секунды. "С точностью" значит нет смысла писать 0.2xxxxxxx - округлится до 0.2
14 RomanYS
 
29.10.22
15:38
(12) 1С умеет svg штатно отображать, можно попробовать генерить svg и выводить в картинку
15 SweetaAngel
 
29.10.22
15:40
(13) ДА, пардон затупил
16 SweetaAngel
 
29.10.22
15:43
(14) Прикольно. Но сейчас попробую по простому. Мне особо производительность не нужна. Важен одноразовый ВАУ-эффект.
17 RomanYS
 
29.10.22
15:57
(16) производительности там как раз может и не быть, за то линий сколько угодно и каких угодно)
18 SweetaAngel
 
29.10.22
15:59
(17) Так у меня как раз смысл, чтобы механизмы рисования линий реализовать.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан