Имя: Пароль:
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, спасибо!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn