8.х Вход в систему 1С

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mhl, 29 окт 2007.

  1. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.
    Такая проблема, пользователь может открыть несколько своих акаунтов одновременно. Где это можно запретить? Заранее спасибо.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Можно вот так - пример из УПП
    Код:
    ЗапретитьОткрытиеНесколькихСеансов = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ЗапретитьОткрытиеНесколькихСеансов");
    Если ЗапретитьОткрытиеНесколькихСеансов Тогда
    ТекущийНомерСоединения = НомерСоединенияИнформационнойБазы();
    УникальныйИдентификаторПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
    
    МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
    Для Каждого ТекСоединение Из МассивСоединений Цикл
    Если (ТекСоединение.ИмяПриложения = "1CV8") 
    И (НЕ ТекСоединение.НомерСоединения = ТекущийНомерСоединения)
    И (НЕ ТекСоединение.Пользователь = неопределено)
    И (ТекСоединение.Пользователь.УникальныйИдентификатор = УникальныйИдентификаторПользователя) Тогда
    
    Предупреждение("Пользователем с таким именем уже выполнен вход в систему");
    ЗавершитьРаботуСистемы(Ложь);
    Возврат;
    
    КонецЕсли;
    КонецЦикла;    
    КонецЕсли;
    
    
  3. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    А где это нужно прописать? В каком модуле?
  4. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Написал данный код в модуле приложения в процедуре ПередНачаломРаботыСистемы. При попытке открыть предприятие выдает ошибку:
    {ОбщийМодуль.Пользователи(353)}: Поле объекта не обнаружено (ЗапретитьОткрытиеНесколькихСеансов)
    Запрос.УстановитьПараметр("Настройка" , ПланыВидовХарактеристик.НастройкиПользователей[Настройка])
    Вот код этой функции:
    Код:
    Функция ПолучитьЗначениеПоУмолчанию(Пользователь, Настройка) Экспорт
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("Пользователь", Пользователь);
    Запрос.УстановитьПараметр("Настройка"   , ПланыВидовХарактеристик.НастройкиПользователей[Настройка]);
    
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Значение
    |ИЗ
    |    РегистрСведений.НастройкиПользователей КАК РегистрЗначениеПрав
    |
    |ГДЕ
    |    Пользователь = &Пользователь
    | И Настройка    = &Настройка
    |";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    ПустоеЗначение = ПланыВидовХарактеристик.НастройкиПользователей[Настройка].ТипЗначения.ПривестиЗначение();
    
    Если Выборка.Количество() = 0 Тогда
    Возврат ПустоеЗначение;
    ИначеЕсли Выборка.Следующий() Тогда
    Если ЗначениеНеЗаполнено(Выборка.Значение) Тогда
    Возврат ПустоеЗначение;
    Иначе
    Возврат Выборка.Значение;
    КонецЕсли;
    Иначе
    Возврат ПустоеЗначение;
    КонецЕсли;
    
    КонецФункции
    
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Дык это взято из типовой :)
    Возьми всё, что находиться между
    Код:
    Если ЗапретитьОткрытиеНесколькихСеансов Тогда
    //всё отсюда
    КонецЕсли;
    
    
  6. zaiko99@mail.ru
    Offline

    zaiko99@mail.ru

    Регистрация:
    4 сен 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    А у меня метод ПолучитьСоединенияИнформационнойБазы() - выполняется 35 секунд при 180-ти соединениях.
    Когда смотришь список активных пользователей - то все быстро показывается разумеется.
    8.1 Сервер предприятия. Четыре рабочих процесса. SQL на отдельном сервере. Версия 8.1.6.38
    В чем может быть дело?!!

Поделиться этой страницей