Как вывести сообщение пользователю из модуля объекта? #787061


#0 by Майбах
Добрый день! Есть внешняя обработка. Как из модуля объекта внешней обработки вывести сообщение пользователю?
#1 by quest
переписать обработку, так что бы функции возвращали текст, этот текст - вывести пользователю.
#2 by h-sp
так же как и не из модуля. Одинаково
#3 by Майбах
Не работает так...
#4 by ColonelAp4u
а если просто
#5 by Майбах
не работает. Просто не показывается ничего, но в "Если.." заходит проверял, но сообщения нет.
#6 by quest
ты форму не закрываешь случаем по итогу работы?
#7 by quest
ну и попутно скажи - управляемое приложение?
#8 by Мигрень
Модуль объекта выполняется на сервере. На сервере, Карл. Кому ты хочешь показывать сообщение не сервере?
#9 by Майбах
Управляемое. Бухгалтерия 3.0
#10 by Майбах
согласен, но как мне тогда сообщить пользователю или открыть форму обработки?
#11 by Undefined
СообщениеПользователю  работает на сервере попробуй обновить платформу. помню в каком то релизе был такой баг, сообщения  сервера не доходили до клиента.
#12 by Майбах
Попробовал под 8.3.8 и 8.3.9 - результат тотже.
#13 by Майбах
Может быть из внешней обработки никак нельзя вывести сообщение пользователю?
#14 by Limes
Код в модуле формы: в модуле объекта: Сообщение выводит...
#15 by Майбах
У Вас открывается форма, у меня же использование стоит -  "ВызовСерверногоМетода", т.е. обработка работает по расписанию (функция БП 3.0) форма не открывается. Вот как тут быть? Т.е. если все ок - сообщаем пользователю, если не ОК - тогда ничего не делаем.
#16 by Майбах
Наверное сложно объясняю, в общем обработка выполняется по расписанию, на кнопку - соообщитьТекст (как у вас) пользователь не должен нажимать.
#17 by Undefined
если обработка работает по расписанию значит она работает под дефолтным пользователем DefUser под которым выполняются регламентные задания, поэтому твой пользователь и не получит никогда сообщение, потому что обработка выполняется не в его сеансе
#18 by 1sanekmaloi1
Как на счет : Глобальный контекст (Global context) ПолучитьСообщенияПользователю (GetUserMessages) Синтаксис: ПолучитьСообщенияПользователю(<УдалятьПолученные>) Параметры: Тип: Булево. Признак необходимости удаления полученных сообщений из списка. Истина - удалять. Значение по умолчанию: Ложь. Возвращаемое значение: Тип: ФиксированныйМассив. Описание: Получает массив объектов СообщениеПользователю, которые еще не были выведены пользователю. Такое может происходить при работе в регламентных заданиях, на стороне сервера или в Web-сервисах.
#19 by Undefined
в таких случаях надо использовать метод ПолучитьСообщенияПользователя или как то так, которое надо выполнить на клиенте
#20 by Chameleon1980
писать в жр не вариант? или вам оперативно чтобы видеть?
#21 by Майбах
По журналу регистрации фоновое задание выполняется от Пользователя под которым работаю - Администратор. А как использовать ПолучитьСообщенияПользователя ?
#22 by Майбах
К примеру получу я массив объектов, но я же опять не смогу его вывести с помощью - сообщить
#23 by Chameleon1980
"...По журналу регистрации фоновое задание выполняется от Пользователя под которым работаю - Администратор. ..." это как это? я предлагал писать в жр а когда нужно анализировать его под любым юзером. потому и спросил - нужно оперативно чтоли видеть? может тупой костыль, но писать куданить в нужном юзере через обработку ожидания проверять есть запись или нет и показывать юзеру, что там написалось.
#24 by Майбах
Да, ошибочка - пользователь не определен при запуске, т.е. ты был прав про работу фоновых заданий.
#25 by Майбах
А как потом проверять через обработку ожидания по данным пользователем?
#26 by Chameleon1980
Можно завести константу типа какому пользователю выдавать сообщения от регламентов. В обработке ожидания сравнивать с этой константой если <> Возврат иначе выводить накопленные сообщения пользователю может быстро не понятно ответил. спрашивайте я бы так, наверное, сделал
#27 by Майбах
Конфигурацию снимать с поддержки нельзя
#28 by Chameleon1980
ну по строке что-ли тогда сравнивайте имя пользователя (хотя за такое ругают обычно) а что страшного от добавления константы. Боитесь за обновления? Это жеж новый объект
#29 by Chameleon1980
ну сделать обработку держать ее открытой только для нужного пользователя т.к. ПоключитьОбработчикОжидания все равно бы пришлось где-то прописать
#30 by Chameleon1980
типа так, наверное. не пробовал. &НаСервере
#31 by Garykom
Не надо ничего никуда снимать, штатный механизму "отложенных сообщений" изучи и заюзай. Ну или по топорному пиши в текстовый файлик - лог.
#32 by Chameleon1980
ну и вместо сообщить можно Новый СообщениеПользователю тут нарисовать
#33 by Chameleon1980
ну вот это типа такого жеж?
#34 by Garykom
+ Только сначала реши какому именно пользователю хочешь показывать сообщения... Потому что обработке по расписанию типа пофиг
#35 by Garykom
Да способов сообщений от одного пользователя - другому куча.
#36 by Chameleon1980
в пустой обработке и она будет ловить сообщения, отправленнные, из регламенты через СообщениеПользователю
#37 by Майбах
Все это конечно хорошо, но мне нужно показывать сообщения текущему пользователю, обработка запустилась, сообщения отложились, и что дальше? Я ведь получается вообще не могу из обработок внешних сообщения показывать
#38 by Chameleon1980
да как это вот попробуй так: и не закрывай обработку: она тебе будет показывать каждые 5 секунд текущее дату и время + если есть накопленные на сервере (в твоем регламенте) сообщения - они тут тоже вылезут
#39 by Chameleon1980
даже (вроде), если у тебя другое приложение открыто (активно) при получении сообщения активизируется 1с в и окне сообщений будет твоя информация. пора уже начинать пробовать.
#40 by Garykom
Какому именно текущему? Объясни вот как телефон поймет какому знакомому ты звонишь если ты ему не скажеешь это набирая номер. Так и тут твой код в "обработке по расписанию" откуда знает кому написать и как?
#41 by Chameleon1980
просто держи обработку свернутой если у тебя в отдельных окнах а так не знаю, как себя поведет думаю, ничего страшного тоже не дут
#42 by Chameleon1980
"...Я ведь получается вообще не могу из обработок внешних сообщения показывать..." С чего это? +обработка у тебя будет запущена только у нужного пользователя
#43 by Chameleon1980
Только ПолучитьСоообщенияПользователю поймает все не показанные сообщения Глобальный контекст (Global context) ПолучитьСообщенияПользователю (GetUserMessages) Синтаксис: ПолучитьСообщенияПользователю(<УдалятьПолученные>) Параметры: Тип: Булево. Признак необходимости удаления полученных сообщений из списка. Истина - удалять. Значение по умолчанию: Ложь. Возвращаемое значение: Тип: ФиксированныйМассив. Описание: Получает массив объектов СообщениеПользователю, которые еще не были выведены пользователю. Такое может происходить при работе в регламентных заданиях, на стороне сервера или в Web-сервисах. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное
#44 by Майбах
Получается одна обработка будет по расписанию проверять данные и создавать сообщения, а вторая должна тоже при открытии проверять, но как программно запустить обработку т.е. открыть при запуске 1С?
#45 by Майбах
/Execute "Адрес внешней обработки" — параметр предназначен для автоматического запуска внешней обработки после запуска системы.
#46 by mistеr
А про самого пользователя никто не подумал? Ему оно надо получать всякий спам от регламентных заданий?
#47 by Chameleon1980
это да "в пустой обработке и она будет ловить сообщения, отправленнные, из регламенты через СообщениеПользователю" можно придумать какой-нить РС в котором помимо сообщений и юзера писать, которому предназначается. можно было бы в регламенте перед сообщениями писать кому предназначено. только ПолучитьСообщенияПользователю для всех ловит и флаг в этой процедуре все сообщения удаляет я бы, наверное, рс сделал и ничего страшного, что это новый объект метаданных. На обновление то не скажется.
#48 by Chameleon1980
надоть посмотреть, может в бп3 уже есть что подходящее
#49 by Chameleon1980
может вообще в скуль писать.
#50 by Chameleon1980
типа этого, думаю, можно подумать РС "СостоянияНовостей"
#51 by Майбах
А можно ли как то обработку с формой в которой выполняется обработчик - ОбработчикОжидания, не показывать пользователю, то есть обработка открыта а форма ему не видна, чтобы не раздражало?
#52 by Garykom
Думаю 1С если еще нету то скоро добавит в платформу "очереди сообщений" с отправителем и получателем. Главное чтобы не забыли что отправителем/получателем может быть не только пользователь.
#53 by Chameleon1980
возможно многие типа такого, зачастую, просто сами допиливают. тут можно тупа через лог писать. в обработке ожидания смотреть наличие, сообщать и очищать лог.
#54 by Майбах
В принципе с обработчиком ожидания хороший вариант, но только вот постоянно открытая форма обработки не очень хорошо для пользователя, можно ли как то ее скрыть?
#55 by Chameleon1980
а ты про "На уровне платформы"
#56 by Майбах
Хотя бы как то :)
#57 by Chameleon1980
только вот конфликта не получится при записи в файл и при очистке файла после прочтения в одно время.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С