Закрытие незавершенных сеансов

6 Comments

  1. Maxx2008

    Сделал подобное при запуске 1с в режиме предприятия. У 90 процентов пользователей разрешён только один сеанс, поэтому при запуске чистим все, кроме текущего. У остальных пользователе могут быть одновременно запущено два-три сеанса: выгрузки/загрузки, большие отчёты, закрытия месяца и т.д. Плюсы: не зависших сеансов), минусы — чуть дольше загружается 1С, но люди предупреждены и относятся с пониманием)

    У начальства механизм отключен, но это буквально три человека.

    Есть в проекте фиксировать новый сеанс и старые чистить в фоне.

    Reply
  2. AnatolPopov

    Это у вас в самописной конфигурации реализовано или к типовым что-то пристроили?

    Reply
  3. hollyfood

    (1) Подскажите, пожалуйста, каким способом реализовали запрещение пользователям открывать еще один сеанс к той же БД?

    Reply
  4. AnatolPopov

    Ответил не по делу 😉

    Reply
  5. Maxx2008

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

    //можно до двух сеансов
    КолвоСеансов =0;
    ТекНомерСоединения = НомерСоединенияИнформационнойБазы();
    УИДПользюка = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
    МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
    Для Каждого ТекСоединение Из МассивСоединений Цикл
    Если (ТекСоединение.ИмяПриложения = «1CV8») И (НЕ ТекСоединение.НомерСоединения = ТекНомерСоединения) И (НЕ ТекСоединение.Пользователь = Неопределено) И (ТекСоединение.Пользователь.УникальныйИдентификатор = УИДПользюка) Тогда
    КолвоСеансов=КолвоСеансов+1;;
    КонецЕсли;
    КонецЦикла;
    Если КолвоСеансов > 2 тогда
    Предупреждение(«У Вас уже открыто два сеанса!»,3);
    ЗавершитьРаботуСистемы(Ложь);
    КонецЕсли;
    Возврат;
    

    Показать

    Тут интересны два момента:

    1) НомерСоединенияИнформационнойБазы() — Получает номер текущего соединения с информационной базой.

    2) ПолучитьСоединенияИнформационнойБазы() — Получает массив описаний соединений с текущей информационной базой.

    И всё, третий сеанс им не даёт открыть.

    У нас ещё есть пользователи, которым можно любое количество сеансов.

    Всем остальным было сделано при открытии нового сеанса просто сбрасывали все ранние. Так решилась проблема зависших сеансов, когда пользователи не могли зайти в документ, который они открывали зависшими сеансами.

    Топорно, но работает)

    Reply
  6. Maxx2008

    (2) Много лет назад она была типовой)))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *