Интервалы оповещения перед блокировкой пользователей
Добрый день!
Перед обновлением базы устанавливаем блокировку начала сеансов по времени, она начинает срабатывать за 15 минут до начала блокировки, т.е. пользователям выходит окно что сеанс будет завершен и тд.
Причем это окошко выходит раз в минуту следующие 10 минут до блокировки, и раз в 30 секунд за 5 минут до блокировки.
Вопрос - где настраиваются эти интервалы?
Перед обновлением базы устанавливаем блокировку начала сеансов по времени, она начинает срабатывать за 15 минут до начала блокировки, т.е. пользователям выходит окно что сеанс будет завершен и тд.
Причем это окошко выходит раз в минуту следующие 10 минут до блокировки, и раз в 30 секунд за 5 минут до блокировки.
Вопрос - где настраиваются эти интервалы?
Прикрепленные файлы:
По теме из базы знаний
- Конфигурация для отключения зависших сеансов пользователей при резервном копировании, обновлении конфигурации узла распределенной клиент-серверной базы 8.2, 8.3
- Приемы обработки больших данных в 1С
- RabbitMQ + Конвертация Данных 3.0
- Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)
- Обзор полезных методов БСП 3.1.4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Проблема рассинхронизации часов
При файловой ИБ каждый компьютер сам проверяет, имеется ли в ИБ установленный временной диапазон блокировки, и сравнивает его со своими локальными часами. От точности своих часов зависит, сможет ли данный компьютер осуществить завершение сеанса точно в нужное время. Если база блокируется с 10:00, для одного компьютера этот момент наступит раньше, а для другого – позже.
В доменной среде и при безупречной работе системных администраторов время на всех компьютерах синхронизируется с контроллером домена. Но по разным причинам время может быть сбито: не настроена синхронизация времени с контроллером домена, настроена синхронизация времени с внешним сервером точного времени, который более недоступен, сбои в работе сетевых или доменных служб, отсутствие прав на изменение системного времени и т.д.
Кажется, что речь может идти о секундах, в крайнем случае, минутах. Но на самом деле, на компьютере может быть, например, не установлено обновление операционной системы, поддерживающее переход на сезонное (зимнее/летнее) время, и ошибка уже может составлять не секунды, а часы. Легко провести такой эксперимент: запланируйте блокировку на 10 утра длительностью полчаса, а на одном из компьютеров переведите время на час вперед – блокировка на него не подействует.
Поэтому перед установкой блокировки внимательно сверьте время в правом нижнем углу компьютера со своими наручными часами, а также заблаговременно обратитесь к своему системному администратору с вопросом, работает ли синхронизация времени в вашей ИТ-инфраструктуре.
А как же мои пользователи во Владивостоке?
Проблема абсолютного времени при пользователях из разных часовых поясов
Временной диапазон блокировки сохраняется в информационной базе. Посмотрите на содержимое блокировочного файла 1Сv8.cdn (который создается в файловом варианте ИБ), в нем записано время начала блокировки 17.07.2017 13:59 в формате ГГГГММДДЧЧММСС без какого-либо указания на часовой пояс:
Рис.20 Содержимое блокировочного файла
Рис.20 Содержимое блокировочного файла
Без указания на часовой пояс было бы понятно, о каком абсолютном времени идет речь, если время всегда относилось бы к какому-то конкретному часовому поясу, например UTC+0. Но в базе сохраняется локальное время по часам компьютера, который являлся инициатором блокировки. Из какого часового пояса был этот компьютер – неизвестно, а значит неизвестно абсолютное время блокировки.
Если в Москве, в централизованной ИБ, вы устанавливаете блокировку в 13:59, и этот момент времени для московских пользователей находится в будущем, то у пользователей этой же ИБ во Владивостоке 13:59 было 7 часов назад. И в зависимости от технического решения, в соответствии с которым осуществляется работа с ИБ пользователей Владивостока, блокировка этих пользователей либо сработает, либо нет.
Какие могут быть технические решения, в которых блокировка будет работать неправильно для пользователей Владивостока? Те, при которых клиентская часть 1С получит время по Владивостоку, а не по Москве. Например, офисы связаны в локальную сеть по VPN, а клиентская часть 1С запускается с локального компьютера, имея время UTC+10. Но если они работают с базой через RDP-соединение или в режиме RemoteApp на московском сервере, запуская на этом сервере клиентскую часть 1С – все будет хорошо, т.к. она будет иметь время UTC+3.
Имеется ли проблемы рассинхронизации часов и часового пояса в случае SQL-варианта информационной базы?
Нет. В данном варианте есть «часы сервера», которые принимаются за эталон.
Выкинет ли меня из Конфигуратора, если я был в нем, а блокировка начала действовать?
Нет.
При файловой ИБ каждый компьютер сам проверяет, имеется ли в ИБ установленный временной диапазон блокировки, и сравнивает его со своими локальными часами. От точности своих часов зависит, сможет ли данный компьютер осуществить завершение сеанса точно в нужное время. Если база блокируется с 10:00, для одного компьютера этот момент наступит раньше, а для другого – позже.
В доменной среде и при безупречной работе системных администраторов время на всех компьютерах синхронизируется с контроллером домена. Но по разным причинам время может быть сбито: не настроена синхронизация времени с контроллером домена, настроена синхронизация времени с внешним сервером точного времени, который более недоступен, сбои в работе сетевых или доменных служб, отсутствие прав на изменение системного времени и т.д.
Кажется, что речь может идти о секундах, в крайнем случае, минутах. Но на самом деле, на компьютере может быть, например, не установлено обновление операционной системы, поддерживающее переход на сезонное (зимнее/летнее) время, и ошибка уже может составлять не секунды, а часы. Легко провести такой эксперимент: запланируйте блокировку на 10 утра длительностью полчаса, а на одном из компьютеров переведите время на час вперед – блокировка на него не подействует.
Поэтому перед установкой блокировки внимательно сверьте время в правом нижнем углу компьютера со своими наручными часами, а также заблаговременно обратитесь к своему системному администратору с вопросом, работает ли синхронизация времени в вашей ИТ-инфраструктуре.
А как же мои пользователи во Владивостоке?
Проблема абсолютного времени при пользователях из разных часовых поясов
Временной диапазон блокировки сохраняется в информационной базе. Посмотрите на содержимое блокировочного файла 1Сv8.cdn (который создается в файловом варианте ИБ), в нем записано время начала блокировки 17.07.2017 13:59 в формате ГГГГММДДЧЧММСС без какого-либо указания на часовой пояс:
Рис.20 Содержимое блокировочного файла
Рис.20 Содержимое блокировочного файла
Без указания на часовой пояс было бы понятно, о каком абсолютном времени идет речь, если время всегда относилось бы к какому-то конкретному часовому поясу, например UTC+0. Но в базе сохраняется локальное время по часам компьютера, который являлся инициатором блокировки. Из какого часового пояса был этот компьютер – неизвестно, а значит неизвестно абсолютное время блокировки.
Если в Москве, в централизованной ИБ, вы устанавливаете блокировку в 13:59, и этот момент времени для московских пользователей находится в будущем, то у пользователей этой же ИБ во Владивостоке 13:59 было 7 часов назад. И в зависимости от технического решения, в соответствии с которым осуществляется работа с ИБ пользователей Владивостока, блокировка этих пользователей либо сработает, либо нет.
Какие могут быть технические решения, в которых блокировка будет работать неправильно для пользователей Владивостока? Те, при которых клиентская часть 1С получит время по Владивостоку, а не по Москве. Например, офисы связаны в локальную сеть по VPN, а клиентская часть 1С запускается с локального компьютера, имея время UTC+10. Но если они работают с базой через RDP-соединение или в режиме RemoteApp на московском сервере, запуская на этом сервере клиентскую часть 1С – все будет хорошо, т.к. она будет иметь время UTC+3.
Имеется ли проблемы рассинхронизации часов и часового пояса в случае SQL-варианта информационной базы?
Нет. В данном варианте есть «часы сервера», которые принимаются за эталон.
Выкинет ли меня из Конфигуратора, если я был в нем, а блокировка начала действовать?
Нет.
Нашла только в конфигураторе: ОбщийМодуль.СоединениеИБКлиент.ПоказатьПредупреждениеПриЗавершенииРаботы, в строке ПоказатьПредупреждение - таймаут в 30 секунд стоит, по умолчанию.
А для вопроса в том же модуле процедура - ЗадатьВопросПриЗавершенииРаботы - аналогично в 30 секунд, по умолчанию.
Интервал, что именно за 15 минут до начала блокировки он начинает выдавать предупреждения, в ОбщийМодуль.СоединенияИБГлобальный. КонтрольРежимаЗавершенияРаботыПользователей и там же процедура ПараметрыБлокировкиСеансовРасширенные - там 15*60 ИнтервалОжиданияЗавершенияРаботыПользователей.
А для вопроса в том же модуле процедура - ЗадатьВопросПриЗавершенииРаботы - аналогично в 30 секунд, по умолчанию.
Интервал, что именно за 15 минут до начала блокировки он начинает выдавать предупреждения, в ОбщийМодуль.СоединенияИБГлобальный. КонтрольРежимаЗавершенияРаботыПользователей и там же процедура ПараметрыБлокировкиСеансовРасширенные - там 15*60 ИнтервалОжиданияЗавершенияРаботыПользователей.
Функция ПараметрыИнформирования(ВремяНачалаБлокировки)
ИмяПараметра = "СтандартныеПодсистемы.ПоказаноПредупреждениеПередЗавершениемРаботы";
Свойства = ПараметрыПриложения[ИмяПараметра];
Если Свойства = Неопределено Или Свойства.ВремяНачалаБлокировки <> ВремяНачалаБлокировки Тогда
Свойства = Новый Структура;
Свойства.Вставить("ОповещениеПоказано", Ложь);
Свойства.Вставить("ПоказатьПредупреждениеИлиВопрос", Ложь);
Свойства.Вставить("ДатаПоследнегоПредупрежденияИлиВопроса", '00010101');
Свойства.Вставить("ВремяНачалаБлокировки", ВремяНачалаБлокировки);
ПараметрыПриложения.Вставить(ИмяПараметра, Свойства);
КонецЕсли;
ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
//+++ (Изменено)
//Если Свойства.ДатаПоследнегоПредупрежденияИлиВопроса + 50 < ДатаСеанса Тогда
// Свойства.ДатаПоследнегоПредупрежденияИлиВопроса = ДатаСеанса;
// Свойства.ПоказатьПредупреждениеИлиВопрос = Истина;
//Иначе
// Свойства.ПоказатьПредупреждениеИлиВопрос = Ложь;
//КонецЕсли;
Интервал = 55;
Если ВремяНачалаБлокировки - ДатаСеанса >= 300 Тогда
Интервал = 295;
КонецЕсли;
Если Свойства.ДатаПоследнегоПредупрежденияИлиВопроса + Интервал < ДатаСеанса Тогда
Свойства.ДатаПоследнегоПредупрежденияИлиВопроса = ДатаСеанса;
Свойства.ПоказатьПредупреждениеИлиВопрос = Истина;
Иначе
Свойства.ПоказатьПредупреждениеИлиВопрос = Ложь;
КонецЕсли;
// --- (Изменено)
Возврат Свойства;
КонецФункции
Показатьинтервал по умолчанию составлял 50.
от 15 минут до 5 минут : сообщение каждые 5 минут
от 5 минут до блокировки : сообщение каждую минуту
СоединенияИБ.ПараметрыБлокировкиСеансовРасширенные(Знач ПолучитьКоличествоСеансов, ПараметрыБлокировки)
Результат = Новый Структура;
Результат.Вставить("Установлена", ТекущийРежим.Установлена);
Результат.Вставить("Начало", ТекущийРежим.Начало);
Результат.Вставить("Конец", ТекущийРежим.Конец);
Результат.Вставить("Сообщение", ТекущийРежим.Сообщение);
Результат.Вставить("ИнтервалОжиданияЗавершенияРаботыПользователей", 15 * 60); //15 минут.
Результат.Вставить("КоличествоСеансов", ?(ПолучитьКоличествоСеансов, КоличествоСеансовИнформационнойБазы(), 0));
Результат.Вставить("ТекущаяДатаСеанса", ПараметрыБлокировки.ТекущаяДата);
Результат.Вставить("ПерезапуститьПриЗавершении", Истина);
Результат = Новый Структура;
Результат.Вставить("Установлена", ТекущийРежим.Установлена);
Результат.Вставить("Начало", ТекущийРежим.Начало);
Результат.Вставить("Конец", ТекущийРежим.Конец);
Результат.Вставить("Сообщение", ТекущийРежим.Сообщение);
Результат.Вставить("ИнтервалОжиданияЗавершенияРаботыПользователей", 15 * 60); //15 минут.
Результат.Вставить("КоличествоСеансов", ?(ПолучитьКоличествоСеансов, КоличествоСеансовИнформационнойБазы(), 0));
Результат.Вставить("ТекущаяДатаСеанса", ПараметрыБлокировки.ТекущаяДата);
Результат.Вставить("ПерезапуститьПриЗавершении", Истина);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот