Имя: Пароль:
1C
1С v8
Выполнить процедуру после закрытия формы
,
0 orangekrs
 
19.03.15
08:17
Вводные данные: 1С8, обычные формы, конфа весовой терминал. Делаю интеграцию с видеосервером, а именно вывод надписей поверх видеоряда (надписи берутся из документа). При закрытии формы выполняется процедура, которая через http соединение передает параметры надписи и та в свою очереь включается на видеосервере. Неободимо через, например, 3 секунды запустить процедуру, которая отключит вывод этой надписи. А как это можно сделать ?
1 asady
 
19.03.15
08:24
(0) я бы делал через регламентное задание которое запускается каждые 3 сек. и проверяет регистр сведений с надписями для видеоряда.
При закрытии формы пишем в этот регистр и всё - остальное сделает регламентное задание
2 ам794123
 
19.03.15
08:28
как-то так:

Процедура ПриЗакрытии()
    // включим
    ВключитьНадписьНаВидиосервере(ПараметрыНадписи);
    // подождем 3 сек
    ТекущаяДата = ТекущаяДата();
    Пока ТекущаяДата() < ТекущаяДата + 3 Цикл
    КонецЦикла;
    // отключим
    ОтключитьНадписьНаВидиосервере();
КонецПроцедуры
3 kosts
 
19.03.15
08:29
(0)  Почему именно 3 сек. Отключай сразу и все дела. С другой сторону можно глобальное ожидание задействовать.
4 orangekrs
 
19.03.15
09:05
(1) регламентное задание в файловой базе будет автоматически выполнятся ?

(2) И в таком случае форма будет закрываться в течение 3-х секунд, а пользователь будет  думать, что она зависла

(3) Если отключать сразу, то при просмотре архива там просто что-то мельнет в уголке кадра. Задержка нужна, чтобы надпись посветилась на записи..
5 WebberNSK
 
19.03.15
09:38
(4)

>>> регламентное задание в файловой базе будет автоматически выполнятся ?

в современных конфигурациях - да

>>> И в таком случае форма будет закрываться в течение 3-х секунд, а пользователь будет  думать, что она зависла

да
6 kosts
 
19.03.15
09:43

// Начинает проверку динамического обновления конфигурации ИБ
//
Процедура НачатьПроверкуДинамическогоОбновленияИБ()Экспорт
    
    // проверка дин. обновления конфигурации каждые 20 мин.
    ПодключитьОбработчикОжидания("ОбработчикОжиданияПроверкиДинамическогоИзмененияИБ", 20 * 60);

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

// Завершает проверку динамического обновления конфигурации ИБ
//
Процедура ЗавершитьПроверкуДинамическогоОбновленияИБ()Экспорт

    // Отключим соответствующий обработчик ожидания
    ОтключитьОбработчикОжидания("ОбработчикОжиданияПроверкиДинамическогоИзмененияИБ");

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

7 kosts
 
19.03.15
09:44

Процедура ОбработчикОжиданияПроверкиДинамическогоИзмененияИБ() Экспорт

    // Если в конфигурации после старта текущего сеанса что-то изменилось
    Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда
//
    КонецЕсли;

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

8 orangekrs
 
19.03.15
11:34
М... (6) и (7) это мне ?
Вообщем, конфа-то не особо современная. Не сталкивался до этого с регламентными заданиями. Нашел сейчас в конфе общий модуль "Модуль регламентных заданий", Добавил в него свою процедуру, создал объект конфы регламентные задания, указал в объекте свою процедуру, в расписание поставил каждые 5сек...И...ничего не происходит. Я что-то упустил ?
9 orangekrs
 
19.03.15
11:37
А..(6) и (7) Т.е.  можно попробовать ПодключитьОбработчикОжидания("Отключить надпись",3);   ?
10 orangekrs
 
19.03.15
11:41
Да, появилась мысль через обработчик ожидания запускать процедуру отключитьнадпись, которая уже будет из регистра получать пора ли отключать надпись. asady, kosts, спасибо!
Программист всегда исправляет последнюю ошибку.