Помощь - Поиск - Пользователи - Календарь
Полная версия: вход в систему 1С
"1C-PRO" - форум по 1C > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
MHL
Здравствуйте.
Такая проблема, пользователь может открыть несколько своих акаунтов одновременно. Где это можно запретить? Заранее спасибо.
BabySG
Можно вот так - пример из УПП
Код

ЗапретитьОткрытиеНесколькихСеансов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ЗапретитьОткрытиеНесколькихСеансов");
    Если ЗапретитьОткрытиеНесколькихСеансов Тогда
        ТекущийНомерСоединения = НомерСоединенияИнформационнойБазы();
        УникальныйИдентификаторПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
        
        МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
        Для Каждого ТекСоединение Из МассивСоединений Цикл
            Если (ТекСоединение.ИмяПриложения = "1CV8")
               И (НЕ ТекСоединение.НомерСоединения = ТекущийНомерСоединения)
               И (НЕ ТекСоединение.Пользователь = неопределено)
               И (ТекСоединение.Пользователь.УникальныйИдентификатор = УникальныйИдентификаторПользователя) Тогда
              
                Предупреждение("Пользователем с таким именем уже выполнен вход в систему");
                ЗавершитьРаботуСистемы(Ложь);
                Возврат;
                
            КонецЕсли;
        КонецЦикла;    
    КонецЕсли;
MHL
А где это нужно прописать? В каком модуле?
MHL
Написал данный код в модуле приложения в процедуре ПередНачаломРаботыСистемы. При попытке открыть предприятие выдает ошибку:
{ОбщийМодуль.Пользователи(353)}: Поле объекта не обнаружено (ЗапретитьОткрытиеНесколькихСеансов)
Запрос.УстановитьПараметр("Настройка" , ПланыВидовХарактеристик.НастройкиПользователей[Настройка])
Вот код этой функции:
Код
Функция ПолучитьЗначениеПоУмолчанию(Пользователь, Настройка) Экспорт

    Запрос = Новый Запрос;

    Запрос.УстановитьПараметр("Пользователь", Пользователь);
    Запрос.УстановитьПараметр("Настройка"   , ПланыВидовХарактеристик.НастройкиПользователей[Настройка]);

    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Значение
        |ИЗ
        |    РегистрСведений.НастройкиПользователей КАК РегистрЗначениеПрав
        |
        |ГДЕ
        |    Пользователь = &Пользователь
        | И Настройка    = &Настройка
        |";

    Выборка = Запрос.Выполнить().Выбрать();

    ПустоеЗначение = ПланыВидовХарактеристик.НастройкиПользователей[Настройка].ТипЗначения.ПривестиЗначение();
    
    Если Выборка.Количество() = 0 Тогда
        Возврат ПустоеЗначение;
    ИначеЕсли Выборка.Следующий() Тогда
        Если ЗначениеНеЗаполнено(Выборка.Значение) Тогда
            Возврат ПустоеЗначение;
        Иначе
            Возврат Выборка.Значение;
        КонецЕсли;
    Иначе
        Возврат ПустоеЗначение;
    КонецЕсли;

КонецФункции
BabySG
Дык это взято из типовой :)
Возьми всё, что находиться между
Код

Если ЗапретитьОткрытиеНесколькихСеансов Тогда
   //всё отсюда
КонецЕсли;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2008 Invision Power Services, Inc.