Имя: Пароль:
1C
1С v8
как сделать блокировку на несколько часов
0 vde69
 
13.11.23
14:53
Есть некий инструмент с которым должен работать только один человек. Причем это может требовать от человека значительное время (больше часа), по факту это работа в сторонней системе через сервисы.

кроме того необходимо, чтобы блокировка снималась автоматически если человек вышел (или его выкинули) из 1с.

как лучше реализовать подобную блокировку?
1 rphosts
 
13.11.23
15:09
(0) клиент может отвалиться по ошибке, нужен внешний процесс контролирующий активность... ну типа костыли и лисапеды: пока клиент жив - периодически (регламентным) обновляет сигнальный файл/запись в РС(или справочник) с актуальной датой. Как провал на 2 периода - пора блокировать.
2 Smit1C
 
13.11.23
15:05
(0) а что блокировать надо ?
3 АНДР
 
13.11.23
15:11
1) В процессе выполнения задания клиент/регзадание устанавливает в константу текущее время;
2) Другое регзадание, снимает блокировку, если превышен таймаут.
Годится?
4 H A D G E H O G s
 
13.11.23
15:15
ЗаблокироватьДанныеДляРедактирования(СсылкаНаПредопределенныйЭлементСправочникаБлокировок,,ИдентификаторФормы);

ИдентификаторФормы = Форма, которая висит в режиме рабочего стола, есть в типовых например, ТекущиеДела.
5 vde69
 
13.11.23
15:31
(4) вроде подходит...
6 H A D G E H O G s
 
13.11.23
15:34
(5) Там только снятие блокировки через некоторое время, если ее явно не снимать. Но можно снять и явно, в обработчике ПередЗавершениемРаботыСистемы()
7 PLUT
 
13.11.23
15:48
вот еще, как вариант

Блокировка = Новый БлокировкаСеансов;
				
				Блокировка.КодРазрешения    = Настройки["КодРазрешения"];
				Блокировка.Начало           = НачалоДня(ТекущаяДата()) + Число(Настройки["ВремяНачалаБлокировки"] - Дата(1,1,1));
				Блокировка.Конец            = НачалоДня(ТекущаяДата()) + Число(Настройки["ВремяОкончанияБлокировки"] - Дата(1,1,1));
				Блокировка.Сообщение        = Настройки["ТекстСообщения"];
				Блокировка.Установлена      = Истина;
				
				УстановитьБлокировкуСеансов(Блокировка);
8 PLUT
 
13.11.23
15:50
(7) но это для "монопольной" работы по расписанию и вход по коду разрешения /UC...

невнимательно прочитал (0)
9 rphosts
 
13.11.23
16:10
(6) ну вот и почти идеально, по регламенту периодически блочить, если сеанс отвалится - само разблочится