Имя: Пароль:
1C
1С v8
Дежурный механизм.
,
0 antihacker
 
13.01.15
05:45
Всем привет !
Есть задача. Нужен механизм который периодчностью проверяют все изменения в базе данных и оповещает пользователя. Если с компьютер1 пользователь1 добавил новый документ, то пользователь2 на компьютере2 получает оповещение.

Что то вроде
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

КонецПроцедуры

Куда копать ?
8 MiniMuk
 
13.01.15
06:42
(6) не ушпел...
9 antihacker
 
13.01.15
06:42
Конфига 100-ная самописная. Задача простая. Добавил новый документ и другой пользователь должен получить оповещение. Обновление формы списка не пойдет. Так как надо держать эту фому постоянно открытым и смотреть что там происходит. И потом не говорил что он не знал что вчера был добавлен новый документ.

Мляяя ребята что тут сложного для понятия ?
10 MiniMuk
 
13.01.15
06:43
Можно еще чтоб пользователь 1 ходил к пользователю пить чай и  заодно говорил. А что будет если пользователь2 сядет за компьютер3?
11 Рэйв
 
13.01.15
06:44
(9)>>И потом не говорил что он не знал что вчера был добавлен новый документ.


Какаято альтернатьвная реальность...
:-)
12 MiniMuk
 
13.01.15
06:44
(9) Еще можно прописать должностную инструкцию должен каждый час открывать форму 3 иначе штраф
13 Cube
 
13.01.15
06:46
(9) Вот и поговорили:
- Задача простая. Пользователя  надо оповестить об изменениях происходящие в базе.
- Сухо и не понятно. Опиши детальнее. Зачем надо оповещать пользователя 2?
- Задача простая. Добавил новый документ и другой пользователь должен получить оповещение.

Повтори мне ещё пару раз одно и то же, ага.
14 antihacker
 
13.01.15
06:46
Да да у каждой конторы своя реальность. Тем более если одни бабы....
15 MiniMuk
 
13.01.15
06:47
>Так как надо держать эту фому постоянно открытым
так надо вроде форму оповещения держать открытой. Формы управляемые? А то стандартное окошко оповещения можно задвинуть и никто не найдет
16 antihacker
 
13.01.15
06:49
Да, форма управляемая.

  Cube , тебя не узнаю. Что там не понятного ? Есть возможность оповестить другого пользователя об изменениях в базе . И все. Люди поняли иотвечают как могут.
17 MiniMuk
 
13.01.15
06:50
> И потом не говорил что он не знал что вчера был добавлен новый документ.
У пользователя есть работа, если он ее не выполняет 1с тут с ее оповещениями не поможет. Хочет работать смотрит но хочет зп не получает. Пользователь должен следить сам.
Давайте юристам поставим оповещелки что вышел новый закон.
Бухгалтерам оповещалку что надо зп рассчитать налоги выплатить.
Водителю напоминание машину заправить.
А покушать в туалет они на забывают сходить?
18 Cube
 
13.01.15
06:52
(16) "Что там не понятного ?"
Ты не говоришь ЗАЧЕМ это надо.
19 Славен
 
13.01.15
06:54
Да пилять с заданной периодичностью сканить жр, хранить последнее состояние и выдавать сообщение
20 antihacker
 
13.01.15
06:56
Ребята давайте решать свою задачу. Задачу программеров 1С. Есть механизм такой или нет ? Остальное нам не касается. Начальнику надо ответить как программист. а не как бунтарь. Можно или нет.

Куб, что значит зачем ? Мне сказали так надо и все. Далжна быть такая фича в программе и все.  

Славен, я ждал такого рода ответов. Можно по подробнее. Что значит сканить ЖР ? И что такое ЖР ?
21 Cube
 
13.01.15
07:00
(20) Ды ты, получается, не программист, а быдлокодер...
Надо решать задачи, а не тупо делать то, что скажут.
22 MiniMuk
 
13.01.15
07:00
можно все, в гараже собрать космический корабль. Только долго и дорого.
Какого пользователя оповещать, за компом или на складе бегающего. Почему он не может журнал сам посмотреть и нужна отдельная напоминалка, если у него открыта 1с почему не может открыть журнал? Напоминалки на запуск 1с надо делать?
23 batman69
 
13.01.15
07:01
(20) Спеца позови.
24 MiniMuk
 
13.01.15
07:04
25 antihacker
 
13.01.15
07:10
Когда ставят задачу надо грамотно ответить начальству. Есть такое и результат такое. Выбирать Им. Стоит на это тратится или нет. Вот хотел узнать. Собрать и проанализировать. Что к чему в этом плане в 1С. Конечно мог бы перебрать все возможнсти 1С и смотреть что подойдет или есть что вообще подойдет. А нафиг тогда форумы, где не могут направить куда нужно. В техничесокм плане. Куб, не забыл ? У каждой конторы своя реальность.
26 antihacker
 
13.01.15
07:12
А если юоист и бухгалтер придет и будет мне гвоворить как надо раюотать, то ессно я их пошлю.
27 Cube
 
13.01.15
07:15
(25) Ключевое слово "грамотно". Чтобы выдать оптимальный маршрут, надо знать точку назначения. А если тебе её не говорят, то что ты можешь посоветовать?
Если мне не веришь - почитай темы на мисте. Всегда в первых постах спрашивают "ЗАЧЕМ?", если ТС этого не раскрыл в топике. А для чего это спрашивают по-твоему? Для того, чтобы реально помочь...
28 ИС-2
 
naïve
13.01.15
07:18
(18) хотя ситуация - менеджер оформил реализацию, кладовщику приходит уведомление о необходимости отгрузки товара.

(0) Варианты: записывать изменения в план обмена, смотреть журнал регистрации на добавление/изменение новых объектов, взять механизм события из типовых конф.
Но будь готов к торможению системы. Поэтому можешь отправлять уведомления на почту
29 Cube
 
13.01.15
07:21
(28) "хотя ситуация - менеджер оформил реализацию, кладовщику приходит уведомление о необходимости отгрузки товара."
Когда к кладовщику придет покупатель, он и будет искать документ. Другой вариант - менеджер отправляет реализацию на принтер кладовщика.
Пример не удачный у тебя.
30 antihacker
 
13.01.15
07:24
Зачем зачем. Что бы пользователь получал оповещение о событиях. Вот так ставит задачу. И ВСЕ. Или начальству сказать - "Пусть обновляют каждый 5 минут форму списка. Это- их работа. Не курите мозги 1С тупой и по другому не может оповещать". Так ?
31 Рэйв
 
13.01.15
07:25
(28)Кладавщику должен прийти дядя с бумажкой и печатями, а не сообщение от 1с:-)
32 Рэйв
 
13.01.15
07:29
(30)>>Что бы пользователь получал оповещение о событиях.

Представляю себе этот кошмарный сон на своих 80 тыщ документов в день...
:-)

Да не надо ему получать никаких уведомлений. Вот это тебе надо доказать начальсту, а не сколько раз он должен обновить список. Потому что это кривая организация рабочего процесса.
33 antihacker
 
13.01.15
07:32
Рэйв, да да. Примерно так надо подходить. И сказать такая нагрузка есть. Возможно нужен дорогой мощный сервер. Ведь мне еще нужно вычислить примерно сколько денег надо на реализацию. Сервер, ИБП итд.

Или проще будет сказать. Не курите мозги 1С может и все. )
34 antihacker
 
13.01.15
07:32
то есть не может
35 Рэйв
 
13.01.15
07:33
(34)Иногда проще так и сказать, чем доказывать чтото:-) Даже если это неправда
36 Cube
 
13.01.15
07:34
(30) "Что бы пользователь получал оповещение о событиях."
Зачем пользователю получать оповещения о событиях-то? Что, так сложно задать такой простой вопрос начальству?
37 antihacker
 
