Закрытие незавершенных сеансов
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Сделал подобное при запуске 1с в режиме предприятия. У 90 процентов пользователей разрешён только один сеанс, поэтому при запуске чистим все, кроме текущего. У остальных пользователе могут быть одновременно запущено два-три сеанса: выгрузки/загрузки, большие отчёты, закрытия месяца и т.д. Плюсы: не зависших сеансов), минусы - чуть дольше загружается 1С, но люди предупреждены и относятся с пониманием)
У начальства механизм отключен, но это буквально три человека.
Есть в проекте фиксировать новый сеанс и старые чистить в фоне.
У начальства механизм отключен, но это буквально три человека.
Есть в проекте фиксировать новый сеанс и старые чистить в фоне.
(3)В процедуре ПриНачалеРаботыСистемы был добавлен кусок кода, например для пользователей, которым можно до двух сеансов:
Тут интересны два момента:
1) НомерСоединенияИнформационнойБазы() - Получает номер текущего соединения с информационной базой.
2) ПолучитьСоединенияИнформационнойБазы() - Получает массив описаний соединений с текущей информационной базой.
И всё, третий сеанс им не даёт открыть.
У нас ещё есть пользователи, которым можно любое количество сеансов.
Всем остальным было сделано при открытии нового сеанса просто сбрасывали все ранние. Так решилась проблема зависших сеансов, когда пользователи не могли зайти в документ, который они открывали зависшими сеансами.
Топорно, но работает)
//можно до двух сеансов
КолвоСеансов =0;
ТекНомерСоединения = НомерСоединенияИнформационнойБазы();
УИДПользюка = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
Для Каждого ТекСоединение Из МассивСоединений Цикл
Если (ТекСоединение.ИмяПриложения = "1CV8") И (НЕ ТекСоединение.НомерСоединения = ТекНомерСоединения) И (НЕ ТекСоединение.Пользователь = Неопределено) И (ТекСоединение.Пользователь.УникальныйИдентификатор = УИДПользюка) Тогда
КолвоСеансов=КолвоСеансов+1;;
КонецЕсли;
КонецЦикла;
Если КолвоСеансов > 2 тогда
Предупреждение("У Вас уже открыто два сеанса!",3);
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
Возврат;
ПоказатьТут интересны два момента:
1) НомерСоединенияИнформационнойБазы() - Получает номер текущего соединения с информационной базой.
2) ПолучитьСоединенияИнформационнойБазы() - Получает массив описаний соединений с текущей информационной базой.
И всё, третий сеанс им не даёт открыть.
У нас ещё есть пользователи, которым можно любое количество сеансов.
Всем остальным было сделано при открытии нового сеанса просто сбрасывали все ранние. Так решилась проблема зависших сеансов, когда пользователи не могли зайти в документ, который они открывали зависшими сеансами.
Топорно, но работает)
Здравствуйте. Скачал обработку, тестирую, вроде работает. Такой вопрос. Можно ли как-то ее изменить так чтобы был функционал:
1. Подключение одновременно к нескольким экземплярам серверов 1С:Предприятия
2. Чтобы была опция просто удаления всех сеансов с указанных серверов 1С:Предприятия, вне зависимости от того, считает обработка их потерянными или нет.
1. Подключение одновременно к нескольким экземплярам серверов 1С:Предприятия
2. Чтобы была опция просто удаления всех сеансов с указанных серверов 1С:Предприятия, вне зависимости от того, считает обработка их потерянными или нет.
(9)
1. Несколько серверов - в смысле, чтобы в поле Сервер можно было задать список через запятую или еще как, а все остальное было как прежде?
Можно подумать. Гораздо лучшая идея - взять мой код, посмотреть на него критически, сказать "ну, кто ж так пишет" и сделать свой, гораздо более правильный ;) А потом опубликовать на Инфостарте и не забыть сказать в начале статьи, кто вдохновил вас на подвиг ;)
Тем более, что вы лучше знаете, чего хотите. Здесь много разработок именно так и возникли.
2. Удаление всех сеансов не глядя - как раз то, что мне предлагали сделать с самого начала в качестве единственной функции. Я тогда сказал, что с ума еще не сошел ;)
Наверно, это все же полезная опция. Может, даже полезнее, чем некоторые из имеющихся. Просто я всегда руководствовался принципом "не навреди" ;)
1. Несколько серверов - в смысле, чтобы в поле Сервер можно было задать список через запятую или еще как, а все остальное было как прежде?
Можно подумать. Гораздо лучшая идея - взять мой код, посмотреть на него критически, сказать "ну, кто ж так пишет" и сделать свой, гораздо более правильный ;) А потом опубликовать на Инфостарте и не забыть сказать в начале статьи, кто вдохновил вас на подвиг ;)
Тем более, что вы лучше знаете, чего хотите. Здесь много разработок именно так и возникли.
2. Удаление всех сеансов не глядя - как раз то, что мне предлагали сделать с самого начала в качестве единственной функции. Я тогда сказал, что с ума еще не сошел ;)
Наверно, это все же полезная опция. Может, даже полезнее, чем некоторые из имеющихся. Просто я всегда руководствовался принципом "не навреди" ;)
(10)
Наподобие. Анатолий, если более подробно, нам нужно несколько переделать вашу обработку, чтобы она удаляла зависшие сеансы не только из серверов 1С, но так же из базы контроля сеансов ( база, подключаемая в поле "Внешнее управление сеансами" в свойствах БД в оснастке Администрирование Серверов 1С:Предприяития. Мы за это готовы заплатить. Если интересует - давайте свяжемся и более подробно все обсудим
Skype sanya.admin1 .
Несколько серверов - в смысле, чтобы в поле Сервер можно было задать список через запятую или еще как
Наподобие. Анатолий, если более подробно, нам нужно несколько переделать вашу обработку, чтобы она удаляла зависшие сеансы не только из серверов 1С, но так же из базы контроля сеансов ( база, подключаемая в поле "Внешнее управление сеансами" в свойствах БД в оснастке Администрирование Серверов 1С:Предприяития. Мы за это готовы заплатить. Если интересует - давайте свяжемся и более подробно все обсудим
Skype sanya.admin1 .
Вакансии
Консультант-программист по информационным системам 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день