|
v7: Временно отключить обновление формы | ☑ | ||
---|---|---|---|---|
0
mistеr
14.06.12
✎
09:30
|
На форме есть ТЗ, я программно ее заполняю. как на время заполнения отключить перерисовку формы?
|
|||
1
andrewks
14.06.12
✎
09:32
|
никак. заполняй во временной ТЗ, а потом качни на форму разом
|
|||
2
1Сергей
14.06.12
✎
09:33
|
Зачем?
|
|||
3
Ёпрст
14.06.12
✎
09:36
|
(2) сильно мелькает при заполнении
|
|||
4
vcv
14.06.12
✎
09:40
|
FormEx, ЗапретитьОбновлениеОкна
|
|||
5
vcv
14.06.12
✎
09:41
|
+(4) Но если процесс заполнения прервать по Esc, будет красиво. Так что (1) надёжней.
|
|||
6
Kavar
14.06.12
✎
09:42
|
(0) Я видимость тз отключаю на время заполнения.
(2) Время заполнения сокращается существенно. |
|||
7
dk
14.06.12
✎
09:44
|
(6) +1
Форма.ТЗ.Видимость(0); // Заполняем ТЗ Форма.ТЗ.Видимость(1); |
|||
8
mistеr
14.06.12
✎
09:44
|
(1) Пример можно? Подозреваю, что "качни на форму" будет то же самое.
(4) Спасибо, но хотелось бы штатными средствами. |
|||
9
andrewks
14.06.12
✎
09:45
|
+(1) если ты вдруг не понял, что значит "качни на форму разом", то:
|
|||
10
1Сергей
14.06.12
✎
09:47
|
(9) это не ускорит на больших ТЗ
|
|||
11
andrewks
14.06.12
✎
09:47
|
(10) ускорит. проверено. ТабНаФорме.Заполнить(ВремТЗ); выполняется в одном "такте" между обновлениями формы
|
|||
12
ЧеловекДуши
14.06.12
✎
09:48
|
(0)Эх, что вы все время лепите данные в тоже ТЗ, что на форме :)
Пиши в ТЗ, созданное через СоздатьОбъект, и будет тебе счастье :) |
|||
13
ЧеловекДуши
14.06.12
✎
09:51
|
(8)Пример:
ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка() //Добавляем колонки // Далее заполняем ТЗ, как угодно или получаем из запроса :) //Потом ТЗ.Выгрузить(ТЗ_НаФорме); Для шш1 = 1 по ТЗ_НаФорме.КоличествоКолонок() Цикл Колонка = ТЗ_НаФорме.ПолучитьПараметрыКолонки(); //В цикле делаешь разукрашку съехавших сума колонок и скрываешь, //то что ненужно знать пользователю... |
|||
14
mistеr
14.06.12
✎
09:57
|
(6)(7) Попробовал. 10 секунд против 23. Неплохо, хоть и не очень красиво.
Сейчас попробую (1). |
|||
15
mistеr
14.06.12
✎
10:23
|
(1)(12) 7-8 секунд на заполнение и мгновенно (меньше секунды) отрабатывает метод Выгрузить() или Заполнить().
Интересно, что метод Загрузить() отрабатывает ощутимо медленнее, порядка трех секунд. |
|||
16
mistеr
14.06.12
✎
10:35
|
Попутно еще вопрос. Если ТЗ - элемент диалога передать в процедуру как параметр, то там становятся недоступными методы Видимость, Доступность и т.д. Это можно как-то решить? В процедуре манипулировать элементом диалога.
|
|||
17
1Сергей
14.06.12
✎
10:42
|
(16) процедура в том же модуле? почему бы не обращаться к ТЗ напрямую?
|
|||
18
1Сергей
14.06.12
✎
10:43
|
(17)+ Если в другом, то передавай контекст
|
|||
19
mistеr
14.06.12
✎
10:52
|
(17) В том же. Чтобы обрабатывать разные элементы. Повторное использование кода.
(18) Как? |
|||
20
andrewks
14.06.12
✎
10:55
|
Форма.ПолучитьАтрибут()
|
|||
21
1Сергей
14.06.12
✎
10:57
|
(19) ну, тогда можно передавать идентификатор Элемента Формы. Что-то типа такого:
Процедура Отобразить(ИдентЭлементаДиалога) ЭлементФормы = Форма.ПолучитьАтрибут(ИдентЭлементаДиалога); ЭлементФормы.Видимость(1); ЭлементФормы.Доступность(1); КонецПроцедуры Отобразить("ТаблицаЗначенийНаФорме"); |
|||
22
mistеr
14.06.12
✎
11:06
|
(20)(21) Спасибо, работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |