Имя: Пароль:
1C
1С v8
Разослать сообщение всем пользователям по событию. УТ11 управляемая форма
0 dimm7310
 
08.05.13
16:03
Задача: сделать рассылку сообщений для всех пользователей в базе по событию (например о том, что с сайта загрузились новые заказы).   Как реализовать?
1 dimm7310
 
08.05.13
16:05
желательно без использования обработки ожидания.
2 Aprobator
 
08.05.13
16:06
обработка загрузки пусть и оповещает сама.
3 drcrasher
 
08.05.13
16:06
подписка на событие было уже?
4 mikecool
 
08.05.13
16:07
разошли эл. письма
5 dimm7310
 
08.05.13
16:08
(2) там не обработка  - общий модуль "ОбменССайтом" - как из него по завершению оповестить всех ?
6 drcrasher
 
08.05.13
16:09
(5) тебе точный номер строки о.м. сказать, где нужно написать код?
7 Defender aka LINN
 
08.05.13
16:10
(1) Сообщить("А теперь иди и расскажи всем, что ты наделал");
8 dimm7310
 
08.05.13
16:14
(1) в этом случае сообщение выйдет только для пользователя запустившего обмен сайтом
9 dimm7310
 
08.05.13
16:15
(7) в этом случае сообщение выйдет только для пользователя запустившего обмен сайтом
10 Defender aka LINN
 
08.05.13
16:15
(9) А он уже пусть всех оповещает.
11 Stim
 
08.05.13
16:16
Без обработки ожидания никак.
12 mikecool
 
08.05.13
16:16
точно, новая должость в штатке - оповещатель!
13 dimm7310
 
08.05.13
16:17
(10) я понимаю, что у всех предпраздничное настроение
14 Aprobator
 
08.05.13
16:17
(11) регламентное задание.
15 Stim
 
08.05.13
16:19
(14) выполняется на сервере, к сеансу пользователя не подключится
16 Aprobator
 
08.05.13
16:20
(15) упс. )
17 dimm7310
 
08.05.13
16:20
(6) не понимаю, как в этом случае применить подписку на событие. Мне не нужно отлавливать событие то, что нужно отправлять сообщение будет определятся в модуле обмена с сайтом (если получены новые док-ты) и прямо от туда (если есть такая возможность) оповещать
18 Stim
 
08.05.13
16:22
Еще можно большой монитор на стену повесить и "оповещать".
А лучше - рупор
19 Кокос
 
08.05.13
16:22
вПользователи = Справочники.Пользователи.Выбрать();
Пока вПользователи.Следующий() Цикл
 Если Найти("123456789",СокрЛП(вПользователи.Наименование)) > 0 ТОгда
                           Попытка
       КомандаСистемы("MSG "+СокрЛП(вПользователи.Наименование)+" Поступил заказ из интернет-магазина!");    
   Исключение
       Сообщить("MSG filed");
   Конецпопытки
КонецЕсли;
КонецЦикла;
20 Кокос
 
08.05.13
16:23
в этой базе операторы в качестве логинов использовали номера. хотя конечно у меня все равно почемуто всем пользователям отсылалось :)
21 Кокос
 
08.05.13
16:24
работало. лень было разбираться. вешал на регламент - вываливалась программа.
22 ssh2012
 
08.05.13
16:25
Процедура ОтправитьПисьмо(ТемаСообщения, ТекстСообщения) Экспорт
   
   АдресПолучателя = [email protected];
   Если Не ЗначениеЗаполнено(АдресПолучателя) Тогда
       Возврат;
   КонецЕсли;
   
   Сообщение = Новый ИнтернетПочтовоеСообщение;
   Отправитель = Сообщение.Отправитель;
   Отправитель.Адрес = АдресПолучателя;
   Отправитель.ОтображаемоеИмя = "ОдинЭс";
   Сообщение.Тема = ТемаСообщения;
   Сообщение.Получатели.Добавить(АдресПолучателя);
   Сообщение.Тексты.Добавить(ТекстСообщения);
   
   Профиль = Новый ИнтернетПочтовыйПрофиль;
   Профиль.АдресСервераSMTP = "......ru";
   
   Почта = Новый ИнтернетПочта;
   Попытка
       Почта.Подключиться(Профиль);
   Исключение
       ЗаписьЖурналаРегистрации("Отправка отчета по эл. почте", УровеньЖурналаРегистрации.Ошибка, , , "Отправка отчета:" + ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
   Попытка
       Почта.Послать(Сообщение);
   Исключение
       ЗаписьЖурналаРегистрации("Отправка отчета по эл. почте", УровеньЖурналаРегистрации.Ошибка, , , "Отправка отчета:" + ОписаниеОшибки());
   КонецПопытки;
   
   Почта.Отключиться();
   
КонецПроцедуры
23 dimm7310
 
08.05.13
16:26
(19) уже думал об этом, рассылать net send * , но  хотелось что бы внутри 1С.
24 Кокос
 
08.05.13
16:26
хотя это не в УФ. хотя в случае винсервера и локальной сети или рдп должно и под УФ запускаться.
25 Кокос
 
08.05.13
16:27
(22) сообщения а не письма
26 dimm7310
 
08.05.13
16:29
(22) то же не очень подходит (извиняюсь за привиредливость), но у некоторых пользователей нет эл.адреса (не назначен в карточке пользователя) и даже противопоказан административно
27 Defender aka LINN
 
08.05.13
16:33
(23) У тебя требование - "без обработки ожидания". А учитывая, что это ЕДИНСТВЕННЫЙ доступный в 1С способ - ответы соответствующие.
28 s_ustinov
 
08.05.13
16:38
(0) попробуй бизнес процесс сделать. не уверен на 100%, но теоретически должно решать эту задачу. заодно можно будет гибче настраивать список, кому сообщение должно посылаться.
29 Кокос
 
08.05.13
16:38
(26) черезмерная загрузка 1С регламентными заданиями(внутренние сообщения пользователю) будет вываливать платформу без предупреждения.
30 dimm7310
 
14.05.13
12:49
снова возвращаясь к этой теме.

КомандаСистемы() - не доступна на сервере,  попытался использовать ЗапуститьПриложение(), но сообщение не выходит. Пробовал ЗапуститьПриложение("net send * Поступили новые заказы!"). Как еще можно сделать не используя обработку ожидания ?
31 ДенисЧ
 
14.05.13
12:50
(30) Почтой отсылай.
32 dimm7310
 
14.05.13
12:52
(31) не подходит см (26)
33 Nexux
 
14.05.13
12:53
регламентным заданием, но только в 8.2 можно асинхронно вызввать форму у пользователя
34 ДенисЧ
 
14.05.13
12:54
(32) Сделай. И дай права только на получение внутренних писем, без входа и выхода наружу.
Намного проще будет, чем выделываться, как муха на стекле.
35 Nexux
 
14.05.13
13:03
ОП, почему без обработки ожидания?)
36 dimm7310
 
14.05.13
13:38
(34)нет, не подходит почта еще есть нюансы.

Как можно с помощью Запуститьприложение() - разослать сообщение?  Пожалуй можно запускать bat файл с готовым сообщением.  Пробовал в bat файле прописывать "net send * Message"  - но тоже не выходит сообщение (маргнуло только черное окно).
AdBlock убивает бесплатный контент. 1Сергей