Имя: Пароль:
1C
1С v8
Почему программа перестает реагировать, и даже отладку нельзя отключить
0 Бюро пиявок
 
28.09.13
21:02
//Общий модуль ПроверкаПользователя: Модуль
&НаСервере
Функция ПроверитьПользователя() Экспорт
    СтатусПользователя = Новый Структура("Админ, ВыбралОбед");
    //Пользов = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
    Пользов = ОпределитьПользователя().Имя;
    НайденЛи = Справочники.Пользователи.НайтиПоНаименованию(Пользов);
    Если НайденЛи = Справочники.Пользователи.ПустаяСсылка() Тогда        
        НовыйСправочник = Справочники.Пользователи.СоздатьЭлемент();    
        
        НовыйСправочник.Администратор = ПользователиИнформационнойБазы
        .ТекущийПользователь().Роли.Содержит(Метаданные.Роли.Админ);
        
        НовыйСправочник.Наименование = Пользов;
        
        НовыйСправочник.Записать();
        Сообщить("Создан новый пользователь");    
        Возврат НовыйСправочник.Администратор;
    КонецЕсли;
    Админ = ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.Админ);
    ВыбралЛиОбед = Ложь;
    ТекДата = НачалоДня(ТекущаяДата());    
    Выборка = Справочники.ОбедыПользователей.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.Дата =  ТекДата Тогда
            ВыбралЛиОбед = Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    СтатусПользователя.Админ = Админ;
    СтатусПользователя.ВыбралОбед = ВыбралЛиОбед;
    Возврат СтатусПользователя;
КонецФункции

Функция ОпределитьПользователя()  Экспорт

    Возврат ПользователиИнформационнойБазы.ТекущийПользователь();

КонецФункции



//УчебноеЗадание:Модуль управляемого приложения
Перем
ТекПользователь Экспорт;


&НаКлиенте
Процедура ПриНачалеРаботыСистемы(Отказ)
    //ТекПользователь = ПроверкаПользователя.ОпределитьПользователя().Имя;
    Если  НЕ ПроверкаВремени.РабочееЛиВремя() Тогда
        Предупреждение("Вы пришли не вовремя", , "Предупреждение");
        ЗавершитьРаботуСистемы();
        Возврат;                                            
    КонецЕсли;    
    
    СтатусПользователя = ПроверкаПользователя.ПроверитьПользователя();
    Админ = СтатусПользователя.Админ;
    ВыбралОбед = СтатусПользователя.ВыбралОбед;
    Если НЕ (Админ ИЛИ ВыбралОбед) Тогда
        ОткрытьФорму("Обработка.ОбработкаВыборОбеда.Форма");
    КонецЕсли;
    
КонецПроцедуры



Решил добавить к существующему модулю управляемого приложения строчку

ТекПользователь = ПроверкаПользователя.ОпределитьПользователя().Имя;

Если в модуле управляемого приложения на этой строчке поставить точку останова, то программа на этой строчке остановится.

Нажимаем F11. Переходим в общий модуль Проверка пользователя, и попадаем на строчку:

Возврат ПользователиИнформационнойБазы.ТекущийПользователь();

Нажимаем F11 - попали на конец функции. Еще раз F11. Открывается 1С: Предприятие. Курсор превращается в бублик (Занят). Программа не реагирует на управление.

При этом в Конфигураторе я не могу остановить отладку. Т.е. у меня нет возможности. Там в меню Отладка опять предлагается Начать отладку.
И нигде нет остановки отладки.

Был бы очень признателен за совет.