Имя: Пароль:
1C
 
Создание немодального оповещения 1с83
0 program345
 
17.02.15
09:49
Добрый день!
В модуле управляемого приложения пишу:

//
Процедура ПриНачалеРаботыСистемы()
    Если Час(ТекущаяДата())<9 ИЛИ Час(ТекущаяДата())>18 Тогда
         Сообщить("Нельзя входить!");
        
         Оп = Новый ОписаниеОповещения("ПрекратитьРаботуСистемы",УправляемаяФорма, );
         ПоказатьПредупреждение(Оп,"Нельзя входить!",10,"Завершение работы системы!");
         ПрекратитьРаботуСистемы();
    Иначе
        
    КонецЕсли;
        
    
КонецПроцедуры

//
Понимаю что УправляемаяФорма - не то и СП пишет

ОписаниеОповещения (NotifyDescription)
Основной
Синтаксис:

Новый ОписаниеОповещения(<ИмяПроцедуры>, <Модуль>, <ДополнительныеПараметры>)
Параметры:

<ИмяПроцедуры> (обязательный)

Тип: Строка.
Имя экспортируемой процедуры модуля, которая будет вызвана.
<Модуль> (обязательный)

Тип: УправляемаяФорма; КомандаКомандногоИнтерфейса; ОбщийМодуль.
Программный модуль, процедура которого будет вызвана.
При использовании типа УправляемаяФорма будет вызван метод модуля указанной управляемой формы.
При использовании типа ОбщийМодуль будет вызван метод общего неглобального модуля.
При использовании типа КомандаКомандногоИнтерфейса будет вызван метод модуля команды командного интерфейса.
Объект данного типа может быть получен только из модуля команды.
Для получения ссылки на него необходимо использовать свойство "ЭтотОбъект".
Оно доступно в контексте модуля команды и аналогично свойству ЭтаФорма в модуле формы.

Но как получить тип УправляемаяФорма?
1 arccos6pi
 
17.02.15
09:58
а зачем управляемаяформа если есть общиймодуль?
Процедура ПриНачалеРаботыСистемы()
    Если Час(ТекущаяДата())<9 ИЛИ Час(ТекущаяДата())>18 Тогда
        Сообщить("Нельзя входить!");
        Оп = Новый ОписаниеОповещения("ПрекратитьРаботуСистемы",КакойНибудьОбщийМодуль);
        ПоказатьПредупреждение(Оп,"Нельзя входить!",10,"Завершение работы системы!");
    КонецЕсли;
КонецПроцедуры

//это в "КакойНибудьОбщийМодуль"
Процедура ПрекратитьРаботуСистемы()Экспорт
      ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
2 program345
 
17.02.15
09:59
(1) Хотелось не засорять ОМ-ли...
3 arccos6pi
 
17.02.15
10:05
(2) а формы засорять хочется?
я лично не вижу разницы что засорять
4 arccos6pi
 
17.02.15
10:08
да и можно создать отдельный общий модуль для таких процедур
5 program345
 
17.02.15
11:31
(1) Все равно не работает...
вхожу, жму ОК,ошибка:

В методе ПриВходеВСистему количество параметров 0. Ожидаемое количество - 1.
6 program345
 
17.02.15
11:42
Разобрался: код:
//мод упр прил
Процедура ПриНачалеРаботыСистемы()
    
    Если Час(ТекущаяДата())<9 ИЛИ Час(ТекущаяДата())>18 Тогда
        
         Оп = Новый ОписаниеОповещения("ПриВходеВСистему",ОбщийМодуль1);
         ПоказатьПредупреждение(Оп,"Нельзя входить!",0,"Завершение работы системы!");
        
    КонецЕсли;
        
КонецПроцедуры

//
// общий модуль
&НаКлиенте
Процедура ПриВходеВСистему(Первый) Экспорт
    
    ЗавершитьРаботуСистемы(Ложь);

КонецПроцедуры // ПриВходеВСистему()
//
Зачем нужно передавать параметр вопрос открытый
7 program345
 
17.02.15
11:43
так работает, однако если кто знает как сделать все в управл. приложении - прошу
8 arccos6pi
 
17.02.15
11:57
(7) сделать это все в модуле управляемого приложения нельзя
хотите сделать в какой-нибудь форме - ок
Процедура ПриНачалеРаботыСистемы()
    
    Если Час(ТекущаяДата())<9 ИЛИ Час(ТекущаяДата())>18 Тогда
        
         Оп = Новый ОписаниеОповещения("ПриВходеВСистему",ПолучитьФорму("Какая-то форма"));
         ПоказатьПредупреждение(Оп,"Нельзя входить!",0,"Завершение работы системы!");
        
    КонецЕсли;
        
ну и процедуру в модуль этой формы добавьте
КонецПроцедуры
9 program345
 
17.02.15
12:11
(8) так тоже ок

//
Процедура ПриНачалеРаботыСистемы()
    
    Если Час(ТекущаяДата())<9 ИЛИ Час(ТекущаяДата())>18 Тогда
        
         Оп = Новый ОписаниеОповещения("ПриВходеВСистему",ПолучитьФорму("ОбщаяФорма.Форма"));
         ПоказатьПредупреждение(Оп,"Нельзя входить!",0,"Завершение работы системы!");
        
    КонецЕсли;
    

КонецПроцедуры
//

//форма общая
&НаКлиенте
Процедура ПриВходеВСистему(Первый) Экспорт
    
    ЗавершитьРаботуСистемы(Ложь);

КонецПроцедуры // ПриВходеВСистему()

//
10 arccos6pi
 
17.02.15
12:22
(9) так я так и написал
11 program345
 
17.02.15
12:39
(10) спс