Фоновое выполнение процедуры МодуляОбъекта ВнешнегоОтчета из справочника ДополнительныеОтчетыИОбработки
Приветствую. Подскажите или подтолкните в какую сторону копать.
БП 3.0 крайний релиз, платформа 8.3.18, клиент-сервер.
Есть внешний отчет, который является выгруженным типовым отчетом. В нем изменено имя (добавлено "_" на конце), т.е. явно отличается от типового.
Этот внешний отчет добавлен в качестве дополнительного в базу.
Есть необходимость выполнять длительную операцию (формирование таб.документа в фоне). В Модуле объекта отчета добавлена экспортная процедура.
1. при открытии отчета через "файл-открыть" (да именно) - процедура в фоне выполняется, отлично
2. но при открытии отчета в самой программе - процедура не выполняется, т.к. неправильно задано имя файла... (скрин - выделено место ошибки)
Какое необходимо задать имяфайла, если отчет добавлен в дополнительные отчеты?
П.с. Используемоеимяфайла при таком раскладе выдает навигационную ссылку формата "e1cib\tempstorage\....."
При попытке отправить в "имяфайла" имя внешней обработки - результат: обработка с данным именем не найдена.
БП 3.0 крайний релиз, платформа 8.3.18, клиент-сервер.
Есть внешний отчет, который является выгруженным типовым отчетом. В нем изменено имя (добавлено "_" на конце), т.е. явно отличается от типового.
Этот внешний отчет добавлен в качестве дополнительного в базу.
Есть необходимость выполнять длительную операцию (формирование таб.документа в фоне). В Модуле объекта отчета добавлена экспортная процедура.
1. при открытии отчета через "файл-открыть" (да именно) - процедура в фоне выполняется, отлично
2. но при открытии отчета в самой программе - процедура не выполняется, т.к. неправильно задано имя файла... (скрин - выделено место ошибки)
Какое необходимо задать имяфайла, если отчет добавлен в дополнительные отчеты?
П.с. Используемоеимяфайла при таком раскладе выдает навигационную ссылку формата "e1cib\tempstorage\....."
При попытке отправить в "имяфайла" имя внешней обработки - результат: обработка с данным именем не найдена.
Прикрепленные файлы:
Найденные решения
В общем, как ситуация решилась.
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета
Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета
Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) в какой-то из своих обработок использую такую функцию, посмотрите/попробуйте
&НаСервере
Функция ПолучитьИмяФайлаОбрабокиНаСервере()
лкОбъект = РеквизитФормыВЗначение("Объект");
//проверяем если файл "есть" на сервере, то больше ничего делать не надо
лкАдрес = лкОбъект.ИспользуемоеИмяФайла;
лкФайл = Новый Файл(лкАдрес);
Если лкФайл.Существует() Тогда
АдресОбработкиСервер = лкАдрес;
лкАдрес = "";
Иначе
АдресОбработкиСервер = "";
КонецЕсли;
Возврат лкАдрес;
КонецФункции
Показать
(2) Если обработка добавлена в справочник ДополнительныеОтчетыИОбработки, то переменная лкАдрес принимает значение вида "e1cib\tempstorage\5dfa922d-0c1f-4019-9e93-37549cd73be5"
Но при передачи этого имени далее по алгоритму (для запуска фонового задания) выдает ошибку
Каталог не обнаружен 'e1cib\tempstorage\cfc3c070-f2ad-42f4-8824-4d5a34a4a54b'
{ОбщийМодуль.ДлительныеОперации.Модуль(932)}: Отчет = ВнешниеОтчеты.Создать(Параметры.ИмяОтчета, БезопасныйРежим);
Но при передачи этого имени далее по алгоритму (для запуска фонового задания) выдает ошибку
Каталог не обнаружен 'e1cib\tempstorage\cfc3c070-f2ad-42f4-8824-4d5a34a4a54b'
{ОбщийМодуль.ДлительныеОперации.Модуль(932)}: Отчет = ВнешниеОтчеты.Создать(Параметры.ИмяОтчета, БезопасныйРежим);
В общем, как ситуация решилась.
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета
Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
Если отчет добавлен в качестве дополнительного в справочник ДополнительныеОтчетыИОбработки, то необходимо использовать
- ссылку на этот отчет как ДополнительнаяОбработкаСсылка
- ЭтоВнешняяОбработка = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"
- Параметры отчета
Если отчет используется как внешний, без добавления в справочник ДополнительныеОтчетыИОбработки, тогда
- ИмяОтчета - полное имя файла доступное для сервера
- ЭтоВнешнийОтчет = Истина
- ВыполняемыйМетод - "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОтчета"
- Параметры отчета
(5) При открытии отчета через Файл-Открыть
Получится путь к файлу отчета на диске клиента.
А при открытии подключенной внешней обработки путь будет вида "e1cib\tempstorage\5dfa922d-0c1f-4019-9e93-37549cd73be5"
ИмяФайлаОбработки = РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла
Получится путь к файлу отчета на диске клиента.
А при открытии подключенной внешней обработки путь будет вида "e1cib\tempstorage\5dfa922d-0c1f-4019-9e93-37549cd73be5"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот