Имя: Пароль:
1C
1С v8
Обработчик ожидания и БлокироватьВесьИнтерфейс
0 drcrasher
 
06.04.18
12:19
Пытаюсь реализовать следующее:
есть обработка начального заполнения ИБ.
Форма открывается в режиме блокировки интерфейса.
Состоит из нескольких вкладок - ввод данных о пользователе, организации и т.д.; табличка "чек-лист" (что в данный момент происходит с базой); перезапуск.
Проблема: при переключении на вкладку с чек-листом форма не успевает перерисоваться и юзер наблюдает рамку от таблицы всё время, пока данные пишутся в базу. Пробовал сделать с подключением обработчика ожидания, так платформа уходит в глубокую несознанку и выводится оттуда перезапуском отладки / прибиванием в диспетчере.

Как реализовать слегка отложенный запуск процедуры записи данных, чтобы пользователь увидел чек-лист?
1 _Дайвер_
 
06.04.18
12:32
(0) А юзер на чем работает?
2 _Дайвер_
 
06.04.18
12:36
Вообще сначало покажи чек-лист, и только потом записывай что тебе надо, а не во время переключения вкладок! Кнопку отдельную добавь на форму "Чек-лист" (Записать). Посмотрел, записал, проблем нет
3 _Дайвер_
 
06.04.18
12:44
Либо

Глобальный контекст (Global context)
ПодключитьОбработчикОжидания (AttachIdleHandler)
Синтаксис:

ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>)
Параметры:

<ИмяПроцедуры> (обязательный)

Тип: Строка.
Имя экспортируемой процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля.
Процедура должна располагаться на клиенте.
Процедура не должна содержать параметров.
<Интервал> (обязательный)

Тип: Число.
Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
<Однократно> (необязательный)

Тип: Булево.
Признак однократного выполнения обработчика ожидания.
Истина - указанный обработчик ожидания будет выполнен один раз.
Значение по умолчанию: Ложь.
Описание:

Подключает вызов указанной процедуры модуля управляемого приложения (модуля обычного приложения) или глобального общего модуля через определенный интервал времени. Вызов будет осуществляться только в "состоянии покоя", то есть в тот момент, когда программа не выполняет никаких действий.
Во время временной блокировки, вызванной методом ЗаблокироватьРаботуПользователя или соответствующей командой "Временная блокировка", обработчики ожидания не выполняются.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

Вызов обработчика ожидания продолжается, пока система не завершит работу или пока не будет вызван метод глобального контекста ОтключитьОбработчикОжидания.
Пример:

Процедура ОтчетОпродажахЗаДень()
// ...

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

//...

ПодключитьОбработчикОжидания("ОтчетОпродажахЗаДень", 60); // каждую минуту




См. также:

Глобальный контекст, метод ОтключитьОбработчикОжидания
4 drcrasher
 
06.04.18
12:46
(2) я правильно понял, что ты предлагаешь нажать кнопку "начать заполнение базы" и показать вторую вкладку с табличкой, а потом, уже на второй вкладке ещё раз нажать кнопку, например, "заполнить базу"?
так себе идея. я собственно хотел через обработчик ожидания запускать заполнение иб
5 drcrasher
 
06.04.18
12:47
(3)  >> Пробовал сделать с подключением обработчика ожидания, так платформа уходит в глубокую несознанку и выводится оттуда перезапуском отладки / прибиванием в диспетчере.
6 Вафель
 
06.04.18
12:55
нужно делать через рег. задание
7 drcrasher
 
06.04.18
12:56
(6) зачем?
8 drcrasher
 
06.04.18
12:57
(6) хотя, пожалуй, ты прав. переделаю на рег задание
9 Вафель
 
06.04.18
12:59
(8) А по другому никак нельзя
10 drcrasher
 
06.04.18
13:07
(9) стоп, а как проверить завершение фонового?
11 Вафель
 
06.04.18
13:11
12 drcrasher
 
06.04.18
14:01
(11) спасибо
13 drcrasher
 
06.04.18
14:16
(11) не взлетит. в бсп ожидание завершения через обработчик - см (5)
14 Вафель
 
06.04.18
14:37
(13) Ну как то же прогресс бар отображается
15 drcrasher
 
06.04.18
15:09
(14) у тебя режим открытия окна "независимый", а у меня - блокировка интерфейса
16 Вафель
 
06.04.18
15:15
(15) нормально работает