Модальное открытие формы v77
24.06.2009
07:42
#1
Здравствуйте. Есть внеш. обработка, открывается модально. В ней - список внеш. отчётов. Любой отчёт открывается так же модально, без дополнительных усилий со стороны прогера. Вопрос: как открыть такой отчёт НЕмодально?
24.06.2009
10:05
#3
"Подробно:
в Редакторе Меню вставлен пункт Название "Пользовательские".... Команда - Отчеты.ВнешнийОткрыть, параметры ".\ExtForms\...\МенюОтчётовПользователя.ert", стоит галочка Открыть форму модально.
Т.е. когда юзер тычет в пункт меню Пользовательские, МОДАЛЬНО открывается форма, в которой списком выводятся названия отчётов, разрешённых для этого юзера. Подчёркиваю, форма открывается МОДАЛЬНО, если не модально - это для меня, для настройки списка отчётов.
Соотв. юзер выбирает в списке нужный отчёт и отчёт открывается:
ТекОтчёт = """";
Если СписокОтчётов.ВыбратьЗначение(ТекОтчёт,"Отчёты для "+СокрЛП(Пользователь.Код),1,60,0) = 1 Тогда
ОткрытьФорму("Отчет",,ТекОтчёт);
КонецЕсли;
НО! При таком раскладе выбранный отчёт открывается тоже в модальном режиме, и, к примеру, котрагентов выбрать уже не даёт! Как-то можно сделать так, чтобы выбранный отчёт открывался немодально, сохранив модальный режим для обработки МенюОтчётовПользоватея?"
в Редакторе Меню вставлен пункт Название "Пользовательские".... Команда - Отчеты.ВнешнийОткрыть, параметры ".\ExtForms\...\МенюОтчётовПользователя.ert", стоит галочка Открыть форму модально.
Т.е. когда юзер тычет в пункт меню Пользовательские, МОДАЛЬНО открывается форма, в которой списком выводятся названия отчётов, разрешённых для этого юзера. Подчёркиваю, форма открывается МОДАЛЬНО, если не модально - это для меня, для настройки списка отчётов.
Соотв. юзер выбирает в списке нужный отчёт и отчёт открывается:
ТекОтчёт = """";
Если СписокОтчётов.ВыбратьЗначение(ТекОтчёт,"Отчёты для "+СокрЛП(Пользователь.Код),1,60,0) = 1 Тогда
ОткрытьФорму("Отчет",,ТекОтчёт);
КонецЕсли;
НО! При таком раскладе выбранный отчёт открывается тоже в модальном режиме, и, к примеру, котрагентов выбрать уже не даёт! Как-то можно сделать так, чтобы выбранный отчёт открывался немодально, сохранив модальный режим для обработки МенюОтчётовПользоватея?"
24.06.2009
12:15
#5
"Надо все таки уйти от модального открытия МенюОтчётовПользователя.ert, иначе вы свою проблему не решите. Открывайте ее все таки в обычном режиме, а функционал блокировки настроек списка отчетов реализуйте не по проверке признака модальности формы, а, например, проверкой переданного в форму дополнительного параметра через Форма.Параметр;
Проблема актуальна и для механизмов подбора в модально открытых диалогах, то есть, формы подбора открываются тоже модально, причем на "заднем плане". Если открывать их не через подбор, а через форму выбора значения, то невозможен множественный выбор и создание новых элементов в справочниках, что неудобно. Приходится идти другим путем."
Проблема актуальна и для механизмов подбора в модально открытых диалогах, то есть, формы подбора открываются тоже модально, причем на "заднем плане". Если открывать их не через подбор, а через форму выбора значения, то невозможен множественный выбор и создание новых элементов в справочниках, что неудобно. Приходится идти другим путем."
24.06.2009
13:19
#6
создаём новый пункт меню: Команда - Отчеты.ВнешнийОткрыть, параметры ".\ExtForms\...\МенюОтчётовПользователя.ert" - как передать параметр?
24.06.2009
13:31
#7
"Прямо здесь - никак. Вы и не передавайте его для режима открытия пользователем. Там в МенюОтчётовПользователя.ert напишите:
Процедура ПриОткрытии()
Парам=Форма.Параметр;
БлокироватьДобавлениеОтчетовВСписок=1;
Если ПустоеЗначение(Парам)=0 Тогда
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Если Парам.Получить("РазрешитьДобавлениеОтчетовВСписок")=1 Тогда
БлокироватьДобавлениеОтчетовВСписок=0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если БлокироватьДобавлениеОтчетовВСписок=1 Тогда
Форма.кнДобавитьВСписок.Доступность(0);
КонецЕсли;
...
Это будет блокировать пользователям настройку списка.
Для себя делаем так:
в меню своего интерфейса добавляем Команда - Отчеты.ВнешнийОткрыть, параметры ".\ExtForms\...\МенюОтчётовПользователяАдм.ert"
МенюОтчётовПользователяАдм.ert - дополнительная обработка, которая имеет такой текст:
Процедура ПриОткрытии()
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("РазрешитьДобавлениеОтчетовВСписок",1);
ОткрытьФорму(".\ExtForms\...\МенюОтчётовПользователя.ert",СписокПараметров);
СтатусВозврата(0);
Возврат;
КонецПроцедуры
P.S. Можно и вообще без передачи параметра отработать. В МенюОтчётовПользователя.ert пишем:
Процедура ПриОткрытии()
Если НазваниеНабораПрав()<>"Администратор" Тогда
Форма.кнДобавитьВСписок.Доступность(0);
КонецЕсли;
..."
Процедура ПриОткрытии()
Парам=Форма.Параметр;
БлокироватьДобавлениеОтчетовВСписок=1;
Если ПустоеЗначение(Парам)=0 Тогда
Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
Если Парам.Получить("РазрешитьДобавлениеОтчетовВСписок")=1 Тогда
БлокироватьДобавлениеОтчетовВСписок=0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если БлокироватьДобавлениеОтчетовВСписок=1 Тогда
Форма.кнДобавитьВСписок.Доступность(0);
КонецЕсли;
...
Это будет блокировать пользователям настройку списка.
Для себя делаем так:
в меню своего интерфейса добавляем Команда - Отчеты.ВнешнийОткрыть, параметры ".\ExtForms\...\МенюОтчётовПользователяАдм.ert"
МенюОтчётовПользователяАдм.ert - дополнительная обработка, которая имеет такой текст:
Процедура ПриОткрытии()
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("РазрешитьДобавлениеОтчетовВСписок",1);
ОткрытьФорму(".\ExtForms\...\МенюОтчётовПользователя.ert",СписокПараметров);
СтатусВозврата(0);
Возврат;
КонецПроцедуры
P.S. Можно и вообще без передачи параметра отработать. В МенюОтчётовПользователя.ert пишем:
Процедура ПриОткрытии()
Если НазваниеНабораПрав()<>"Администратор" Тогда
Форма.кнДобавитьВСписок.Доступность(0);
КонецЕсли;
..."
24.06.2009
13:40
#8
Спасибо. В принципе, я и сделала по названию набора прав ))). Просто изначальная задумка была такая: если открывается из меню - значит, простой юзер (даже я), а если другим путём (напр. Файл-Открыть) - тогда для настройки, неважно, кто именно открыл. Чтобы можно было прийти к бухам в гости и у каждого настроить отчёты под его чутким надзором. За раз настроить всё и больше там не появлятся. А так можно настраивать только в моей учётке - не всегда удобно. Но спасибо
1с 7.7 исчезли кнопки "Отчёты", "Журналы" и др.подскажите как из глобального модуля перенести переменну.
Читают тему
(гостей: 1)