Как отменить формирование отчета в 1с
Перейти к содержимому

Как отменить формирование отчета в 1с

  • автор:

Прервать формирование отчёта в 1С:БП 8.3

Был задан такой вопрос в 1С: почему нет возможности прервать исполнение ошибочно запущенного отчёта? Приходится аварийно завершать сеанс работы с приложением.
Это СЪЕДАЕТ РАБОЧЕЕ ВРЕМЯ ПОЛЬЗОВАТЕЛЕЙ ПРОГРАММЫ.
1С:БП8.3(8.3.5.1383) ред.3.0(3.0.38.51)

Вчера получен ответ от разработчиков:

«Формирование отчета происходит на сервере, а прерывание доступно только на клиенте

В серверном режиме работы формирование отчетов не блокирует интерфейс, и если отчет запущен ошибочно, то его можно просто закрыть или изменить его настройки и запустить формирование заново, не дожидаясь пока он сформируется»

Как отменить формирование отчета в 1с

если выполняется запрос то никак, если например в цикле есть ОбработкаПрерыванияПользователя() то ctrl+break, еще вариант подключить отладку и там остановить (если выполняется на сервере то должна быть включена отладка на сервере)

если серверная база — убить процесс в СУБД (как вариант — перезагрузить сервер). Если файловая — убить процесс в диспетчере задач.

Делать отчет через фоновое задание и длительную операцию
(5) это чит. Несчитово.

(5) А как принудительно остановить фоновое задание? (если клиенту стало пофиг на результат, а сервер нагружать бессмысленной работой не хочется?

(7) см в типовой: обработка ожидания, прерывание по esc
(8) Вкратце методику можно?

При формировании отчета запускается типовая форма длительной операции, через обработчик ожидание дергается состояние фонового задание, по кнопке esc выскакивает предложение завршить формирование, и при опросе фонового задания выпрлнится его завершение

(10) По кнопке Esc не прерывается.

(11) твой отчет может и не прерывается, нужно при написании отчетов использовать технологию заложенную в бсп

У тебя толстый или тонкий коиент? Внешний или внутренний отчет? В зависимости от этого по разному нужно писать отчет

«и при опросе фонового задания выпрлнится его завершение»
А как это конкретно происходит на уровне платформы? Есть метод «ПрерватьФоновоеЗадание» или типа такого?

ФоновоеЗадание (BackgroundJob)
Отменить (Cancel)
Синтаксис:

Отменяет задание. Задание может отменить только администратор или пользователь, запустивший задание.

Сервер, толстый клиент, внешнее соединение.

(14) если посмотришь общую форму «ДлительнаяОперация», там есть кнопка «Отменить»

(14) по этой кнопке выполняется закрытие формы, код по завершению задания размещен в обработчике ПриЗакрытии()

(15) И оно отменится в любом случае? А если в нём работает длительный тяжелый запрос — отменится сразу или платформа будет ждать, когда запрос выполнится?

(18) ждать не будет, отменит сразу
(19) Сильно сомневаюсь, что отменит длительный запрос.

(19) Ошибаешься. Проверка отмены выполняется только после каждой строчки кода исполняемого языка. Ты даже на цикле в одну строчку проверь (пусть фоновое, например, каждую секунду пишет в файл кол-во проходов цикла)

(21) не проверял, отменит сразу, но завершит не сразу)
Через кластер серверов тоже ведь не сразу завершается
а почему такие вопросы?
тема про то как прервать выполнение отчета, визуально будет выглядеть что задание прервано, как физически платформа завершит запущенное задание — другой вопрос.

(22) Ага визуально отменено, а сервер грузится. Такой хоккей нам не нужен.

(21) (23) смысл фоновых заданий в том, что можно выполнять, формирование отчета в нескольких потоках.
Это может потребоваться для повышения производительности формирования обработки/отчета и как бонус можно завершать эти потоки. Так вот по-моему мнению, если мы из одного потока даем отмену на выполнения задания, в котором код выполняется не приостанавливаясь ни на секунду не зависимо от того что выполняется в других потоках, то утверждение (21) что проверить на цикле, в котором фоновое что-то пишет в файл не может быть убедительным, т.к. выполнения кода в 2-х разных потоках никак не связано. Через какое реально времени произойдет завершение фонового задание возможно знаю разработчики, но с написанным кодом в 1С не думаю что это вообще как-то связано. Максимум это м.б. связано с ожиданием каким-либо от sql-сервера. Чтобы проверить что быдет с тяжелым запросом после отмены задания напишите тяжелый запрос с использованием декартового произведения чтобы подвесить сервер и посмотрите когда реально произойдет отмена.

Прерывание выполнения отчета, обработки и других длительных действий

Формирование отчета, занимающее продолжительное время, может быть прервано пользователем нажатием клавиши Esc. При этом отчет сформирован не будет. Эта возможность применяется для того, чтобы отказаться от формирования отчета после начала его формирования.

После нажатия клавиши Esc выводится вопрос: «Прервать выполнение обработки?». При нажатии кнопки «Да» формирование отчета прекращается. При нажатии кнопки «Нет» формирование отчета продолжается дальше.

Заметим, что выдача вопроса может произойти не в сам момент нажатия клавиши Esc, а несколько позже. Это объясняется тем, что прерывание формирования отчета может выполняться системой только на определенных стадиях.

Аналогично могут быть прерваны и другие продолжительные действия, например, выполнение обработки или проведение документа .

В зависимости от устройства конкретной обработки та часть действий, которая уже выполнена до нажатия клавиши Esc, будет отменена или наоборот записана. При прерывании проведения документа отменяется весь процесс проведения, и документ возвращается к состоянию до начала проведения. То есть документ не может быть проведен частично.

Некоторые действия системы не могут быть остановлены клавишей Esc, например, не может быть остановлена запись документа или установка периода расчета бухгалтерских итогов.

Другие материалы по теме:

Нас находят: как отменить формирование отчета в 1с 8 2, как остановить формирование отчета в 1с 8 2, как остановить обработку в 1с 8 2, как остановить формирование отчета в 1с, остановить обработку в 1с 8 2, как отменить формирование отчета в 1с, как остановить проведение документов в 1с, отменить формирование отчета в 1с, остановить формирование отчета в 1с, как отменить обработку в 1с 8 2

Подписка на новости RSS

Мы на Facebook

© Учебный центр «Стимул», 2011-2024. info@stimul.kiev.ua

Как отменить формирование отчета в 1с

Дата публикации 06.12.2022

Использован релиз 3.0.125

В программе при формировании стандартных отчетов (карточка счета, оборотно-сальдовая ведомость и др.) можно включить или отключить проверку актуальности данных учета.

Если при включенной проверке какие-либо документы были проведены после выполнения обработки «Закрытие месяца», то в сформированном отчете отображается строка «Данные учета неактуальны». По кнопке «Актуализировать» автоматически будут перепроведены все документы с указанной даты и выполнены регламентные операции обработки «Закрытие месяца» за каждый месяц периода (рис. 1). После этого отчет нужно сформировать повторно.

Проверка актуальности данных учета включается (отключается) в разделе «Администрирование»:

  • Раздел: АдминистрированиеПроведение документов.
  • Если в блоке «Расчеты выполняются» переключатель установлен в положение «При проведении документов», то при снятом флажке «Проверять проведение документов при формировании отчетов» автоматическая проверка и восстановление последовательности проведения документов и регламентных операций при формировании отчетов будет отключена.
  • Если в блоке «Расчеты выполняются» переключатель установлен в положение «При закрытии месяца», то флажок «Проверять проведение документов при формировании отчетов» недоступен для редактирования. В этом случае проверка актуальности данных проводится всегда.

Смотрите также

Подпишитесь на новости

Не пропускайте последние новости — подпишитесь
на бесплатную рассылку сайта:

  • десятки экспертов ежедневно мониторят изменения законодательства и судебную практику;
  • рассылка бесплатная, независимо от наличия договора 1С:ИТС;
  • ваш e-mail не передается третьим лицам;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *