Вход | Регистрация


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 или кнопку "Обновить" в браузере.
Рекламное место пустует