13.01.15
07:45
А зачем такой тупой вопрос ? Или начальник поставив задачу на подчиненного должен подняться на пятый этаж и оповестить что у него новая задача, если сотка отклчена.
38 Cube
 
13.01.15
07:46
(37) Ясно. Продолжайте быдлокодить, напару с начальником.
Быдлокодить я не помогаю.
39 antihacker
 
13.01.15
07:46
Одно я понял. События надо регить в регистр сведения. И от туда брать для оповещение.
40 antihacker
 
13.01.15
07:48
Я лично не берусь судить кого то. Бог судя. У всех у нас есть свои тараканы в голове.
41 dk
 
13.01.15
07:48
про втыкать в журнал регистрации уже было?
42 Рэйв
 
13.01.15
07:54
(37)У вас задачи в 1С ставят?  Вообщето для этого есть куча удобных и красивых инструметов без изобретения веломонстров
43 antihacker
 
13.01.15
07:58
dk, вт чем писал Славен. Я то думаю что такое ЖР :-)
44 Sammo
 
13.01.15
07:59
От ответа на вопрос - зачем зависит реализация.
Например, необходимо реализовать реакцию в рамках некоего бизнес процесса прохождения документа.
Тогда, например, РС с фиксацией.

Например, сообщение про изменение документов. Реализация, например, план обмен с фиксацией всех изменений. Или подписка.
45 necro
 
13.01.15
08:12
ОбработкаОжидания() или как её там
46 antihacker
 
13.01.15
08:13
А куда ее ставить что бы он срабатывал автоматом в лбом окне в 1С ?
47 necro
 
13.01.15
08:18
(46) Куда-нибудь при начале работы системы наверное. Вот так называется:
ПодключитьОбработчикОжидания()
48 MiniMuk
 
13.01.15
08:21
(33) Если ты скажешь можно на надо денег, эффективный мендежер усышит можно сделать
49 batman69
 
13.01.15
08:22
(37) Ты бы как-то научился свои мысли четче формулировать, а то поток сознания какой-то. Читать тяжело.
50 MiniMuk
 
13.01.15
08:23
Открой типовую вытащи зуп например, вытащи там задачи/напоминалки
51 ИС-2
 
naïve
13.01.15
08:24
(29) с каких пор покупателей стали пускать на склад? Чтобы он потом еще, что-то взял на халяву. Вот так чудеса... Пример более чем реальный
(31) для чего покупателю ходить искать не понятного дядю
52 MiniMuk
 
13.01.15
08:26
(51) ну значит кладовщик вместо работы будет искать покупателя чтобы товар отдать.
В том же м-видео/эльдорадо мозг не парят выбил чек, подошел к кладовщику отдал чек забрал товар.
53 Лефмихалыч
 
13.01.15
08:31
(0) это не механизм должен быть, а бизнес процесс.
54 Рэйв
 
13.01.15
08:33
(51)Не важно кому.Кладовщик без бумажки все равно пошлет лесом
55 antihacker
 
13.01.15
08:36
Лефмихалыч , хотел сказать этим механизмом должен быть Бизнес процесс, который есть в конфиге 1с ?
56 antihacker
 
13.01.15
08:39
Лефмихалыч , стоит ли так усложнять ? Может достаточно и ПодключитьОбработчикОжидания ?
57 MiniMuk
 
13.01.15
08:39
(55) Он сказал что пока ты не опишешь бизнес процесс свой, путь  реализации будет неясен. Могут быть только варианты
58 senior
 
13.01.15
08:41
(0) все не читал, Журнал регистрации
59 IUnknown
 
13.01.15
08:44
(57)какие варианты?
60 Cube
 
13.01.15
08:44
Всё читал. Все, кто предлагает юзать журнал регистрации, - обдолбанные наркоманы. Есть более быстрые механизмы, тот же РС, например.

Но ТСу же всё равно, ему главное ответ услышать и всё. Потому что гладиолус!
61 Cube
 
13.01.15
08:46
(59) Вариант 1: Прострелить себе коленку.
Вариант 2. Прострелить начальнику коленку.
Вариант 3. Всё вышеперечисленное.
62 senior
 
13.01.15
08:48
(60) ты хочешь быстро? оповещение через сокет по TCP/IP поможет, а смысл дублировать в базе информацию ЖР.
63 antihacker
 
13.01.15
08:48
Cube, ошибаешься. Я не дурак что бы взяться за любой вриант. Но они подсказывают. По поводу ЖР согласен. Не совсем подходит. Говорят если вдруг система сильно загрузится. то он пропускают события. Даже если не так, все равно не подходит, так как мне нужен регистр где я сам мог бы назначать реквизитыи параметры.
64 El_Duke
 
гуру
13.01.15
08:50
(17) Согласен полностью

Для того чтобы узнать о добавлении документа надо формировать отчеты по счетам/регистрам, которые этими документами двигаются.С соответствующими отборами по контрагенту и проч. Изменение цифр покажет что что то добавлено.
Других путей нет.Вернее есть, но они от лукавого.
Ничто не помешает ленивому юзеру сказать что никакое оповещение ему не приходило.Придется создавать оповещение на оповещение.
Вывод: подход к решению задачи в корне не верен.Более того - он архивреден. Вы идете на поводу у юзера не желающего работать.А на этом пути юзер вас уделает как котенка.
65 Cube
 
13.01.15
08:50
(62) Почему дублировать? РС очищается после того, как был прочтен и всё...
66 Мимохожий Однако
 
13.01.15
08:53
(63)Сознательно одел себе шоры быдлокодера или не хочешь до конца понять цель своей затеи. Ничего личного.
А вариантов реализации может быть куча. От плана обмена до бизнес-процесса. В типовых конфигурациях и БСП есть достойные примеры. Достаточно выбрать нужный.
67 antihacker
 
13.01.15
08:54
El_Duke, почему перегибаете палку ?  Жизнь не белый и не черный. СЕРЫЙ !!!  Если РС механизма показывает что сообщение прочетно, то все. Плевать что сказал юзер. Ты читал и все.
68 ikea
 
13.01.15
08:55
(67) Я бы ещещ в РС добавил бы время и дату когда юзер читал сообщения. И инфу из РС не удалять, чтобы потом не было, что сообщения вообще не приходило.
69 Cube
 
13.01.15
08:55
(67) Пятнично. А если он на обеде был а в это время свет моргнул?
Костыли никогда не были в почете...
70 Cube
 
13.01.15
08:56
(68) И тут Остапа понесло...
71 Мимохожий Однако
 
13.01.15
08:57
Кроме оповещения должны быть зафиксированы действия пользователя. Самое удобное - бизнес процесс. Пока кнопку не нажал, что прочитал или выполнил, дальше процесс не идёт.
72 ikea
 
13.01.15
08:58
(69) Работал в похожих конторах, где на отчете было время и дата печати, потому что потом было не объяснить что отменили проведение документа и данные изменились. Бабский коллектив - это писец, они на тебя все что хочешь повесят.
73 antihacker
 
13.01.15
08:58
Если свет моргнул, то он запустит клиент. И поучит оповещение что есть новый документ. И он будет получать оповещение при каждом запуске если не открывал документ. А если документ добавлен во время работы. то там же через 5 секунгд или еще как то.
74 antihacker
 
13.01.15
09:00
ikea , ты попал в точку. По этому я все делаю и показываю как оно раюотает и гвоврю что это программа и никого не жалеет.
75 El_Duke
 
гуру
13.01.15
09:02
(67) Ты сейчас занимаешься пересадкой правого ейца на место левого.
Для отслеживания изменений в деятельность фирмы есть механизм отчетов.Все,точка.
Выдумки юзеров в стиле "не знал, не видел" пресекаются просто: сформируй детальный отчет и все увидишь.Здесь проблема ни разу не программистская, а административная. Одно показательное порево "забывчивого" юзера на виду у всех остальных решит проблему на долгие месяцы.
76 Рэйв
 
13.01.15
09:03
(72)Прикрутить историю изменения документов с отметкой кто, что и когда поменял - и пусть они между собой бодаются.Делов то.
77 Cube
 
13.01.15
09:03
(75) +1. Ещё закрывать старые периоды, чтобы никто не лазил там. И вообще мышь не проскочит.
78 antihacker
 
13.01.15
09:04
МимохожийОднако, а что если ПодключитьОбработчикОжидания каждый 5 секунд проверяет не открытие документы и оповещает, если конечно данный документ относится текущему пользователю ? Одно плохо. Проверяет надо не надо. А оелось бы что бы оповещение выходило когда есть конкретные события.
79 1976vas
 
13.01.15
09:09
(78) Плюс каждые 5 секунд подгружать систему.
80 Рэйв
 
13.01.15
09:09
(75)(77)Бесполезно:-)
ТС просто упертый. Ну хочет он потоптаться на этих граблях- так грех мешать. Пусть:-)
81 artems
 
13.01.15
09:10
Почитал посты автора в этой теме, заинтересовался, почитал другие темы ТС..... Это я вам скажу треш еще тот )))
82 batman69
 
13.01.15
09:14
(78) Еще раз! Учимся выражать мысли и грамотно писать!!! Ты бредишь!
83 El_Duke
 
гуру
13.01.15
09:15
(80) Упертый, заметно.
Непонятно зачем создавать тему, если не собираешься применять полученные советы ? Или тема создана в надежде получить ответы, которые подтвердят уже выбранное решение ? Опять же неясно зачем тогда советоваться ...
Ну да Бог с ним, у каждого свой путь.Если хочет трудным путем понять то что ему сказали - его выбор
84 Diversus
 
13.01.15
09:22
(0) Реализовывал пользовательские подписки на события в журнале регистрации изменений.
http://softonit.ru/journal.html
Цитата с сайта:

"Есть возможность добавить подписки на события, которые будут срабатывать при изменении выбранных объектов или реквизитов и оповещать ответственных пользователей. Т.е., например, если кассир отвечает за кассовые документы, и кто-то отличный от кассира поменял реквизит сумма в документе, то подсистему можно настроить так, что кассир будет оповещен о том, что объект или реквизит документа изменил другой пользователь. События подписок (оповещения) создаются при сжатии объектов из кэша, при этом пользователь получает уведомление только при изменении другим пользователем, собственные изменения не вызывают оповещений."
85 Бубка Гоп
 
13.01.15
09:24
(78) Подписка на событие, чтобы не проверять каждый раз. А вообще, конечно, бредовая задачка. Но не мне судить, у всех свое начальство и тараканы индивидуальны
86 Мимохожий Однако
 
13.01.15
09:43
Из пустого в порожнее - вечный двигатель.
88 Serg_1960
 
13.01.15
10:07
"Ребята давайте решать свою задачу. Задачу программеров 1С. Есть механизм такой или нет ? Остальное нам не касается."

Ок, не касается - так не касается.

Вариант А (все документы): включи версионирование и залезь со своим кодом в регистрсведений ВерсииОбъектов в ПередЗаписью() или ПриЗаписи();

Вариант Б (все изменения): подними РИБ-базу по плану обмена "Полный" и периодически делай анализ изменений через ВыбратьИзменения(). После анализа разрешаю УдалитьРегистрациюИзменений() :)
89 antihacker
 
13.01.15
11:44
Бубка Гоп , пробовал подписку. Другой пользователь с другого компа не получает уведомление. Только текущий. Или что то не то делаю
90 Fish
 
13.01.15
11:53
(89) Отсылай ему оповещение по почте.
91 pessok
 
13.01.15
11:54
все не читал. была подобная задача в нетленке, когда казначей должен был видеть проведенные РТиУ и разносить по ним банк

Все просто - регистр сведений, в который пишутся документ и признак того, что оповещение было сделано

призаписи документа (в подписке, или так) пишем в этот регистр, галка снята

у второго пользователя обработчик ожидания на этот регистр, считывает все, где не установлена галка, показывает пользователю2, ставит галку
92 Бубка Гоп
 
13.01.15
11:56
(89) дык в подписке создавайте задачу для нужного пользователя. они ведь для этого и существуют
93 Lama12
 
13.01.15
11:58
(9) Мне вот что сложно для понимания.
Все эти механизмы уведомления имеют одну особенность. Это дополнительное звено в сложной системе. Причем звено включенное последовательно. Т.е. если вдруг сломается механизм уведомлений, то пользователь даже не узнает что сменились данные (или не захочет узнавать).
Всегда придерживаюсь позиции, что пользователь желающий получить актуальную информацию, должен строить актуальные отчеты, а не ждать уведомлений.
Механизм "уведомлений" хорош когда есть бизнес процесс. Так используйте бизнес процессы.
94 Бубка Гоп
 
13.01.15
11:58
ну или вариант из (91), уже неоднократно здесь озвученный, но это хранение лишних данных и лишняя нагрузка для системы в виде обработчика ожидания. если пользователей много, это может существенно замедлить работу системы
95 pessok
 
13.01.15
12:01
(93) ты забываешь, что пользователи - ленивые задницы, а 1С должна "делать все хорошо". Тем более кто будет виноват в неполучении данных? Пользователь? Фиг! Программист 1С. Это надо сразу на корню рубить, а если не получилось - либо смириться, либо бежать
96 antihacker
 
13.01.15
12:01
Что значит "создавайте задачу для нужного пользователя" ?
Немного по подробнее.
97 pessok
 
13.01.15
12:02
(96) Есть такой объект метаданных - "Задачи"
98 antihacker
 
13.01.15
12:04
аа пр него
99 Фокусник
 
13.01.15
12:05
(0) Голосую за оповещение через "задачи"
100 Cube
 
13.01.15
12:06
Сотка
101 pessok
 
13.01.15
12:09
(100) без сотки тут не разобраться, ога :)
102 antihacker
 
13.01.15
12:11
То есть создать объект задачи. Подписку на него. И при проведение добавить задачу  ?
103 pessok
 
13.01.15
12:12
(102) нет
создать задачу (если нет)
в подписке при записи нужного документа создавать эту задачу
ответственным в задаче ставить пользователя2
104 xXeNoNx
 
13.01.15
12:32
1. Подписки на события
2. Бизнес процессы
3. ПодключитьОбработчикОжидания
Любой выбирай
105 XMMS
 
13.01.15
12:35
Лучше сделать кнопку юзеру к уведомлению:
"Я прочитал данное уведомление, и находясь в трезвом уме и твердой памяти, гарантирую, что его понял".
А то сначала программисту отвечать за доставку уведомлений по всем документам(и не дай бог что не дойдёт), а потом за то, что они "не понятное что-то вывели".
106 Serg_1960
 
13.01.15
12:38
Регистр сведений типа "кто, кому, чего сообщает" или "кого, что интересует"; подписка на событие изменения документов, где согласно событию, сканируется регистр сведений и рассылка сообщений в виде задач с фиксацией пользователем получения и исполнения.
107 Начинающий_13
 
13.01.15
12:43
Лучше создай Отдельный Спр. или РегистрСведений (т.к. документы делаются всегда и много что бы не загадить задачи, бизнес процессы и т.д.)(В нем должен быть признак булево (Что тот кому пришло напоминание сморел его)).
ППередЗаписью , ПриЗаписи, ПриПроведении документа сам подумай куда лучще поставить процедуру создания элемента спр. или записи в регистр сведений.
Дальше что тебе лучще:
1. Напоминание прикрепи в к эл спр. (мне кажется лучший вариант)и уставови время через сколько напоиманать.
2.Регламентованное зададие
3 Подписку
Все варианты хороши
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс