Tray Informer


Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"… Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

А что если выводить сообщения в балун, всплываюее информационное окно на трее, в котором обычно система отображает разный мусор про обновления, активацию, просроченную лицензию и т.д. Таким образом программа и сообщения покажет, и рабочую область в 1С не уменьшит. 

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

Компонента проста в использовании и совершенно бесплатна. Качайте, пользуйтесь!

И пусть ваши программы будут самыми удобными!

В дистрибутиве сама компонента, обработка под 1С:Предприятие 8.2, демонстрирующая ее использование.

Подключение и использование

Все стандартно.

1. Кидаем trayinformer.exe куда-нибудь на компьютер. Запускаем один раз вручную, тут же закрываем. Если у вас Windows Vista, 7 или 8 — устанавливаем в свойствах запуск от имени Администратора.

2. В модуле приложения создаем переменную Информер, которую будем использовать, инициализируем компоненту в «ПередНачаломРаботыСистемы».

Перем Информер Экспорт;
...
Попытка
Информер=Новый COMОбъект("TrayInformer.Server");
Исключение
Информер=Неопределено;
Предупреждение("Tray Informer не установлен на Вашем компьютере!");
КонецПопытки;

3. Вместо стандартного «Сообщить» пишем:

Информер.Info("Мое сообщение") ;

либо, если хотим вывести предупреждение — 

Информер.Warning("Мое сообщение") ;

и для сообщения об ошибке —

Информер.Error("Мое сообщение") ;

Вот и вся премудрость!

 

ПС А началось все так…

Сидит наша Ульяна и что-то упорно делает в 1С. Час делает, два… Я не выдержал, спрашиваю:

— Ульяна, что Вы там делаете?

— Да вот, — говорит Ульяна, — клиент просит, чтобы при наведении мышки на строку в табличной части выводилось сообщение…

— Не, —  говорю, — не получится этого в 1С, по крайней мере, без бубна точно не получится.

— Ну вот, — расстроилась Ульяна, — что же я тогда сижу.

И ушла домой…

А я остался один и задумался. Вот что если сделает все-таки Ульяна, что при наведении курсора на строку в табличной части будет вываливаться сообщение. И попадет эта программа к беспокойной такой бухше, у которой всякий раз нервный тик от неожиданно появляющихся окон открывается, ну, или смех гомерический ее прошибает. И что если введет эта бухша однажды накладную в 1000500 строк, а потом захочет пересчитать количество по строкам вручную, чтобы 1С проверить, правильно ли она работает. Ткнет мышом по строке, а у нее бац — окно внизу и нервный тик. Она окно тут же закроет, по второй строке ткнет — снова окно и тик. По третий — окно и хохот. И так все 1000500 строк! А директор ее рядом при этом будет стоять, ждать несколько дней. Ему ведь тоже важно, чтобы 1С правильно работала. И когда эту накладную они проверят, то наверняка ошибку в работе 1С найдут и к нам приедут, Ульяну с собой заберут, чтобы она прямо при них эту ошибку тут же и исправила. Ну, или чтобы проверку какую поставила, если в накладной 1000500 строк, то чтобы сообщения хотя бы через раз выводились, так считать удобнее…

Вот, блин! Не хочу хорошего сотрудника терять!!! Так поразмыслив, придумал я, что самым правильным в этой ситуации будет не в стандартное окно сообщений вываливать всю ульянину инфу, а в балун, что на трее. От тика это бухшу не спасет, но хоть закрывать его она 1000500 раз не будет пытаться, потому что все нервные бухши знают, какая на балуне милипусерная кнопка, фиг в нее попадешь с первого раза, а пока попасть пытаешься, он обычно сам подло так закрывается. Глумится типа.

Мужыг сказал — мужыг сделал! К четырем утра сделал. И на радостях Ульяне позвонил сказать, что спасена она, не услышит топота ног и сумасшедшего смеха икающей бухши в ближайшие пару недель. А Ульяна трубку не взяла… Не поймешь, что этим женщинам нужно! 🙁

 

77 Comments

  1. alina91

    Класс!

    Reply
  2. Svetlaya_

    Очень часто в сообщениях ковыряюсь, мне такая штука нужна!

    Reply
  3. MikaPikina

    +1

    взяла себе на вооружение, но пока гложет сомнение: юзеры не будут это окошечко воспринимать как тот самый системный мусор, про который в статье сказано, и игнорировать его?

    Reply
  4. jhfrek

    Хе-хе-хе! Что только не придумает… Возьму пригодиться…

    Reply
  5. O-Planet

    (3) Из двух зол выбираем меньшее…

    Reply
  6. ЕленаГр

    Думаю, пригодится.

    Reply
  7. elena_ar

    К себе в коллекцию полезных заметок ))

    Reply
  8. elena_ar

    К себе в коллекцию полезных заметок ))

    Reply
  9. Famza

    Норм

    Reply
  10. Yashazz

    Не ново, но полезно. Это ишшо в лохматые годы для 7.7 в Miracle было, кажись.

    История про Ульяну натурально трогательная и жЫзненная весьма )))

    Reply
  11. O-Planet

    (10) А вот интересно, в миракле был реализован стек сообщений и вывод их с задержкой, или одно тупо затирало другое, если выводить их пачками? // типа Абадонну уколоть пытаюсь 🙂

    Reply
  12. pumbaE

    callback есть? Что бы вывести в сообщение, при этом в случаи чего обработать пользовательскую реакцию.

    Reply
  13. jhfrek

    (12) Тогда это будет уже не Tray Informer, а Tray Chat.

    Reply
  14. Yashazz

    (11) Не помню уже. Буду, есличо, и твоё юзать. На тонком клиенте проверял, работает? Подключается?

    Reply
  15. comol

    Так а вывод сообщений при наведении курсора что не сделал? Поэтому наверное и трубку не взяла :).

    Reply
  16. AlX0id

    (12) pumbaE,

    Дык они тогда в 1С вообще тыкать перестанут — все в балунчик да в балунчик _)

    Reply
  17. jhfrek

    (16) Точно! Балунчиками баловаться будут…

    Reply
  18. adapter

    круто, да? 17 отзывов, 16 плюсов, …. нда, не тот уже инфостарт, кхе-кхе

    (СП ПоказатьОповещениеПользователя)

    Reply
  19. CaSH_2004

    (11)Вроде там прекрасно это реализовано типа аськи: новое сообщение становится двигает старое вверх.

    И вроде даже можно было организовать обратную отдачу в 1С при нажатии на сообщение (то чего 1С никак не родит для обыных форм!): возникало внешнее событие которое можно было обработать по источнику его возникновения.

    У вас подобного нема или может планируется? А то там проект заброшен

    И кстати можно узнать зачем через КОМ объект реализовано а не через технологию Натив? Получается что нужно регить под админом?

    Reply
  20. mkostya

    Windows XP ???

    Reply
  21. O-Planet

    (20) Вообще, Windows 8…

    Reply
  22. Abadonna

    (0) Ну ты «пейсатель»! :)))

    «А началось все так…»

    А вот так твоя сделает?

    Reply
  23. Abadonna

    Посмотри как «правильные треи» делать http://infostart.ru/public/125913/

    Картинка любая, отклик на клик.

    ———

    Че-то файлы не прикрепляет

    Reply
  24. gragden

    Автор молодец, а внизу еще порадовал рассказ, прям романтика ))))

    Reply
  25. venger

    (24) И фотку симпатичной девушки не забыл выложить;-)

    Олег, у тебя мужики работают на фирме, хоть один?;-) А с бородой и свитером?;-))))

    Reply
  26. venger

    Странно фотку сменил, а в сообщениях не меняется… А все, изменилась, можно скрыть этот пост…

    Reply
  27. ZOMI

    А все-таки чем <ПоказатьОповещениеПользователя> не устраивает?

    Reply
  28. artem666

    (27) ZOMI,

    +1

    Reply
  29. Abadonna

    (27) ZOMI, Насколько помню, при свернутом (или загороженном) окне — фиг его кто увидит.

    Reply
  30. Abadonna

    /+29/ Че за фигня? Кнопка «Изменить» так и не работает…

    Нет, выводит в трее поверх <ПоказатьОповещениеПользователя>, во всяком случае, в 8.3

    Reply
  31. Abadonna

    /+29,30/

    Описание:

    Показывает окно, по умолчанию располагающееся внизу экрана, которое постепенно затухает и исчезает с экрана.

    ____________________

    И толку от такого оповещения? Нормальный проггер добавит параметр ВремяПоказа

    Вот как правильно! ;

    Оповещение (ТекстЗаголовка,ТекстСообщения,ИмяФайлаКартинки:строка,ВремяПоказа,ЦветОкна:число)

    Выводит окно оповещения по типу окна от 1С ПоказатьОповещениеПользователя() на время= ВремяПоказа, сек. Если ВремяПоказа=0 – до закрытия пользователем. При нажатии на текст окно оповещения закрывается и генерирует внешнее событие DESKTOP_ALERT_CLICK, данные – текст сообщения.

    (MiracleNative)

    Reply
  32. sertrain

    Требует borlndmm.dll при запуске

    Reply
  33. Abadonna

    (32) sertrain, вот эту качай http://infostart.ru/public/125913/

    ничего не требует, а всякие треи-меи — там ЖАЛКИЙ КУСОЧЕК от методов

    Reply
  34. Abadonna

    … Удивительные дела! Лежит вышеупомянутая больше года, методов — по самые уши!

    Публикую от нее жалкие кусочки (типа StringsNantive, XLS), попадаюn они наверх и набирают рейтинг выше осноdной. Вот и в этой публикации два метода скоро перегонят более 50-ти методов той, в которой эти методы тоже есть и даже в двух вариантах :))))

    Reply
  35. O-Planet

    (34) А эт говорит только о том, о чем я постоянно напоминаю себе: удаленная работа = умение программировать + умение пиариться. Я могу быть супер-пупер гением, но ни кто со мной работать не будет, если не умею подать то, что я делаю. И к этому народ, переходящий от фикси к фри, чаще всего относится пофигистически.

    Reply
  36. O-Planet

    (22) Abadonna,

    // А вот так твоя сделает?

    А твоя историю сообщений хранит вот в таком виде? 😉

    Вообще, крут был бы тот, кто вообще отказался бы от всяки там окон. Представь, появляется внизу экрана девушка, которая гуляет по командной панеле поверх окон (как Desctop Girl), и сообщения выдает из 1С 😀

    Reply
  37. cool.vlad4

    (36) ну историю несложно сделать. я делал более лениво. есть такая прога — growl. версия для винды написана на c#, вытащил оттуда форму и прикрутил к компоненте. нехорошо с этической точки зрения, потому не выкладываю. в чем плюс(ну а в чем-то минус) перед балуном, в том, что создается форма, которая может висеть хоть целый день при желании. а у Abadonna лучше, конечно, native — регистрация соответственно не нужна.

    Reply
  38. Abadonna

    (35) плохо читаешь:

    «. При нажатии на текст окно оповещения закрывается и генерирует внешнее событие DESKTOP_ALERT_CLICK, данные – текст сообщения.»

    И храни где хочешь.

    «А эт говорит только о том, о чем я постоянно напоминаю себе:»

    Это НИ ОЧЕМ не говорит, потому что я, в первую очередь, приводил СВОИ dll, которые являются жалкими ошметками от Miracle. И, уверен, эта твоя все равно не дотянет по рейтингу до vjtqhttp://infostart.ru/public/197777/, которая тоже жалкий ошметок от Miracle.

    (36) У Abadonn-ы лучше не только потому, что Native, а потому что два жалких метода с кучей других (и очень полезных) даже и сравнивать неловко 😉

    Reply
  39. O-Planet

    (38) Вот сделаю десктоп гирл с той самой сибирячкой, и по рейтингу миракле переплюнет, особенно, если она периодически будет раздеваться, когда выводимое сообщение ей понравится. Только нужно будет угадать, что ей может понравиться )))

    Reply
  40. cool.vlad4

    (39) 1С на раздевание, это что-то новенькое 😉

    Reply
  41. ZOMI

    в баттле приблуд Q-Pl<->Abad за явным преимуществом побеждает Miracle. Тут даже как-то сравнивать неловко

    Reply
  42. su_mai

    (34) Просто из её названия сложно понять, что она представляет собой и для чего нужна. И здесь описание побогаче.

    Reply
  43. su_mai

    (1) А код у компоненты открытый?

    Reply
  44. O-Planet

    (43) А надо? Могу прислать на е-майл. Сделана на Borland Builder c++ 2007.

    Reply
  45. Abadonna

    (42) su_mai, вы что, с Планетом сговорились?

    Я, ПРЕЖДЕ ВСЕГО, сравнивал Miracle со СВОИМИ же DLL, а вовсе не с этой!

    Вот эту

    http://infostart.ru/public/125913/

    с этой

    http://infostart.ru/public/197777/

    и с этой

    http://infostart.ru/public/178717/

    При чем тут описание ЭТОЙ?

    А насчет этой: писать в наше время COM под снеговика — вообще моветон! :)))

    Reply
  46. Abadonna

    (39) с сибирячкой переплюнет :)))…. продолжение с кем не переплюнет оставлю за кадром из этических соображений

    Reply
  47. O-Planet

    А кто вообще начал сравнивать? Это — локальное решение. Миракле — комплексное. Это все равно, что сравнивать туристический ножки с ложечкой для кофе.

    Reply
  48. O-Planet

    И скажите уже наконец, чем плохи com???

    Reply
  49. O-Planet

    Вот, нахрен! (хотя хочется сказать по-другому) Всегда раздрожало использование английских терминов «ниачом». Скажите мне, чем отличается обычная, тупая ВК, которые я завязал писать ещё во времена 7.7, от ВК с красявой приставкой «native». Да НИ ЧЕМ!!! Вот это — моветон, обычная ВК на дельфях. Куда круче делать Legacy активх! Хотя бы из тех соображений, что ВК на сервере не будет работать, а для com это без разницы.

    Reply
  50. cool.vlad4

    (49) нативные ВК можно использовать на сервере. это COM ВК(старые ВК) нельзя использовать на сервере. COM компонента <> ВК COM компонента. ВК NAtive<>ВК COM компонента. все это разные вещи.

    Reply
  51. cool.vlad4

    (48) платформозависимы. и еще в контексте 1С, не поддерживает очевидно, некоторые фишки для взаимодействия с 1С, типа внешниесобытия и прочее. а так в принципе компоненты как компоненты. я к ним чаще прибегал.

    Reply
  52. Abadonna

    (49) «Да НИ ЧЕМ!!! Вот это — моветон, обычная ВК на дельфях.»

    Что Active-X, что COM требуют regsvr 32, РЕГИСТРАЦИЮ В РЕЕСТРЕ.

    Похоже, ты никогда не сталкивался с отсутствием прав юзверя на такие действия.

    А я еще и в 7.7 сталкивался, когда обычная V7Plus.DLL ни хрена не работала, потому что движки стояли у каждого юзверя, а вот прав-то у него практически ни на что не было (что правильно для корпоративной сети!)

    «что ВК на сервере не будет работать» — ты какой сервер имел в виду? Сервер 1С-предприятия в режиме &НаСервере, или что-то другое?

    ___________

    P.S MiracleNative у меня спокойно работает на Windows Server 2008 R2 Standard х 64, с 1С на скуле.

    Только шуба заворачивается

    Reply
  53. cool.vlad4

    (52)о, про самый главный недостаток я и забыл. правда мелкософтовцы, для взаимодействия со старым кодом или для чего-то еще, в общем после прихода dotnet-а, сделали reg free com компоненты, они не требуют регистрации в реестре, нужен только файл манифест. но в обычной жизни, 1С с этим не всегда работать захочет.

    Reply
  54. Abadonna

    (47) а я тебя сообразительным всегда считал

    «А кто вообще начал сравнивать? Это — локальное решение. Миракле — комплексное. Это все равно, что сравнивать туристический ножки с ложечкой для кофе.»

    Я сравнивал не компоненты, а место и время появления их публикаций

    Только про это я говорил. Торчит в «В центре внимания» или в «Выбор экспертов» на главной странице на виду — качают и плюсуют. И не зря я на первом месте в том комментарии именно свои поставил, а твою уж просто прицепом. Поражаюсь, как можно читать одно, а воспринимать другое?

    Reply
  55. O-Planet

    Это я тебя сообразительный считал, потому, как не тебя имел в виду)) Ведь не ты же вроде начал сравнивать, а публика тутошняя зачем-то в одном посте объединила миракле и мою и стала сравнивать, что неправильно.

    Про ВК… Мой com вообще через regsvr32 не нужно регистрировать. Про сервер — именно «НаСервере»

    Reply
  56. cool.vlad4

    (55)

    «Мой com вообще через regsvr32 не нужно регистрировать»

    о, мне стало интересно. а как же тогда система находит COM server и вот здесь Новый COMОбъект( не происходит никакой ошибки? или все таки при установке дистрибутива происходит регистрация?

    Reply
  57. O-Planet

    Там нет дистрибутива, как такового.

    Reply
  58. cool.vlad4

    (57) на вопросы ты не ответил. насчет «дистрибутива» у тебя так написано в публикации файла. я не знал. решил скачать. что я вижу — непонятный exe, запускаю, пишет , — нет у вас CC3280MT.DLL. по всей видимости борландовская фигня, которой у меня нет, скомпилируй тогда вместе с ней, чтобы у пользователя ничего не требовал. (опция Link with runtime packages).(причем выше смотри, не у меня одного такое). предположу, что это ничто иное как outproc com server, который сам регистрируется в системе при первом обращении. так, что это неправда, что регистрация не требуется. может посмотри в реестре поиском «trayinformer». ну и права на запуск левого exe тоже должны быть

    Reply
  59. Yashazz

    Абадонна, не горюй. Это повсеместное явление, не только на ИС, когда выкладывается нечто мощное с кучей полезностей, а потом некая одна фигня, побочная и вообще почти лишняя, вдруг вызывает живейший интерес. Или когда гораздо более криво сделанная вариация этой фигни набирает впятеро больше популярности. Селяви такая.

    Я твою Miracle завсегда пользовал и респекты выражал, и поныне всем, как вишь, ненавязчиво припоминаю. Мне-то она нынче просто не нужна.

    Reply
  60. webester

    Самый больной вопрос как это будет работать в терминале и в remoteapp? Если в терминале подозреваю работать будет, то как будет работать в remote app? Там то трей как таковой отсутствует. Или будет?

    Reply
  61. O-Planet

    (58) Вот что самое жестокое, я всегда эту опцию включают (

    Reply
  62. O-Planet

    (60) надо проверять

    Reply
  63. Кошки рулят

    (54) Abadonna, Не надо так громко завидовать.

    У меню тут ряженые тоже идеи прут как будто свои, публикуют и потом (вероятно) очень гордятся восхищенными плюсами. Забей.

    Reply
  64. cool.vlad4

    (61) 😉 я перепутал, наоборот надо отключить. вот посмотри http://stackoverflow.com/questions/7787267/how-create-an-standalone-without-dll-file-dependencies-cbuilder-console-appl . естественно отключать надо в том случае, если ты их не используешь. ну я думаю, что не используешь.

    Reply
  65. O-Planet

    Ну и я это имел в виду :-). Там, на самом деле, три галки надо отключать: runtime packages, enable runtime libraries, и ещё (не знаю, правда, надо или нет) — runtime temas в свойствах приложения.

    Reply
  66. O-Planet

    (63) Завидеушь, может быть, только ты. Мы тут просто общаемся в пятницу. «Нет ничего нового род солнцем» ©

    Reply
  67. Кошки рулят

    (66)

    «Нет ничего нового род солнцем» ©

    Есть чего нового, есть, только есть разные повторители.

    Есть такие которые порядочно пишут и в модулях и в описаниях: «взято там-то», «идея такого-то автора»,

    есть такие умники, которым «навеяло из Интернета» (дурочку включают),

    а есть такие которые сопрут и потом громче всех стучат себя пяткой в грудь: «Я сам выдумал! Я! Я! Я!» …

    З.Ы. Если ты про себя подумал — зря. Спичь не о присутствующих …

    Reply
  68. O-Planet

    А теперь — момент истины. Кто из мудрых хранителей знает, как из ВК или native ВК, или com, сделать обычное Сообщить(…)? Только лучше пример кода. На 7.7 я так умею, а на 8 — нет. Знаний не хватает. 🙁

    Reply
  69. O-Planet

    (66) Есть и четвертые (я, в частности), кто напрямую из ноосферы… 😀

    Reply
  70. cool.vlad4

    (65) ну в любом случае там какая-то трабла с библиотеками. запустил на машинке, где есть та библиотека, теперь вопрошает BorlndMM.dll, естественно она есть в папке bin, delphi(ну или cpp builder-а). в инете нашел. запустил. как я и говорил она делает ключи в реестре

    (68) насчет того, чтоб сразу выводить сообщить, не скажу, никогда не было надо. но посмотри в 1С документации. в крайнем случае вызывай внешнее событие(HRESULT ExternalEvent(BSTR bstrWho, BSTR bstrWhat, BSTR bstrData);), перехватывай в 1С и выводи в сообщить, все что угодно.

    Reply
  71. Abadonna

    (63) Кошки рулят, с логикой полный облом? Кому я завидую — самому себе? Ты хоть читал о чем я писал?

    Прочитай, а потом уж «рули»

    Reply
  72. Abadonna

    (58) cool.vlad4, «нет у вас CC3280MT.DLL. по всей видимости борландовская фигня, которой у меня нет»

    [Эти библиотеки нужны проектам, собранным в среде C++Builder с установленной опцией Dynamic RTL. В этих библиотеках находится, условно говоря, код из модуля System + код из некоторых стандартных библиотек C++. Используется для минимизации размера модульного приложения, собираемого в С++Builder.]

    Это как в VB — комплируешь, всего 100К, ура! А потом оказывается, что её еще надо еще всяких dll метра на 4.

    И эти dll по умолчанию ставятся на комп, когда среду ставишь, и совсем не факт (вернее, именно факт), что на других компах их и в помине нет.

    «3. Чтобы отменить регистрацию файла “cc3280mt.dll”, введите точный путь к каталогу + “regsvr32 / U” + [dll_name] (например,:CTmp-papka> regsvr32 /u cc3280mt.dll) и нажмите кнопку «Enter».»

    У меня в реестре:

    C?Program FilesEmbarcaderoRAD Studio11.0incc3280mt.dll

    1. Зарегена.

    2. А почему? Да потому что EmbarcaderoRAD Studio11.0

    3. Т.е. регистрация в реестре ОДНОЗНАЧНА

    Reply
  73. Abadonna

    (66)

    «>(63) Завидуешь, может быть, только ты. Мы тут просто общаемся в пятницу.»

    Смотрим профиль:

    Дата регистрации: 28.12.2009 02:39

    Рейтинг за публикации: 0

    Life: 24

    За четыре года «наперло идей» аж на 24 в Life :)))

    Reply
  74. Prad2002

    Не запускается сие чудо, пишет BORLNDMM.DLL не найден

    Reply
  75. Abadonna

    (74) Prad2002,

    Трей-мессенджер: Native ВK для 8.х

    тут точно без проблем 😉

    Reply
  76. Abadonna

    (0) Учись, Олежка, на третьи сутки тебя уже обскакал:)))

    P.S. Прикалываюсь 😉

    Reply
  77. O-Planet

    (76) Это безобразие. Жди адекватный ответ ))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *