Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Вот такие статьи я люблю. Вроде какая то фигня о сообщениях, но раскрывается потенциал платформы!
Кстати у нас работает обработчик ожидания, который проверяет сообщения в рег.сведений. И новые выводит как «ПоказатьОповещениеПользователю». При том что сами записи в регистр создаются при создании нового тикета, новой заявки или вручную из любого документа другим пользователем или рег.заданием. Немного раздражает что приходится каждые 20 сек дергать сервер. Может у вас есть опыт работы с этим и подскажете более элегантное решение?
Наверное простотой?
(1)
Сервер взаимодействия
(2) Исправил, спасибо.
В БСП есть функция ОбщегоНазначенияКлиентСервер.СообщитьПользователю() — интерфейс над объектом СообщениеПользователю.
https://its.1c.ru/db/v8std#content:2149184067:hdoc
Удобно использовать, к тому же рекомендуется в стандартах:
(1)
Сервер взаимодействия на раз решает это
Срочно внести в Синтакс-помощник!
Спасибо! Все понятно и подробно описано.
(1)Глянте в сторону подписок на события
Неточности:
Сообщение.Поле = «Объект.Товары[1].Номенклатура»;
«Объект» — обычно такое имя задано у ключевого реквизита формы документа или справочника. Но формы бывают и другие.И Имя реквизита может быть не «Объект», а например, «Список».
Лучше написать «Путь к реквизитам, подчиненным основному реквизиту формы, необходимо прописывать указывая «полный путь» с имением основного реквизита, например…».
Вообще, идентичны варианты
и
А еще не слова не сказано про типовые процедуры. Я сторонник всегда использовать типовой функционал. Вот как обычно в типовых используют СообщениеПользователю:
Показать
Может автор подскажет, есть ли возможность вывести сообщение из модуля проведения документа в привязке к форме списка, из которой этот документ проводится? В свое время у меня это не получилось, хотя перепробовал вроде все варианты.
Да и вообще в принципе хоть как-то отобразить сообщения из модуля проведения документа при проведении документа из списка без открытия его формы.
(9)Подписка на событие, при записи — все едино. Есть пользователь ШЕФ, он сидит в отчетах,или вообще ничего не делает, и пользователи 1,2,3…н, которые создают заявки. Заявка создана — у шефа уведомление. То есть разные клиентские сеансы.
(8)Спасибо
(13)Наверно только сервер взаимодействия
(10)Согласен, может быть и другой основной реквизит формы.
(11)
Не всегда.
Если сообщение необходимо привязать к реквизитам формы, которая закрыта, только первый вариант можно использовать.
Если выводить сообщение в текущую форму, разницы нет.
(15)Сейчас бы я ее так бы и решил ) Но когда ее проектировали СВ то ли не было, то ли в какой то глубокой бете был…
(12)Просто вывести сообщение в форме списка очень просто, так как сообщение сформированное в модуле документа будет выведено в текущем активном окне.
А вот привязать его к реквизитам формы списка не получится, только к реквизитам формы документа.
(19)
Вы правы. Это я напутал уже за давностью.
Проблема возникает при нажатии дефолтной кнопки «Провести и закрыть» в открытой форме документа.
В этом случае сообщение из модуля проведения адресуется форме документа, которая сразу же закрывается и пользователь в результате сообщения не видит.
Не получалось переадресовать это сообщение из формы документа в форму списка, из которого она открывалась.
(20)Я в статье писал про этот момент с закрытием форм с сообщением.
Из модуля объекта вывести такое сообщение, я думаю, не получится.
Если из клиентской процедуры формы, например «При записи» можно попробовать, передав идентификатор формы списка.
(5)Спасибо за дополнение.
Можно пользоваться и этой процедурой или «СообщитьПользователюВФорму».
Но ничего нового они не добавляют, и не упрощают ввод, на мой взгляд.
Да и результат будет зависеть от того, что разработчики решат сделать в конкретном релизе.
По мне, удобнее использовать сам объект.
Народ, а кто-то сталкивался с проблемой привязки сообщения к полю в процедуре, которая указана в описании оповещения?
У меня не работает ((
(3)ага, к нему купить лицензии КОРП+сделать сервер отдельный,непонятно как это работать будет стабильно сейчас
А это проверенный способ, который работает.
Спасибо, за сбор все информации в одном месте.
Было бы не плохо, если бы еще добавил, как добавить в оповещения (значок колокольчика)
Почему — то забыли про ПолучитьСообщенияПользователю()
и почему-то она не работает
После Сообщение.Текст = ТекстСообщения но до Сообщение.Сообщить() пытаюсь получить ей массив накопленных сообщений, но он пустой, может что делаю не так, ткните носом.
(26)
Эта функция выводит накопленные (поле Сообщение.Сообщить()) и еще не выведенные сообщения.
Она характерна для регламентных или фоновых заданий. В обычном сеансе получить с помощью нее сообщения не получиться, на сколько я знаю. Так как они сразу будут выведены пользователям.
(27) странная конечно реализация, под сообщить подразумевается что оно выводится, зачем его ещё накапливать?
Я из описания понял что она собирает сообщения которые ещё не выведены командой сообщить, то есть очередь сообщений, это было бы логично
Как вывести сообщение при открытии формы существующего документа?
Например, сообщение о том, что редактировать документ не рекомендуется.
В привязке к открываемой форме, естественно.
UPD: выяснилась интересная особенность:
если документ открывать из списка, то всё ОК, сообщение цепляется к форме открываемого документа.
Но если документ открывать из истории, то сообщение цепляется к активной форме на экране.
А если открытых форм, нет, то к «Начальной странице».
Посему вопрос формулируется так: Как вывести сообщение при открытии формы существующего документа из меню истории (Ctrl+Shift+H)?
(29)Если до открытия формы, то сообщение будет выведено в текущей форме. Новая ведь еще не открыта. Привязать его можно к открываемой — второй вариант из статьи.
(30)
В ПриЧтенииНаСервере вызываю
Либо просто
При этом привязка к открываемой форме происходит. То же самое из ПриОткрытии.
Но с вышеописанными особенностями: если из списка или из любой другой формы, то норм, но из истории ведет себя странно — привязывает к текущей активной форме. Может, баг платформы? 1С:Предприятие 8.3 (8.3.12.1714)
Сообщение.ИдентификаторНазначения = Форма.УникальныйИдентификатор; — так тоже пробовал, поведение не меняется.
(4)Зачем исправил, было правильно?!
Сообщение выходит и в поле и внизу окна, как сделать чтобы только в поле выходило?
(33)На сколько я знаю, никак. Снизу всегда будет выводиться.
из обработки проведения не удалось вывести в форму сообщение с привязкой, перебрал возможно около 10 разных вариантов, например такой:
или такой:
и много других..
платформа 8.3.15.1656
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «Текст сообщения»;
Сообщение.Поле = «Товары[0].Номенклатура»;
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Выводит все корректно. Платформа 8.3.15.1656, режим совместимости 8.3.12.
Если форма документа была открыта, привязывается к ней.
Если проведение выполнялось из формы списка, сообщение выводится в форме списка. При двойном щелчке, открывается форма документа и привязывается корректно.
(36) попробуйте в расширение (например в УТ 11 или КА 2.4) добавить нечто такое:
&Перед(«ОбработкаПроведения»)
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = «текст сообщения»;
Сообщение.Поле = «Товары[0].Номенклатура»;
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
КонецПроцедуры
Будет текст привязан к строке ТЧ или выведется внизу ? К слову сказать типовые сообщения при нехватке например товара в документе реализации тоже без привязки к строкам выводятся (УТ 11.4.10.62)
Единственное объяснение этому возможно кроется в окне предупреждения, которое генерирует платформа (или БСП), с текстом «Не удалось провести документ…».
Может быть это окно каким-то образом блокирует собой отображение окон с привязкой к строкам, и в результате сообщения выводятся только внизу экрана.