Фоновое выполнение процедуры МодуляОбъекта ВнешнегоОтчета из справочника ДополнительныеОтчетыИОбработки

1. user1135816 4 25.10.21 10:14 Сейчас в теме
Приветствую. Подскажите или подтолкните в какую сторону копать.
БП 3.0 крайний релиз, платформа 8.3.18, клиент-сервер.
Есть внешний отчет, который является выгруженным типовым отчетом. В нем изменено имя (добавлено "_" на конце), т.е. явно отличается от типового.
Этот внешний отчет добавлен в качестве дополнительного в базу.
Есть необходимость выполнять длительную операцию (формирование таб.документа в фоне). В Модуле объекта отчета добавлена экспортная процедура.
1. при открытии отчета через "файл-открыть" (да именно) - процедура в фоне выполняется, отлично
2. но при открытии отчета в самой программе - процедура не выполняется, т.к. неправильно задано имя файла... (скрин - выделено место ошибки)

Какое необходимо задать имяфайла, если отчет добавлен в дополнительные отчеты?
П.с. Используемоеимяфайла при таком раскладе выдает навигационную ссылку формата "e1cib\tempstorage\....."
При попытке отправить в "имяфайла" имя внешней обработки - результат: обработка с данным именем не найдена.
Прикрепленные файлы:
Найденные решения
4. user1135816 4 25.10.21 11:59 Сейчас в теме
В общем, как ситуация решилась.
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета

Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 25.10.21 10:31 Сейчас в теме
(1) в какой-то из своих обработок использую такую функцию, посмотрите/попробуйте

&НаСервере
Функция ПолучитьИмяФайлаОбрабокиНаСервере()

	лкОбъект = РеквизитФормыВЗначение("Объект");
	//проверяем если файл "есть" на сервере, то больше ничего делать не надо
	лкАдрес = лкОбъект.ИспользуемоеИмяФайла;
	лкФайл = Новый Файл(лкАдрес);
	Если лкФайл.Существует() Тогда
		АдресОбработкиСервер = лкАдрес;
		лкАдрес = "";
	Иначе
		АдресОбработкиСервер = "";
	КонецЕсли;
	
	Возврат лкАдрес;

КонецФункции 
Показать
3. user1135816 4 25.10.21 10:48 Сейчас в теме
(2) Если обработка добавлена в справочник ДополнительныеОтчетыИОбработки, то переменная лкАдрес принимает значение вида "e1cib\tempstorage\5dfa922d-0c1f-4019-9e93-37549cd73be5"
Но при передачи этого имени далее по алгоритму (для запуска фонового задания) выдает ошибку

Каталог не обнаружен 'e1cib\tempstorage\cfc3c070-f2ad-42f4-8824-4d5a34a4a54b'
{ОбщийМодуль.ДлительныеОперации.Модуль(932)}: Отчет = ВнешниеОтчеты.Создать(Параметры.ИмяОтчета, БезопасныйРежим);
4. user1135816 4 25.10.21 11:59 Сейчас в теме
В общем, как ситуация решилась.
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета

Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
5. gosizo 38 04.05.23 09:57 Сейчас в теме
(4) Спасибо, то же столкнулся. Остается прописать подстановку по условию запуска. только как определить в каком режиме запускается обработка?
7. Serg2000mr 319 24.05.23 21:13 Сейчас в теме
(5) При открытии отчета через Файл-Открыть
ИмяФайлаОбработки = РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла


Получится путь к файлу отчета на диске клиента.

А при открытии подключенной внешней обработки путь будет вида "e1cib\tempstorage\5dfa922d-0c1f-4019-9e93-37549cd73be5"
6. gosizo 38 04.05.23 10:27 Сейчас в теме
нашел решение, но пока не очень нравится - через попытку
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот