Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Универсальный способ уведомлений о длительных операциях

v7: Универсальный способ уведомлений о длительных операциях
Я
   Тёплый фарфор
 
02.11.18 - 10:38
Коллеги, тут такую задачу хотелось бы сделать.
Каждый раз, после запуска длительной операции, блокирующей работу пользователя в БД, хотелось бы получать уведомление о завершении. Пусть это будет просто Сообщить(). Главное - можно реализовать универсальный механизм, чтобы не нужно было везде вносить подписку на окончание операции? Что-то типа глобальной процедуры Formex ПослеОткрытия(), которая срабатывает после открытия любого объекта БД, но тут - ПослеВыполнения() Есть идеи?
 
 
   АЛьФ
 
1 - 02.11.18 - 10:41
Длительная операция - это просто долгое выполнение какой-то процедуры?
   Тёплый фарфор
 
2 - 02.11.18 - 10:41
да
   Cool_Profi
 
3 - 02.11.18 - 10:45
V7 и подписка?
   Ёпрст
 
4 - 02.11.18 - 10:48
(0) ну дык оформи подписку в перехватчике, например.
   Ёпрст
 
5 - 02.11.18 - 10:48
Только вот непонятно, кому ты событие хочешь посылать
   Peltik
 
6 - 02.11.18 - 10:51
(0) прогрессбар нарисуй что бы не скучали
   Тёплый фарфор
 
7 - 02.11.18 - 10:51
(4) если мне не изменяет память, то там нужно знать процедуру, которая вызывается? Если так - то это не подходит, т.к. они могут быть разные
(5) лампочка у меня есть, которой могу управлять из 1С. Когда куча окошек открыто, не хочу постоянно переключаться и смотреть "когда же сформируется очет"
   Тёплый фарфор
 
8 - 02.11.18 - 10:51
(6) не катит
   Peltik
 
9 - 02.11.18 - 10:54
(8) чего так?
   Тёплый фарфор
 
10 - 02.11.18 - 10:55
(9) лучше по теме...
 
 Рекламное место пустует
   big
 
11 - 02.11.18 - 10:55
А если сгенерировать внешнее событие и отлавливать его в ГМ?
   Peltik
 
12 - 02.11.18 - 10:56
(10) Ну база же заблокирована, один фиг сидят нифига не делают, так хоть бар видеть будут
   Тёплый фарфор
 
13 - 02.11.18 - 10:57
(11) кстати - мысль... думаю это вполне реально
   АгентБезопаснойНацио
 
14 - 02.11.18 - 10:57
может, просто не блокировать работу? отдавать задачу фоновому процессу...
   big
 
15 - 02.11.18 - 10:58
(14) Что-то типа робота, запущенного на сервере?
   Тёплый фарфор
 
16 - 02.11.18 - 10:59
(14) это в клюшках то? костыли типа COM имеются ввиду? Хочу лампочку!! (топаю ногами) :)))
   Ёпрст
 
17 - 02.11.18 - 10:59
(7) достаточно после окончания, вернуть фокус на 1с-ину программно.
   Тёплый фарфор
 
18 - 02.11.18 - 11:03
(17) Уже ближе, только я с перехватчиком на "Вы". Пни, пжта, хотя бы, куда копать дальше? Чтобы запустить перехватчик - нужно же привязываться к чему-то? Например к процедуре "Сформировать". Правильно я понимаю? Если так, то это не универсально...
   Тёплый фарфор
 
19 - 02.11.18 - 11:05
(11) я тут подумал... так то да, но это тоже не универсально.. . Самой лучшее - это какой-то способ опроса - заблокирована база или нет... возможно это?
   Ёпрст
 
20 - 02.11.18 - 11:06
(18) та нет, в отчете вернуть фокус на 1с-ину
   Ёпрст
 
21 - 02.11.18 - 11:07
после кода сформировать
   oslokot
 
22 - 02.11.18 - 11:08
(16) "фоновое задание" в клюшках, имеется ввиду запущенный процесс от пользователя-робота на сервере, который сделает всю работу сам и сообщит любым удобным способом.
   Тёплый фарфор
 
23 - 02.11.18 - 11:08
(20) вооотт.. т.е. в каждом отчёте надо прописывать... йа слишком ленив ))
   АгентБезопаснойНацио
 
24 - 02.11.18 - 11:09
(15) ага
(16) не обязательно ком, можно хоть NetaInet
   Ёпрст
 
25 - 02.11.18 - 11:09
типа НаПереднийПлан() у формекса
   Тёплый фарфор
 
26 - 02.11.18 - 11:10
(22) (24) не, ну не то это всё.. это отдельная тема, но благодарю за советы
   Ёпрст
 
27 - 02.11.18 - 11:10
(23) Ну, тогда Перехватчиком можно допилить, чтоб у отчетов "правил" формулу кнопки -  дописывал туда еще и твой код.
   Ёпрст
 
28 - 02.11.18 - 11:11
тип того (тут дописывал свой код в формулах):

http://catalog.mista.ru/public/20038/
   Тёплый фарфор
 
29 - 02.11.18 - 11:11
(27) ничёсе, и так можно? )) круть...
   Тёплый фарфор
 
30 - 02.11.18 - 11:13
(28) только... кнопок в отчёте может быть десяток... с разными вариантами.... надеюсь это смогу решить...
   АгентБезопаснойНацио
 
31 - 02.11.18 - 11:14
(28) В перехваченном ПриОткрытии искать кнопку "сформировать", и там подменять? прикольно...
хорошую шутку можно на 1 апреля сделать
   Ёпрст
 
32 - 02.11.18 - 11:15
(31) да, типа того
   Тёплый фарфор
 
33 - 02.11.18 - 11:17
(30) в принципе, думаю так: вешаю это на каждую кнопку, а затем смотрю на время выполнения... если больше заданного интервала - это мой случай...
 
 
   Ёпрст
 
34 - 02.11.18 - 11:22
(33)Можно еще поиграться с методом ПолучитьВремяПростояСистемы
   Ёпрст
 
35 - 02.11.18 - 11:23
и на его основе что-то слепить, ибо обработки ожидания, что формековские, что через класс таймер, не прерываются (работают всегда)
   Тёплый фарфор
 
36 - 02.11.18 - 11:34
спасибо... покурю... думаю пищи для размышления и экспериментов мне, пока, хватит...
   АгентБезопаснойНацио
 
37 - 02.11.18 - 13:11
(35) прикольно. работает.
я тут совместил - при открытии обработки подменяется формула, подмененная устанавливает соединение с другим экземпляром 1с, передает туда имя обработки и заполненные параметры. та выполняет. осталось как-то отловить вывод файла отчета (как отправить и показать - я знаю)
накувыркался с тем, что ПолучитьАтрибут работает с номерами атрибутов не от 1 до количества, а от 0 до кол-1. при попытке получить с несуществующим номером - падает.
если подскажешь, как отловить выведенный файл - может, причешу да выложу...
   АЛьФ
 
38 - 02.11.18 - 13:16
2(37) Можно попробовать по обработке ожидания ждать когда активный контекст станет таблицей.
   АгентБезопаснойНацио
 
39 - 02.11.18 - 13:18
хы, затупил. элементарно же - АктивныйКонтекст()
   АгентБезопаснойНацио
 
40 - 02.11.18 - 13:19
(38) ага, спасибо!
   АгентБезопаснойНацио
 
41 - 02.11.18 - 13:20
(38) мне даже обработка ожидания не нужна - я ж явно вызываю процедуру формирвания.
   Ёпрст
 
42 - 02.11.18 - 13:25
(41) нужна, если делать универсально и в одном месте..
   АгентБезопаснойНацио
 
43 - 02.11.18 - 13:30
(42) "в одном месте" - звучит двусмысленно...
у меня же "сервер отчетов" одновремено только один отчет формирует...
блин, ну что за жизнь. узнал, что "решение существует", и делать уже неинтересно...
   tgu82
 
44 - 02.11.18 - 13:34
Жива еще 7-ка )
Правда все эток 1С имеет уже мало отношения. Это как бы уже Дельфи
   Ёпрст
 
45 - 02.11.18 - 13:36
(43) имеется ввиду, универсальное задание, например, в глобальнике, которая будет делать НаПереднийПлан, если активный контекст стал Таблицей
   tgu82
 
46 - 02.11.18 - 13:45
(45) А точно ли активным контекстом станет нужная таблица из нужной формы ?
   Ёпрст
 
47 - 02.11.18 - 13:56
(46) дык там же и проверит, каков был предыдущий активный контекст
   Ёпрст
 
48 - 02.11.18 - 13:56
а по большому счету, пофик, если эта обработка ожидания будет всего лишь делать на переднийПлан
   АгентБезопаснойНацио
 
49 - 02.11.18 - 14:07
(45) так "сервер отчетов" не должен "на передний план"  ничего выдвигать - он вообще может на сервере крутиться... он просто сохраняет сформированую таблицу в файл, и передает его...
 
 Рекламное место пустует
   Kigo_Kigo
 
50 - 02.11.18 - 14:45
Еще, как я правиль понял задачу, на дельфях написать exe - к, ну типа ""Усё готово,ШЕФ!" с кнопкой ОК, положить его в базу и по окончании обработки ЗапуститьПриложение(КаталогИБ()+"Усеготово.exe")
А уж дельфях определить параметры хапуска этого приложения, ну там на передний план, моргать в трее и так далее
остается одна задача, распихать это все в конец нужных процедур
   АгентБезопаснойНацио
 
51 - 02.11.18 - 14:50
(50) сообщить-то можно с помощью 100500 методов... хоть письмом или СМС. или через астериску позвонить...
смысл был отловить завершение выполнения отчетов без переписывания
   Pahomich
 
52 - 02.11.18 - 15:10
А что мешает, просто перед КонецФункции, написать Сообщить("Я кончила"+ТекущееВремя)
   АгентБезопаснойНацио
 
53 - 02.11.18 - 15:23
(52) мешает то, что нужно 100500 отчетов переписать...
а мы уже сделали без всякого переписывания.
   АгентБезопаснойНацио
 
54 - 08.11.18 - 08:04
Есть у кого-нибудь старый RiK_Inet? решил "допилить и выложить", обновил библиотеку на скачаную - и работать перестало... сервер не создается, IP не получается, только ПолучитьВерсиюКомпоненты  работает :-(
   ADirks
 
55 - 08.11.18 - 08:20
(54) есть версия от 01.03.2008
   АгентБезопаснойНацио
 
56 - 08.11.18 - 08:33
(55) Закинь? или выложи куда-нибудь. плз.
на сайте от 18.12.09
   ADirks
 
57 - 08.11.18 - 08:42
(56) отправил в почту
   АгентБезопаснойНацио
 
58 - 08.11.18 - 08:53
ок, спасибо.
   АгентБезопаснойНацио
 
59 - 08.11.18 - 09:02
(57) Алексей, а может не работать из-за 64-разрядной винды? с присланой библиотекой такая же фигня...
   ADirks
 
60 - 08.11.18 - 10:10
(59) да запросто
тем более, учитывая что оно на Дельфе написано, и под винду 2000, может быть всё что угодно
   АгентБезопаснойНацио
 
61 - 08.11.18 - 10:11
(60) ясно. Буду у Олега исходники клянчить.
Но перед этим завтра на 32-й попробую, чтоб быть уверенным


Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует