Имя: Пароль:
1C
 
оповещение..или задача...или бизнес-процесс?
0 caress
 
09.11.07
17:38
Как сделать чтоб при записи документа определенной группе пользователей отправлялось сообщение?
1 Гений 1С
 
гуру
09.11.07
17:39
регистр сведений + его чтение через обработка оповещения. Дешево и сердито.
И не надо этот маразм с БП юзать.
2 caress
 
09.11.07
17:44
to    Гений 1С

Аобработка оповещания..это обпработка события ...единичного или как в 7-ке обработка ожидания....сканирует систему с какой-то заданной периодичностью?........сорь может глупый вопрос ...я новичокккк!!!!!
3 Гений 1С
 
гуру
09.11.07
17:53
(2) РТФМ Открой


ПодключитьОбработчикОповещения (AttachNotificationHandler)
Глобальный контекст
ПодключитьОбработчикОповещения (AttachNotificationHandler)
Синтаксис:
ПодключитьОбработчикОповещения(<Имя процедуры>)
Параметры:
<Имя процедуры> (обязательный)
Тип: Строка. Имя процедуры модуля приложения или общего модуля.
Описание:
Подключает вызов указанной процедуры модуля приложения или общего модуля для обработки оповещения при вызове метода Оповестить(). Процедура должна иметь три параметра - <Имя события>, <Параметр>, <Источник>.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
Процедура глОбработкаОповещения(Событие, Параметр, Источник) Экспорт
   Сообщить("глОбработкаОповещения ИмяСобытия = " + Событие);
КонецПроцедуры


Процедура ПриНачалеРаботыСистемы()
   //...
   ПодключитьОбработчикОповещения("глОбработкаОповещения");
   //...
КонецПроцедуры // ПриНачалеРаботыСистемы()
См. также:
Глобальный контекст, метод ОтключитьОбработчикОповещения
Глобальный контекст, метод Оповестить
4 caress
 
12.11.07
16:09
to  Гений 1С
3 - 09.11.07 - 17:53

Так сообщение вызывается только локально...на машине на которой допустим проводиться документ!!!!!!!!!!!!!!!
5 Kerk
 
12.11.07
16:15
Процедура ПриНачалеРаботыСистемы()
   //...

   ПодключитьОбработчикОповещения("глОбработкаОповещения");
   //...

КонецПроцедуры // ПриНачалеРаботыСистемы()

Будет выполняться у каждого пользователя.  А оповещать или нет это уже тебе решать.
6 Jolly Roger
 
12.11.07
16:20
(0) Задача
7 caress
 
12.11.07
16:23
to Kerk

В модуле приложений пишу

Процедура ПриНачалеРаботыСистемы()
   ПодключитьОбработчикОповещения("глОбработкаОповещения");
  ............................
Процедура глОбработкаОповещения(Событие, Параметр, Источник) Экспорт
  Если Событие="ПроведениеДокумента" Тогда
     сообщить("глОбработкаОповещения ИмяСобытия = " + Событие);
  КонецЕсли;
КонецПроцедуры

В форме документа
Процедура ПослеЗаписи()
  Оповестить("ПроведениеДокумента",,ЭтотОбъект.Ссылка);
КонецПроцедуры;



сообщение появляется только у юзера который записывает документ!!!
8 caress
 
12.11.07
16:24
возможно я что-то делаю не так конечно.......первую неделю .......работаю с v8.........помоги......теееее..............
9 Kerk
 
12.11.07
16:28
В процедуре Процедура ПослеЗаписи() должно куда-то (куда сам захочешь) записываться, что нужно сделать оповещение.

В ппроцедуре Процедура глОбработкаОповещения(Событие, Параметр, Источник) Экспорт нужно из записей, которые делаются в ПослеЗаписи(), выбираться новые и только тогда сообщаться.

Может это не совсем корректно... но должно работать... Гений 1С нас рассудит :)
10 Kerk
 
12.11.07
16:32
Относительно ПодключитьОбработчикОповещения я не корректно написал пост (9)... :(
11 caress
 
12.11.07
16:32
записываю в регистр сведений....в обработке оповещания........ичтаю из регистра...результат тот же.....
//почитай CoderDecoder
13 - 26.09.06 - 23:13
12 caress
 
12.11.07
16:39
to   Kerk
10 - 12.11.07 - 16:32
сорри ссылку не дала...
v8: Проигрывание медиа-файла при появлении нового заказа
13 перцептрон
 
12.11.07
16:47
(0) а де голосувалка?
1. Оповещением [X]
14 caress
 
12.11.07
16:54
(13) строчек кода мало...попробуй набери......скажи где косяк.....и зработает ли у тебя оповещанием..(
15 Kerk
 
12.11.07
17:10
(12) ну похоже ПодключитьОбработчикОповещения не поможет.
Можно через подключитьОбработчикОжидания придется делать или как-то через задачи как v8: Проигрывание медиа-файла при появлении нового заказа пост (21)

Я сам хотел сделать такую вещь, только планы были грандиозные, а времени не было, так все и осталось в планах :)
16 перцептрон
 
12.11.07
17:11
(14) я ещё не юзал оповещение. Щаз попробую
17 Kerk
 
12.11.07
17:17
(16) ждем результатов. :) я тоже не юзал.
18 перцептрон
 
12.11.07
17:22
(14) странно, но у меня работает
19 перцептрон
 
12.11.07
17:24
//В Общем модуле
Процедура йа(имя, пар, ист) экспорт
   Сообщить("йа");
КонецПроцедуры

//В модуле конфы
Процедура ПриНачалеРаботыСистемы()
   ПодключитьОбработчикОповещения("йа");
   Оповестить("1", 1, );
КонецПроцедуры
20 перцептрон
 
12.11.07
17:32
caress, а у тебя ПослеЗаписи() вообще срабатывает?
Вставь в ПослеЗаписи() Сообщить("123123");
21 перцептрон
 
12.11.07
17:34
+(20) чо то мне кажеться что ПослеЗаписи() либо не в форме документа.
Либо в форме, но ОбработчикСобытийФормы не назначен ПослеЗаписи()
22 caress
 
12.11.07
17:54
(21) конечно работает...в-первую очередь проверила:))
23 caress
 
12.11.07
17:56
(19) я б удивилась если б у тебя не заработало..............ты ж в процед приначале работы системы пишешь оповестить........!!!!
24 caress
 
12.11.07
17:57
+(21) После записи...работает:)
25 перцептрон
 
12.11.07
18:05
(24) что я запутался.... ПослеЗаписи() работает, а Оповещение - не происходит?
26 caress
 
12.11.07
18:08
послезаписи срабатывает.....те ПослеЗаписи() Сообщить("123123");
сообщает 123123.........а оповещение...я кидала куски кода см выше.......появляется только на компе на котором записывается док..те локально
27 Гений 1С
 
гуру
12.11.07
18:11
(6) Задача = гуано...
28 caress
 
12.11.07
18:13
(27) помоги плиз...посмотри в чем косяк..или что делать.....сказали ты самый умный:))
29 Гений 1С
 
гуру
12.11.07
18:20
(28) самый умный = самый занятый... ссори, учить первоклашек читать стремно
30 перцептрон
 
12.11.07
18:43
(27) + и БП - гуано
31 перцептрон
 
12.11.07
18:44
(26) "появляется только на компе на котором записывается док..те локально"
тут уже есть над чем подумать...
32 перцептрон
 
12.11.07
18:58
Значит события бывают только локальными.

Вырисовывенться некрасивая картина - буд-то пользователи не могут "влиять" друг на друга
33 caress
 
12.11.07
20:47
(29) Гений..........была еще одна ветка..где я говорила что обработка ожидания мне не подходит......этот метод забраковал мой начальник ..........через обработчикоповещаний...читай выше...не получается....через нетсент тоже не могу......закрыто...вот и спрашиваю как делать.......если у меня ручки кривые+читать не умею и черезобработчик оповещания отправляются сообщения всем пользователям....то скажи что я делаю не так...куски кода я тоже кидала смотри выше......разве форум не для этого предназначен...чтоб помогать.......а не кричаить какой я умный разумный.......и при этом ничего не отвечать толком!
сорь за резкое высказывания.......невры сдают после дня мучений над етой фигнеййй
34 caress
 
12.11.07
20:53
(33)+Задачи и БП ты сам говорил не стоит юзать для етого...смотри(1)
35 Злопчинский
 
12.11.07
20:56
Вы напрасно думаете, что оповещение при записи нового документа вам поможет...
Отошел юзер от компа - не увидел оповещение...
Оповещение было - оно юзера затрахало - он их жмакает не читая...
36 caress
 
12.11.07
22:31
(35)Ваше предложение?
37 Шурик71
 
12.11.07
23:54
Не слушай их - они тебя плохому научат :))
и начальника не слушай :))

Тебе нужно:
- использовать задачи (бизнес-процессы затрагивать не обязательно)
- механизм адресации для разделения сообщений по ролям
- обработчик ОЖИДАНИЯ (да-да, ее самую)
- в обработчике ожидания - выбирать задачи ПОЛЬЗОВАТЕЛЯ. Это для пользователя будет крошечная выборка. Сильно систему грузить не будет
- при обнаружении задачи - выводить окошко какой-нибудь обработки для показа информации. Если такого оповещения достаточно - можно сразу задачу делать выполненой; иначе - ставить отметку о выполнении задачи, например, при нажатии какой-нибудь кнопки в обработке (к примеру, "Да, я все ПОНЯЛ!" )..

Другой вариант - использование сторонних программ:команда системы "net send", отправка сообщения по эл. почте, ICQ..

Принципиально третьего  варианта не будет. Другая машина не увидит чужого события, если на ней не будет работать какой-либо  daemon, который по сути своей та же обработка ожидания. Если уж _очень_ хочется - ищи какие-либо внешние компоненты, отправляющие/ловящие сообщения по TCP...

IMXO, все кроме первого варианта - изврат.
38 Валерыч
 
13.11.07
02:59
(37) присодиняюсь.
Можно еще добавить, что в ТиС на 7.7 что-то подобное было (обмен ссобщениями между пользователями) Там было сделано через справочник и периодический опрос его через обработка ожидания. В 8-ек лучше использовать регистр сведений или задачи, потому как у задач гибче адресация
39 Папа Гапа
 
13.11.07
10:11
40 Папа Гапа
 
13.11.07
10:12
41 caress
 
13.11.07
10:31
(38) в том и проблема  что в 7-ке я делала обмен сообщениями именно через обработчик ожидания........у меня база дбфная плюс очч много юзеров:(......при подключении к базе больше 50 юзеров она просто умирала..........после отелючения обработки ожидания...базе было тяжело...но она жила......Очень не хочется чтоб то же самое повторилосьв  восьмерке......поэтому и......
42 перцептрон
 
13.11.07
11:11
(36) Можно писать события в регистрСведений, в обработкеОжидания() делать СрезПоследних() по измерению Пользователь
43 перцептрон
 
13.11.07
11:15
(42) + хотя имхо ещё лучше в Справочник.Пользователи писать в Реквизит ЕстьСобытия=Истина, что бы обработкаОжидания лишний раз не обращалась к региструСведений
44 caress
 
13.11.07
12:07
Кстать..опытные юзеры 8.1....отключали стандартную в УТ задачусоповещнанием..?..она тоже через обработкуожидания работает...базу не вешает?.....