Имя: Пароль:
1C
1С v8
Вывести сообщение с закрытием формы
0 ildary
 
06.10.15
12:48
Уважаемые специалисты, посоветуйте пожалуйста новичку, как правильно выводить сообщение, если при этом открываемая форма (доп отчета) закрывается при открытии? Если форму не закрывать, то правильно работают любые способы вывода - и Сообщить и Сообщение пользователю. Если же форму закрыть - то сообщений не видно.

Вот код:

Процедура ПриОткрытии( Отказ )
    
    СообщениеОбОшибке = "";
    Отказ = ПриОткрытииНаСервере( СообщениеОбОшибке );
    Если Отказ Тогда
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "Нужны права администратора!";
        Сообщение.Сообщить();
        
        Сообщить( СообщениеОбОшибке );
        
    КонецЕсли;
    
КонецПроцедуры

Функция ПриОткрытииНаСервере( СообщениеОбОшибке )
    
    Если Не ПравоДоступа("Администрирование",Метаданные) Тогда         
        СообщениеОбОшибке = "Нужны права администратора!";
        Возврат Истина;
        
    КонецЕсли;    
        
    Возврат Ложь;
    
КонецФункции
1 arccos6pi
 
06.10.15
12:53
(0) Предупреждение()
2 User_Agronom
 
06.10.15
12:53
(0) Формы обычные или УФ?
3 Mirnin
 
06.10.15
12:55
(2) Функция ПриОткрытииНаСервере( СообщениеОбОшибке )
Обычные же.
4 ildary
 
06.10.15
13:08
(2) простите, не указал, УФ. И хочется сделать по стандарту, с учетом последних отказов от модальности
5 hhhh
 
06.10.15
13:13
(4) ну, код в (0) должен сработать
6 ildary
 
06.10.15
13:17
(5) он не срабатывает, потому что в переменную Отказ попадает истина. Если заменить

Отказ = ПриОткрытииНаСервере( СообщениеОбОшибке );
Если Отказ Тогда

на

ПриОткрытииНаСервере( СообщениеОбОшибке );
Если ЗначениеЗаполнено( СообщениеОбОшибке ) Тогда

то все выводится, но и форма не закрывается (а должна).
7 LordCMEPTb
 
06.10.15
13:21
А если (0) сделать не при открытии, которое на клиенте, а "ПриСозданииНаСервере", где проверять на права и отказ ставить.
8 ildary
 
06.10.15
13:34
(7) спасибо, но не помогло - окно так же закрылось без сообщения
9 Nuobu
 
06.10.15
13:37
(0) Можно сделать либо предупреждением, либо найти самое главное окно и вывести туда сообщение.
Юзай ПолучитьОкна().
10 ildary
 
06.10.15
13:47
(9) спасибо, заработало. All hail Upravlyaemie formy!
11 ildary
 
06.10.15
16:19
У меня еще один новичковский вопрос - а как уважаемая общественность рулит правами на отчеты, написанные на СКД? У них нет понятия основной формы (в которой можно сделать проверку и которую можно закрыть, если нельзя). Получается, что если отчет написан на СКД и добавлен в дополнительные отчеты - то любой сотрудник с правами на доп отчеты может открыть любой отчет на СКД?
12 Nuobu
 
06.10.15
16:21
(11) Да.
Кроме случаев, когда у конфигурации, на вкладке "Представление" заполнен реквизит "Основная форма отчета".
13 ildary
 
06.10.15
16:56
(12) спасибо за совет, а можно поподробнее, где искать эту вкладку и как с ее помощью играть доступом?