0
DJ Anthon
09.12.20
✎
08:23
|
Справочник ВариантыОтчетов, форма РазмещениеВРазделах
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если СообщенияОбОшибках <> Неопределено Тогда
Отказ = Истина;
ОчиститьСообщения();
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1
|Подробности:
|%2'"), СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК);
КонецЕсли;
КонецПроцедуры
Показать вопрос пользователю - это показ кастомного сообщения юзеру, форма открывается.
Но из-за того, что перед ней стоит Отказ = Истина, родительская форма должна закрыться сразу же после открытия,
что автоматически вызывает закрытие формы кастомного сообщения (причем только с событием закрытия, а событие перед закрытием не вызывается).
То есть показаться пользователю шансов нет никаких. Это баг или фича?
И как можно исправить, чтобы форма кастомного сообщения не закрывалась после закрытия родительской формы?
|
|
1
ДенисЧ
09.12.20
✎
08:28
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю она, по коду, не привязывается к форме.
//
ОткрытьФорму("ОбщаяФорма.Вопрос", Параметры,,,,,ОписаниеОповещенияОЗавершении);
//
|
|
2
DJ Anthon
09.12.20
✎
08:40
|
(1) но тем не менее, если убрать Отказ = Истина, то форма на экране остаётся.
Можете сами убедиться. Надо только попробовать разместить какой-нибудь отчет из формы "Продажи - Отчеты по продажам - Все отчеты" командой контекстного меню "Разместить в разделах..." из списка вариантов отчета пользователем с неполными правами, например, менеджером по продажам. Сообщение должно выдать ошибку о нехватке прав, так как роли "Добавление и изменение личных вариантов отчетов" недостаточно для пользовательского размещения отчета, так как у этой роли есть дополнительное ограничение права "Изменение".
Под админом такое сообщение не может выскочить.
Вот так работает.
&НаКлиенте
Процедура Завершение(Результат, Параметры) Экспорт
Закрыть();
КонецПроцедуры
&НаКлиенте
&Вместо("ПриОткрытии")
Процедура А_ПриОткрытии(Отказ)
Если СообщенияОбОшибках <> Неопределено Тогда
//Anthon -< 09.12.2020
ОчиститьСообщения();
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Новый ОписаниеОповещения("Завершение", ЭтотОбъект, ),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1
|Подробности:
|%2'"), СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК);
Возврат;
//Anthon ->
Отказ = Истина;
ОчиститьСообщения();
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1
|Подробности:
|%2'"), СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК);
КонецЕсли;
КонецПроцедуры
|
|