Как сделать команду внешней обработки фоновой

1. user2129960 27.02.25 09:45 Сейчас в теме
Всем привет. Конфигурация БП3.0, последняя.

Есть внешняя обработка, в неё грузят файл эксель, он разбирается, подставляются данные в дерево значений. Далее по кнопке "Загрузить" идет цикл по этому дереву и для каждой строки создается реализация.

И вот как сделать эту кнопку "Загрузить" чтоб она все действия выполняла в фоне не могу понять...

Код сейчас выглядит так:

&НаКлиенте
Процедура СоздатьРТУ(Команда)
	
	СоздатьДокументыНаСервере(); 
	
КонецПроцедуры

&НаСервере
Процедура СоздатьДокументыНаСервере()
	
	ДЗ = РеквизитФормыВЗначение("ДЗф");

	Для каждого стр_ОРГ из ДЗ.Строки Цикл
		Организация = стр_орг.Организация;
...

СоздатьРТУНаСервере(Организация);

...
Показать


Где ДЗф дерево значений из формы.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 27.02.25 09:50 Сейчас в теме
(1) а как уже делали и не получилось?
4. user2129960 27.02.25 09:55 Сейчас в теме
(2) я на самом деле не понимаю с какой стороны даже подойти.
Вроде материала много, но в упор не понимаю. Через ДлительныеОперации - там необходимо имя процедуры, но опять же - процедура должна быть в модуле обработки, а у меня на форме.
6. nomad_irk 81 27.02.25 09:56 Сейчас в теме
(4)
процедура должна быть в модуле обработки, а у меня на форме

придется либо продублировать в модуле обработки, либо полностью перенести
8. RustamZz 27.02.25 09:57 Сейчас в теме
(1)
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКомандуВФоне
9. user2129960 27.02.25 10:11 Сейчас в теме
11. nomad_irk 81 27.02.25 10:27 Сейчас в теме
(8) Добавлю, что для возможности использовать метод внешней обработки в качестве фонового задания можно на стороне сервера выполнить что-то наподобие:

ИмяФункцииИлиПроцедуры = "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки";

АдресВХранилище = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);

ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификаторФормыВызоваДлительнойОперации);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Мое фоновое задание'");
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь;
ПараметрыВыполнения.БезРасширений = Ложь;
ПараметрыВыполнения.ОжидатьЗавершение = Ложь;
ПараметрыВыполнения.АдресРезультата = АдресВХранилище;

ДополнительнаяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Моя дополнительная ОтчетОбработка");

ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("ИмяОбработки", "ВнешняяОбработка.МояВнешняяОбработка");
ПараметрыЗадания.Вставить("ИмяМетода", "МояЭкспортнаяПроцедураМодуляОбработки");
ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработка);

ПараметрыПроцедурыМодуляОбъекта = Новый Структура;
ПараметрыПроцедурыМодуляОбъекта.Вставить("ПараметрМоегоФоновогоЗадания1", ЗначениеПараметраФЗ1);
ПараметрыПроцедурыМодуляОбъекта.Вставить("ПараметрМоегоФоновогоЗадания2", ЗначениеПараметраФЗ2);

ПараметрыЗадания.Вставить("ПараметрыВыполнения", ПараметрыПроцедурыМодуляОбъекта);

ДлительнаяОперация = ДлительныеОперации.ВыполнитьВФоне(ИмяФункцииИлиПроцедуры, ПараметрыЗадания, ПараметрыВыполнения);
Показать
VyacheslavShilov; +1 Ответить
3. user2129960 27.02.25 09:53 Сейчас в теме
Забыл уточнить - в справочник Дополнительные отчеты и обработки будет загружаться.
5. nomad_irk 81 27.02.25 09:55 Сейчас в теме
(3) можно попробовать подсмотреть реализацию запуска длительной операции в фоне в каком-нибудь типовом отчете
7. user2129960 27.02.25 09:57 Сейчас в теме
(5) я смотрел, но не особо разобрался
Оставьте свое сообщение

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