Ограничение по количеству сессий пользователей

30.09.11

Разработка - Универсальные функции

Если терминальный сервер не "резиновый", то пользователям можно запретить плодить открытые 1с.

У нас возникла проблема с некоторыми терминальными серверами (старенькими), пользователи формируя отчет (если отчет формируется долго), открывают еще одну сессию, и работают в ней, и так много раз. А памяти 1с к сожалению отъедает дай боже. Вот и пришлось сделать такие изменения:

В модуле приложения ПриНачалеРаботыСистемы добавил вызов такой процедуры:

 

Процедура ПроверкаВозможностиОткрытияЕщеОднойСессии(Пользователь)
   
#Если Клиент Тогда
       
Если Не РольДоступна("ПолныеПрава") Тогда
           
ИтогСписокСоединений = Новый ТаблицаЗначений;
           
ИтогСписокСоединений.Колонки.Добавить("Пользователь");
           
ИтогСписокСоединений.Колонки.Добавить("КоличествоСоединений");

           
СоединенияИнформационнойБазы = ПолучитьСоединенияИнформационнойБазы();

            Для Каждого
Соединение Из СоединенияИнформационнойБазы Цикл

               
ТЗ=ИтогСписокСоединений.Добавить();
               
ТЗ.Пользователь=СокрЛП(Соединение.Пользователь.Имя);
               
ТЗ.КоличествоСоединений = 1;

            КонецЦикла;
           
Отбор=Новый Структура("Пользователь",СокрЛП(Пользователь.Код));
           
ОтборПользователя=Новый Структура("Пользователь",Пользователь);
           
Нашли=ИтогСписокСоединений.НайтиСтроки(Отбор);
           
//Получим сколько соединений разрешено
           
КоличествоРазрешенных=РегистрыСведений.КоличествоСессийПользователя.СрезПоследних(,ОтборПользователя);
            Если
КоличествоРазрешенных.Количество()=0 Тогда
               
КоличествоРазрешенныхСессий=1;
            Иначе
               
КоличествоРазрешенныхСессий=КоличествоРазрешенных.Получить(0).КоличествоДополнительныхСессий+1;
            КонецЕсли;
           
//Проверим, а вдруг это ADM входит
           
сеть = новый ComОбъект("wscript.network");
           
ПользовательОС="\\"+сеть.UserDomain+"\"+сеть.UserName;
            Если
ВРег(Соединение.Пользователь.ПользовательОС)=ВРег(ПользовательОС) Тогда
               
//Проверим а есть ли разрешенные сессии
               
Если Нашли.Количество()>КоличествоРазрешенныхСессий Тогда
                   
Предупреждение("Превышено количество разрешенных сессий.",5,"Система ограничений");
                   
ЗавершитьРаботуСистемы(Ложь, Ложь);
                    Возврат;
                КонецЕсли;
            КонецЕсли;
           
нНомерТекущегоСоединения=НомерСоединенияИнформационнойБазы();
        КонецЕсли;
   
#КонецЕсли
КонецПроцедуры

 

Регистр простейший Пользователь/КоличествоДополнительныхСессий периодический

P.S. Если есть АД то в случае Авторизации через ОС еще полезная штука для тестировщиков.

 

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    20130    dimanich70    81    

144

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4091    3    John_d    11    

57

Универсальные функции Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    18067    atdonya    24    

56

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    5502    ke.92@mail.ru    16    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14734    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3581    56    progmaster    8    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18478    171    sapervodichka    112    

135
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. JRG 28.09.11 16:27 Сейчас в теме
2. kiros 52 29.09.11 08:43 Сейчас в теме
3. anig99 2852 29.09.11 14:52 Сейчас в теме
М... а галочка в типовых "Запретить пользователю больше 1 сессии"???
4. Dushka 7 29.09.11 15:05 Сейчас в теме
(3)есть такая галочка в настройках пользователя :)
но всё равно молодец ведь! и для нетиповых очень пригодится
плюсану
8. seducer 84 29.09.11 16:06 Сейчас в теме
А у нас при входе в терминалку сразу запускается 1С. Пользователям политиками запрещено все. Ни рабочий стол, ни "Пуск" не видны.
(3) А галка такая есть не во всех типовых. Например, в УТ нет такого (если не содрать, например, с УПП) :).
11. Cobranet123 373 30.09.11 10:31 Сейчас в теме
(3)(4) А где вы в типовых нашли такую галку?? Вот смотрю щас что БП2.0 что ЗУП ну не вижу этой галочки и все, может скриншот для особо слепых?
5. zaxarovsky 111 29.09.11 15:38 Сейчас в теме
Привышено каличество разришеных сисек
6. cool.vlad4 2 29.09.11 15:41 Сейчас в теме
(5)Евгений Ваганович, вы тоже задумались над этой проблемой?
7. forurchik 29.09.11 15:45 Сейчас в теме
классная обработка. ндоели бухи. спасибо автору
9. echo77 1906 30.09.11 07:24 Сейчас в теме
- Требует доработку: РегистрСведений.КоличествоСессийПользователя
- Не понятно, зачем делать регистр сведений периодическим?
- Код можно написать короче, если сворачивать таблицу соединений
10. ediks 337 30.09.11 09:30 Сейчас в теме
(0)Третий день смотрю на главной странице ИС вывеску "Превышено количество разрешенных сесСий".
Кирилл, поправь опечатку на картинке, что-ли!!! :)
ЗЫ: да и в коде неплохо было бы...
12. seducer 84 30.09.11 13:19 Сейчас в теме
(10) А что не так? Если честно, не въехал.
14. ediks 337 30.09.11 13:47 Сейчас в теме
(12) Слово "сеССия" пишется с 2 буквами С. Просто автор опечатался. Заголовок-то у публикации верно написан.
15. seducer 84 30.09.11 14:08 Сейчас в теме
(14) Так на картинке 2 буквы "с". Или уже поправили картинку?
13. anig99 2852 30.09.11 13:29 Сейчас в теме
Настройки пользователя - другие настройки
16. f_fobos 30.09.11 19:23 Сейчас в теме
echo77 пишет:
- Не понятно, зачем делать регистр сведений периодическим?

говорит Капитан Очевидность:
а) Для хранения истории.
б) На случай изобретения машины для перемещения пользователя во времени.
17. odineskin 02.10.11 17:39 Сейчас в теме
а работает ли ваша настройка при работе с одной учетки? или только когда с нескольких заходят?
18. kiros 52 03.10.11 09:06 Сейчас в теме
(17) odineskin, работает, только проверку на "ПользовательОС" надо убрать.
19. vigo67 04.10.11 09:47 Сейчас в теме
Тоже проблемы с нехваткой лиценьзий из-за забытых терминальных сессий. Будем пробовать ваш спсоб борьбы с этой бедой.
20. nickkey 07.10.11 11:20 Сейчас в теме
вещь неплохая каждый чего то почерпнет судя из поста много еще идей добавилось да и ваще пора наверно сварганить чего нибудь экстраординарное какую нибудь надстройку чтоли со средствами администрирования було бы кулл :)))
21. zhleonid8 18.11.11 09:12 Сейчас в теме
убедился что лучший способ делать правильно -научить пользователей, но обработка кул
22. vovafr1 4 13.03.21 17:28 Сейчас в теме
добрый день! у меня проблема в другом - баз 30, лицензий как всегда меньше, некоторые пользователи несколько раз открывают одну и туже базу, бывает из-за сбоев интернета, или просто "забыли закрыть на работе открывают дома или еще где нибудь, появляются не активные сесии, память сервера загружена, лицензия занята! три пользователя при сбоях интернета могут забрать все лицензии, нужно расширение которое закрывала первую сесию при открытии второй!
Оставьте свое сообщение