Вход | Регистрация


1С:Предприятие ::

Метки:Приемы программирования

Несколько ОбработокОжидания ?

Я
   wind_wail
16.06.04 - 16:59
Решил использовать функцию ОбработкаОжидания для удаления "ненужных" документов.
Вопрос: если я запущу свою ОбработкуОжидания, а в это время будет запущена какая-то другая, что произойдет?
Насколько я понял, повозившись с ОбработкамиОжидания, последняя затирает все предыдущие, я прав ? Если да, то как оптимально это затирание обойти ?
Заранее спасибо.
WindWail
 
  Рекламное место пустует
   Рупор абсурда
 
1 - 16.06.04 - 17:03
Придётся разрулить всё одной ...
   wind_wail
2 - 16.06.04 - 17:06
Я то разрулю, мне не сложно :)
но вот прикинь из другого места конфы запуститься какая-нибудь другая безобидная ОбработкаОжидания... и мою так Бац! Бац!... и усе...
   Рупор абсурда
 
3 - 16.06.04 - 17:10
(2) А другие места конфы защищены от тебя паролем?
   LOSS
 
4 - 16.06.04 - 17:11
Выбирай.... таблетку НЕО
   wind_wail
5 - 16.06.04 - 17:25
(3) нет, не защищены.
   AlexMan
 
6 - 16.06.04 - 17:28
(0) Войди монопольно.
   wind_wail
7 - 16.06.04 - 17:31
(6) Я не понимаю о чем вы ? Я намерен использовать запуск ОБработкиОжидания из журнала документов. Причем тут пароли и монопольный доступ? Это должно будет работать у всех пользователей. Я могу изменять конфу, как захочу...
   Рупор абсурда
 
8 - 16.06.04 - 17:32
(6) Монопенисуально!
   wind_wail
9 - 16.06.04 - 17:33
(8) Свежее решение...
   AlexMan
 
10 - 16.06.04 - 17:37
так речь идет о пометке удаления или об удалении?
 
 
   wind_wail
11 - 16.06.04 - 17:56
(10) Речь идет о том, что если я запущу свою обработку ожидания, то она может по****ть другую обработку, которая в данный момент запущена.
   AlexMan
 
12 - 16.06.04 - 17:58
Так а попробывать слабо?
   wind_wail
13 - 16.06.04 - 18:05
(12) Попробовал. Оно имеет место (убивания одноф ОбработкиОжидания другой)
Вот след код глобального модуля.

Перем КонтекстОбр;
Перем Х,У,З;

Процедура ПриНачалеРаботыСистемы()
    Х=0;У=0;З=0;
    ОбработкаОжидания("глОбработ",1);
    ОбработкаОжидания("глОбработ2",1);
    ОбработкаОжидания("глОбработ3",1);
    Сообщить("Вроде должна");
КонецПроцедуры

Процедура глОбработ()
    Х=Х+1;
    Если Х = 4 тогда
        ОбработкаОжидания("глОбработ",0);
    КонецЕсли;
КонецПроцедуры 

Процедура глОбработ2()
    У=У+1;
    Если У = 4 тогда
        ОбработкаОжидания("глОбработ2",0);
    КонецЕсли;
КонецПроцедуры

Процедура глОбработ3()
    З=З+1;
    Если З = 4 тогда
        ОбработкаОжидания("глОбработ3",0);
    КонецЕсли;
КонецПроцедуры


В результате (в отладчике)
Х=0,У=0,З=0
Х=0,У=0,З=1
Х=0,У=0,З=2
Х=0,У=0,З=3
Х=0,У=0,З=4
Х=0,У=0,З=4
Х=0,У=0,З=4
Х=0,У=0,З=4
... и т.д. до бесконечности.
Следовательно: делаем вывод, что первые две обработкиОжидания были просто безжалостно убиты.
Вопрос: На*** тогда нужны ОбработкиОжидания, если твоя обработка может быть убита другой обработкой в любой момент
   wind_wail
14 - 16.06.04 - 18:25
О, а может быть есть какие-то внешние компоненты, которые выполняют аналогичные функции ?
   Asmody
 
15 - 16.06.04 - 22:01
   SnarkHunter
 
16 - 16.06.04 - 22:10
I like woodpeckers...
   Asmody
 
17 - 16.06.04 - 22:31
   427
 
18 - 17.06.04 - 07:21
Второй закон программирования - если нельзя, но очень хочется, то можно...
   mszsuz
 
19 - 17.06.04 - 07:33
Ну чего с ответом тянете? Фича то недокументированная - почитать про неё негде ...
(0) В каждой форме можно задать свою обработку ожидания ч/з предопределенный атрибут Форма. Например, Форма.ОбработкаОжидания("ТвояПроцедура",5);
Или можно написать менеджер, например как здесь:
http://1c.hippo.ru/cgi-bin/predownl.cgi?id=1510
   427
 
20 - 17.06.04 - 07:40
Его это не спасет... А если тупой юсер закроет форму?
Ему надо в глобальнике...

Ежели товарисч туп, то он не допрет, что можно одной обработкойОжидания запускать диспетчер, который и будет разруливать несколько процедур... Он же хочет не проверяя, есть ли уже обработчик - просто запустить следующий ....
   mszsuz
 
21 - 17.06.04 - 09:44
>А если тупой юсер закроет форму?
// в модуле формы
Процедура ПриЗакрытии()
    Если Константа.ВасяРазрешил=0 Тогда
        Предупреждение("О попытке саботажа будет доложено руководству!",5);
        СтатусВозврата(0);    Возврат;
    КонецЕсли;
КонецПроцедуры



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует