Возникла передо мной задача выполнить внешнюю обработку с индикацией прогресса выполнения. Поиском в интернете были найдены варианты через ВыполнитьКоманду и через ВыполнитьПроцедуруМодуляОбъектаОбработки.
//infostart.ru/public/564617/ и //infostart.ru/public/525648/
Оба варианта позволяли работать только с обработками подключенными через дополнительные отчеты и обработки. Возникла идея сделать нечто универсальное позволяющее работать с любым вариантом подключения обработки, что и было сделано.
Выполнение производится через ВыполнитьПроцедуруМодуляОбъектаОбработки. Для того чтобы обеспечить работу через внешние обработки производится копирование самой обработки на сервер во временные файлы. Соответственно если отличается открытая в режиме предприятия обработка и обработка сохраненная на диске (к примеру если изменить обработку после того как она открыта), платформа будет выдавать предупреждение безопасности в фоновом сеансе и выполнение обработки не будет произведено.
Если запуск производится через дополнительные отчеты и обработки, тогда используется встроенный механизм БСП и копирование файла не происходит.
Проверено на платформе 8.3.10.2466 БСП 2.3.5.
Было бы неплохо привести пример используемого кода как в найденных ссылках. Интереснее описание алгоритма нежели готовая обработка
Крутая вещь. Доработал под несколько фоновых заданий, можно одновременно запускать в таблице, стало еще более круто, думаю даже выложу тут когда приглажу )
а как сделать то же самое с внешним отчетом? можете дать пример?
А она будет работать на новых БСП 3.0.2 и выше?