Фоновое выполнение отчетов и обработок в 1С77


На примере реального отчета показывается, как заставить 1С выполнять одновременно 1, 2 и более заданий, в то время как пользователь продолжает спокойно работать с базой.
Для организации фоновых процессов используется OLE и WSH. Внешние компоненты не используются. Сам отчет выводит в таблицу документы базы вместе со всеми реквизитами шапок и табличных частей. Отчет простенький, но универсальный и весьма ресурсоемкий (что в данном случае является плюсом).

В связи с тем, что используется OLE, необходимо выполнение двух условий: база не должна быть запущена в монопольном режиме; в базе должен быть заведен пользователь с именем "process", паролем "system" и пустым пользовательским каталогом (то есть с каталогом по умолчанию) - это необходимо для того, чтобы было возможно создание нескольких одновременных OLE-подключений. В дальнейшем разработчик может сам организовать доступ к базе по своему усмотрению.

Возможно запустить одновременно несколько отчетов. В таблице запущенных процессов отображается время старта, время завершения, статус выполнения каждого отчета. Возможно прекратить формированание любого отчета, щелкнув по ячейке колонки "Убить". Если пользователь закрывает форму отчета до окончания формирования, то "убиваются" все незавершенные отчеты из списка. То есть важным условием является не закрывать форму отчета до окончания его (их) формирования. Можно часть кода (процедуру обработки ожидания) вынести в глобальный модуль, тогда это условие будет являться уже необязательным.

Во время выполнения отчета (отчетов) можно заниматься другими делами, то есть работать с базой в полном объеме. Когда один из отчетов завершается, на экран будет выведена таблица завершенного отчета.

Файлы обработки:

-