Есть такая задачка: по одному событию отправляются сообщения нескольким пользователям и открываются периодически, напоминая о ДЕЛЕ(определённое событие). ДЕЛО может сделать любой из тех, кому пришли сообщения. После того, как ДЕЛО сделано, все сообщения закрываются и больше не появляются.
Реализовано с помощью документа, но как закрыть все документы из-под одного пользователя???
Может кто подскажет что-нить?
кругом одни ...
могут ли авторы изъяснятся кратко и ясно?
> закрыть все документы из-под одного пользователя???
варианты:
- иеются в виду документы открытые в сеансе текущего пользователя и эти документы должны быть закрыты в этом же сеансе?
- имеются в виду открытые документы в сеансах других пользователей и их надо закрыть из постороннего сеанса?
..
рекомендуется посмотреть здесь http://www.rikcenter.ru/downloads.php, пункт 11
Изначально неверная стратегия оповещения. Я бы колдовал в обработке ожидания и использовал внешние файлы. Началось ДЕЛО - появился файл. Как только ДЕЛО сделано - генерирую ГДЕ-ТО команду, которая говорит, что пора сматываться. Команда - это тоже, по сути, внешний файл. Все в моей программе просто бы ожидало появление таких вот командных файлов и реагировало бы на них адекватно.
Если кажется сложным, то еще вариант - сносить систему, чтобы документы у пользователей гарантированно закрылись :)
> генерирую ГДЕ-ТО команду, которая говорит, что пора сматываться.
ха! пишешь одно, а делаешь другое!
ОбработкаОжидания - нафига мне что-то регулярно проверять? мне хочется от этого "что-то " получить сигнал, тем более если это "что-то" нерегулярное...
можно проверять проведение документа из модуля формы с помощью форма.обработкаожидания только запрос должен быть через Если текущийдокумент().проведен()=1 Тогда
форма.закрыть()
Че, вообще, опрос чего-то в цикле - это вполне стандартный прием. В микропроцессорной технике - вообще чуть ли не единственный способ управления процессами.
А вы мне лучше скажите есть ли на примете обработка, которая "расскажет", кто открыл в данный момент конкретный док (естественно в режиме редактирования).
1. Поэлегантнее, можно хранить список открываемых документов, а чтобы не править все модули доков, подправить глобально вызываемые процедуры, типа глПроверкаРазрешенияРедактирования() и ОткрытьЖурнал()
2. "..... Если автору нужно получить список не открытых , а заблокированных документов (можно и на просмотр док открывать) и база на SQL Server , то можно блокировки отслеживать средствами SQL Server
> Че, вообще, опрос чего-то в цикле - это вполне стандартный прием. В микропроцессорной технике - вообще чуть ли не единственный способ управления процессами.
//
вы чего, совсем тупые...?
мне не надо постоянно мониторить! у меня событие - НЕРЕГУЛЯРНОЕ и ВАЖНОЕ! и дергать обработкойожидания нет никакого интересу... моя задача - не проверять! а НЕ ПРОПУСТИТЬ!
то что ты предлагаешь: это типа стрельбы дробью каждые 5 минут широким веером в течение года, а мне стрельнуть-то надо всего один раз по команде "начался охотничий сезон" - причем заметь! не я каждые 5 минут спрашиваю "начался охсезон?.. начался охсезон! ....начался охсезон", а мне по матюгальнику объявили на весь лес: товарищи начался охсезон!
:) Как ни странно, когда я впервые увидел программу построенную по "такому" принципу, я долго ругался. А было это в КБ одном, которое ЧПУ программит. Но сейчас я знаю точно, что 90% любого ПО так и работает, опрашивая в цикле на каком-то уровне какой-то стек состояния. 1С - не исключение, потому что разные события виндовские - это о том же. Так что для всех наших адресных посылок на высоком уровне - где-то внизу подло крутятся опрашивающие циклы, которые их ожидают постоянно. Это селяви на самом деле...