![]() |
|
Можете пояснить смысл кода из типовой конфигурации? УТ 11.4.13.71 | ☑ | ||
---|---|---|---|---|
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'"), СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |