|   |   | 
| 
 | Как прервать формирование отчета | ☑ | ||
|---|---|---|---|---|
| 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-сервера. Чтобы проверить что быдет с тяжелым запросом после отмены задания напишите тяжелый запрос с использованием декартового произведения чтобы подвесить сервер и посмотрите когда реально произойдет отмена. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |