Имя: Пароль:
1C
1С v8
Поиск фоновых заданий, запущенных от конкретного пользователя
, ,
0 OldCondom
 
13.07.23
19:03
Есть ли способ найти фоновики от конкретного пользователя?
В ФоновыеЗадания.ПолучитьФоновыеЗадания() только наименования задания, УИД и прочее, а вот пользователя нет.
Суть задачи - запретить пользователям выполнять кучу тяжелых отчетов одновременно. Любят бухи запускать по 20 отчетов, когда закрытие идет, все тормозит, ошибки сыпятся.
Или как-то узнать УИДЫ заданий от конкретного пользователя? Не нашел в СП такого
1 lubitelxml
 
13.07.23
19:06
(0) "Любят бухи запускать по 20 отчетов, когда закрытие идет" - а у нас обычно глав. бух. всех выгоняет из базы и закрывает месяц.
2 OldCondom
 
13.07.23
19:07
Это да, обычно так и бывает, но у нас бухов я так понял сотни
3 volumnii
 
13.07.23
19:27
(2) Тогда надо уволить и сразу упростится. Зачем столько бухов?
4 lubitelxml
 
13.07.23
19:28
(2) и что с того? Если глав. бух сказал всем - все выйдут, это чисто административный момент
5 volumnii
 
13.07.23
19:31
Если совсем в немоготу, то читай ЖР, по событию запуска и которых не было окончания. Там и пользователь и т.п. есть.
6 lubitelxml
 
13.07.23
19:31
(0) ну попробуй так, если слово глав. буха не имеет "веса" у вас: https://forum.infostart.ru/forum8/topic103182/
7 OldCondom
 
13.07.23
19:33
(5)да, только это нашёл. Штош, лучше чем ничего, спасибо
8 OldCondom
 
13.07.23
19:34
(6) хех. У нас почти все работает на фоновых. Останивить = суицид
9 lubitelxml
 
13.07.23
19:35
(8) ну тогда согласен, пробуй парсить ЖР
10 lubitelxml
 
13.07.23
19:36
(8) консоль заданий видел? Она тебе не сможет помочь? Возможно там найдешь как юзера вытащить...
11 lubitelxml
 
13.07.23
19:50
Кстати - почему бы не банить по наименованию фонового? или оно не особо информативно?
12 OldCondom
 
13.07.23
19:52
(11) думал, но таких сотни, я же всех ждать буду, а мне надо 1 юзера
13 mistеr
 
14.07.23
06:27
(0) Решение так себе, создаст больше проблем, чем решит. Поищи решение получше.
14 Мимохожий Однако
 
14.07.23
06:46
(0) Т.е. при запуске задач по закрытию месяца заблокировать запуск тяжёлых отчетов? Собери список отчетов и добавь в них отказ при открытии во время работы регламентных задач по закрытию месяца с сообщением "Тётя Валя, сейчас не время".
15 OldCondom
 
14.07.23
09:33
(14) Не совсем так. Запретить открывать один и тот же отчет в разных сеансах/одном и том же сеансе. Типовой функционал, к примеру, БП, не дает выполниться одному и тому же отчету дважды в одной форме. При многократном нажатии "Сформировать" выполнятеся такой кусок: ДлительныеОперации.ОтменитьВыполнениеЗадания(Форма.ОписаниеЗаданияФормированияОтчета.ИдентификаторЗадания);

Но если открыть две формы, скажем, ОСВ, то они вполне себе будут выполнятся параллельно, так как у них идентификаторы разные. Именно это мне надо запретить. Именно так бухгалтера и делают. Запускают что-то тяжелое, ой тормозит, надо еще раз запустить из другого сеанса/формы. И они теперь тормозят еще сильнее.
16 OldCondom
 
14.07.23
09:34
Поэтому хочу выполнить поиск среди всех фоновиков. К примеру, пользователь запускает ОСВ. Надо поискать по всем фоновикам от этого пользователя, а не формируется ли на данный момент другая ОСВ? Именно ОСВ, карточку счета, к примеру, может формировать, но только одну по такому же принципу.
17 НЕА123
 
14.07.23
10:28
(16)
может подписка на событие отчета достаточно?
18 mistеr
 
14.07.23
11:43
А может пора оптимизацией заняться?
19 Aleksey
 
14.07.23
12:21
(18) оптимизацией кода типовой? Ну если 1с не осилил, то куда нам.
Или речь про количество пользователей?
20 OldCondom
 
14.07.23
12:46
пока на ум приходит только запись в новый РС списка фоновиков от этого пользователя. Заполнение и удаление будет где-нибудь в общем месте типовой конфы, или же БСП по длительным заданиям, искать по имени задания, потом обращаться к регистру, отказ... Мде
21 OldCondom
 
14.07.23
13:02
Хм, в модуле сеанса можно ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание() и грохнуть, если это фоновое. Вот только все равно не известно, запущенны ли такие же фоновики, снова в РС..