Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Сервис.ВыполнитьГлобальнуюПроцедуру() (число прочтений - 20644 )
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Сервис.ВыполнитьГлобальнуюПроцедуру()
06. Августа 2006 :: 17:24
Печать  
Чтобы не крутили пальцем у виска, сразу скаж: Выполнить указанную процедуру/функция у всех активных пользователей или (еще лучше) у выбранных пользователей (ползователя).
Что скажут господа разработчики, возможно ли дождаться такого?
  

Константин
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #1 - 07. Августа 2006 :: 05:38
Печать  
А ты сам подумай. Не у всех активных пользователей может быть загружена компонента.
  

FormEx developer
Наверх
www  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #2 - 07. Августа 2006 :: 13:45
Печать  
Цитата:
Не у всех активных пользователей может быть загружена компонента.

У кого загружена.
  

Константин
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #3 - 07. Августа 2006 :: 13:51
Печать  
метод конечно нужный и востребованный, но никак не пойму - чем его реализация может принципиально отличаться от пертурбаций с ОбработкойОжидания() или посылки/обработки внешних событий?.. Опять же для последнего, насколько я понимаю, нужно использовать какой-нибудь сетевой протокол, или создавать свой, опять же порты - какие использовать?..

хоть тресни - не пойму - сам то ты как эту методику представляешь? Озадачен
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #4 - 07. Августа 2006 :: 15:11
Печать  
DrACe писал(а) 07. Августа 2006 :: 13:51:
хоть тресни - не пойму - сам то ты как эту методику представляешь? Озадачен

Подозреваю, что на уровне дырявых абстракций.
Кнопку нажал - мешок на горбу Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #5 - 07. Августа 2006 :: 20:11
Печать  
В принципе, все это запросто решаемо.
Те же майлслоты, например - что может быть проще.

Или свой сервер приложений сделать - это интереснее.
Но думать надо больше.

Сейчас вот еще можно писать сервера для компоненты Степана.

Уже тыщу лет существует компонента раруса для обмена сообщениями через MSMQ.
Только пользовался ли ей кто-нибудь хоть однажды? хз.



А абстракция, по-любому будет дырявой.
Из-за протоколов, сетевых экранов и т.д.

Короче, все как всегда.


P.S.
Тока у меня через неделю отпуск (ха-ха).
Дембель в маю - дембель в маю - дембель и все по ... пиип...
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #6 - 07. Августа 2006 :: 20:16
Печать  
kms писал(а) 07. Августа 2006 :: 20:11:
Уже тыщу лет существует компонента раруса для обмена сообщениями через MSMQ.


Прошу прощения, это не у раруса, а у иксов.
И еще не уверен, что в она фриварная.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #7 - 08. Августа 2006 :: 08:35
Печать  
kms писал(а) 07. Августа 2006 :: 20:16:

Прошу прощения, это не у раруса, а у иксов.
И еще не уверен, что в она фриварная.

Действительно у Икс-технологии.
Они декларировали, что компонента распространяется бесплатно по запросу.
Когда-то я их закидал запросами - и ничего. Никакого ответа - ни положительного, ни отрицательного.
Зато теперь для обмена через MSMQ есть EventProxy.dll Улыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #8 - 08. Августа 2006 :: 17:18
Печать  
Да, задуматься есть над чем. А если пойти через наоборот, не от меня всем, а от всех ко мне?
Ведь журнал регистрации отслеживает все события. Вот как бы их отловить, причем фильтрованно: напр. проведение документа. Периодический просмотр MLG до конца проблемы не решит. Как бы это в "он-лайн" отследить? Или движение регистров, операции,  тогда и модификации при прямом доступе к БД можно отловить.
  

Константин
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #9 - 09. Августа 2006 :: 03:02
Печать  
Асинхронный обмен данными можно сделать на NetaInet.dll  (http://1c.proclub.ru/modules/mydownloads/personal.php?cid=81&lid=2691). Хоть от от одного ко всем, хоть от всех к одному, хоть от всех ко всем  (это уже будет DOS-атака Улыбка)).  Геморно правда, но можно. Самое х#ровое во всём этом - это то, что 1С ни разу не многопоточная система, и при асинхроне происходят иногда странные глюки. Забавно наблюдать, как валятся какие-то мессаги в окне сообщений, в то время как ты шарахаешься по менюшкам.
И что касается отладки...  ну, кто хоть раз в жизни отлаживал асинхронные системы, тот меня поймёт  Улыбка
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #10 - 09. Августа 2006 :: 09:44
Печать  
ADirks писал(а) 09. Августа 2006 :: 03:02:
наблюдать, как валятся какие-то мессаги в окне сообщений  Улыбка

В принципе мне не нужны сообщения и т.п. Я хочу только одного: отловить момоент изменения (delete,insert,update) в выбранной таблице БД , напр. в регистре остатков, чтобы не делать периодически запрос к ней, а именно "получить сигнал"и уже по нему выполнить запрос
  

Константин
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #11 - 09. Августа 2006 :: 12:08
Печать  
Ну делай тогда тригер, а в тригере уже делай любые дествия, например передавай сообщения 1С-ке
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #12 - 09. Августа 2006 :: 18:17
Печать  
Цитата:
передавай сообщения 1С-ке

Не нужно мне 1С-ке сообщения делать, мне нужно их от нее получать: "Дружок, а у тебя в файле "Абвгд" изменения произошли, какой-то другой юзер это сделал!
"Абвгд" - естественно тот файл, ФАКТ изменения которого необходимо отслеживать, и файлов может быть несколько. Имя юзера совершенно мне не нужно.
А уж после получения сигнала я сделаю то, что мне нужно. Главное - звонок.
  

Константин
Наверх
 
IP записан
 
Valet
Full Member
***
Отсутствует



Сообщений: 141
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #13 - 10. Августа 2006 :: 06:35
Печать  
Действительно ставишь тригер на любое событие.
чтобы при срабатывании писал инфу в таблицу (свою или справочник)
затем в обработке ожидания проверяешь наличие инфы в этой таблицы.
Если есть инфа, то звонок. Пехота вперед...
  

/ Лень - двигатель прогресса. /
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сервис.ВыполнитьГлобальнуюПроцедуру()
Ответ #14 - 10. Августа 2006 :: 06:41
Печать  
Кстати, забавно, что 1С проверяет наличие изменений именно методом, описанным Valet. Ужас
Код
Выбрать все
Select NETCHGCN from _1SUSERS(NOLOCK)
 


и никаких триггеров.


Но только это опять вариация с ОбработкойОжидания.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать