|
Как прервать формирование отчета | ☑ | ||
---|---|---|---|---|
0
sidalexsandr
12.08.16
✎
23:15
|
Как прервать формирование отчета?
|
|||
1
vicof
12.08.16
✎
23:33
|
Кнопку питания компа нажми
|
|||
2
sidalexsandr
12.08.16
✎
23:38
|
(1) Только так ?
|
|||
3
Klesk666
12.08.16
✎
23:43
|
если выполняется запрос то никак, если например в цикле есть ОбработкаПрерыванияПользователя() то ctrl+break, еще вариант подключить отладку и там остановить (если выполняется на сервере то должна быть включена отладка на сервере)
|
|||
4
youalex
12.08.16
✎
23:49
|
если серверная база - убить процесс в СУБД (как вариант - перезагрузить сервер). Если файловая - убить процесс в диспетчере задач.
|
|||
5
Franchiser
гуру
13.08.16
✎
00:31
|
Делать отчет через фоновое задание и длительную операцию
|
|||
6
youalex
13.08.16
✎
00:51
|
(5) это чит. Несчитово.
|
|||
7
Провинциальный 1сник
13.08.16
✎
07:29
|
(5) А как принудительно остановить фоновое задание? (если клиенту стало пофиг на результат, а сервер нагружать бессмысленной работой не хочется?
|
|||
8
Franchiser
гуру
13.08.16
✎
07:44
|
(7) см в типовой: обработка ожидания, прерывание по esc
|
|||
9
Провинциальный 1сник
13.08.16
✎
19:23
|
(8) Вкратце методику можно?
|
|||
10
Franchiser
гуру
13.08.16
✎
22:14
|
При формировании отчета запускается типовая форма длительной операции, через обработчик ожидание дергается состояние фонового задание, по кнопке esc выскакивает предложение завршить формирование, и при опросе фонового задания выпрлнится его завершение
|
|||
11
sidalexsandr
13.08.16
✎
22:31
|
(10) По кнопке Esc не прерывается.
|
|||
12
Franchiser
гуру
13.08.16
✎
23:28
|
(11) твой отчет может и не прерывается, нужно при написании отчетов использовать технологию заложенную в бсп
|
|||
13
Franchiser
гуру
13.08.16
✎
23:30
|
У тебя толстый или тонкий коиент? Внешний или внутренний отчет? В зависимости от этого по разному нужно писать отчет
|
|||
14
Провинциальный 1сник
14.08.16
✎
06:49
|
"и при опросе фонового задания выпрлнится его завершение"
А как это конкретно происходит на уровне платформы? Есть метод "ПрерватьФоновоеЗадание" или типа такого? |
|||
15
Franchiser
гуру
14.08.16
✎
15:15
|
(14) Задание.Отменить();
ФоновоеЗадание (BackgroundJob) Отменить (Cancel) Синтаксис: Отменить() Описание: Отменяет задание. Задание может отменить только администратор или пользователь, запустивший задание. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
16
Franchiser
гуру
14.08.16
✎
15:17
|
(14) если посмотришь общую форму "ДлительнаяОперация", там есть кнопка "Отменить"
|
|||
17
Franchiser
гуру
14.08.16
✎
15:18
|
(14) по этой кнопке выполняется закрытие формы, код по завершению задания размещен в обработчике ПриЗакрытии()
|
|||
18
Провинциальный 1сник
14.08.16
✎
19:03
|
(15) И оно отменится в любом случае? А если в нём работает длительный тяжелый запрос - отменится сразу или платформа будет ждать, когда запрос выполнится?
|
|||
19
Franchiser
гуру
14.08.16
✎
20:45
|
(18) ждать не будет, отменит сразу
|
|||
20
Jija Grenkov
14.08.16
✎
20:48
|
(19) Сильно сомневаюсь, что отменит длительный запрос.
|
|||
21
Cyberhawk
14.08.16
✎
20:54
|
(19) Ошибаешься. Проверка отмены выполняется только после каждой строчки кода исполняемого языка. Ты даже на цикле в одну строчку проверь (пусть фоновое, например, каждую секунду пишет в файл кол-во проходов цикла)
|
|||
22
Franchiser
гуру
14.08.16
✎
21:33
|
(21) не проверял, отменит сразу, но завершит не сразу)
Через кластер серверов тоже ведь не сразу завершается а почему такие вопросы? тема про то как прервать выполнение отчета, визуально будет выглядеть что задание прервано, как физически платформа завершит запущенное задание - другой вопрос. |
|||
23
Провинциальный 1сник
14.08.16
✎
22:14
|
(22) Ага визуально отменено, а сервер грузится. Такой хоккей нам не нужен.
|
|||
24
Franchiser
гуру
14.08.16
✎
22:35
|
(21) (23) смысл фоновых заданий в том, что можно выполнять, формирование отчета в нескольких потоках.
Это может потребоваться для повышения производительности формирования обработки/отчета и как бонус можно завершать эти потоки. Так вот по-моему мнению, если мы из одного потока даем отмену на выполнения задания, в котором код выполняется не приостанавливаясь ни на секунду не зависимо от того что выполняется в других потоках, то утверждение (21) что проверить на цикле, в котором фоновое что-то пишет в файл не может быть убедительным, т.к. выполнения кода в 2-х разных потоках никак не связано. Через какое реально времени произойдет завершение фонового задание возможно знаю разработчики, но с написанным кодом в 1С не думаю что это вообще как-то связано. Максимум это м.б. связано с ожиданием каким-либо от sql-сервера. Чтобы проверить что быдет с тяжелым запросом после отмены задания напишите тяжелый запрос с использованием декартового произведения чтобы подвесить сервер и посмотрите когда реально произойдет отмена. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |