ВыполнитьПроцедуруМодуляОбъектаОбработки

1. VoVo 19.12.23 10:52 Сейчас в теме
Здравствуйте! Есть обработка часть конфы. Из модуля формы запуская фоновое
СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(ВыполняемыйМетод, ПараметрыЗапуска, ПараметрыВыполнения);

Все работает. Но есть проблемы с многопоточностью. По задумке происходит запись объектов одного за другим, устанавливаестся блокировка в попытке, и если объект уже ранее кем-то заблокирован, то происходит исключение и вот тут трудности. Я пытаюсь эти объекты заблоченные после фонового вывести в тч на форму. Изначально пробовал через временное хранилище данные передавать, но не получилось, т.к. как понимаю процедура модуля менеджера, которая выполнялась в фоне, уже имеет другой сеанс, не тот, под которым открывалась форма обработки.
Затем перенес эту процедуру из модуля менеджера в модуль объекта обработки и уже с помощью
ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки(ПараметрыЗапуска, АдресХранилища);

запускаю фоновое создав нужную тч как табличную часть уже в объекте обработке, в надежде заполнить эту таблицу в фоне заблокированными объектами. Но не тут-то было, процедура ВыполнитьПроцедуруМодуляОбъектаОбработки там как понял создается новая объект обработка, и после выполнения фона при возврате на форму заполненная таблица пустая.
Получить объект открытой уже обработки и передать как понимаю ни как тоже, т.к. объект после открытия уничтожился. Как быть? Куда копать не пойму
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VoVo 19.12.23 11:20 Сейчас в теме
(1)Сделал по извращенски, в регистр записал, но по другому как не додумался
3. Snowbridge 19.12.23 11:39 Сейчас в теме
(0) канонический вариант - временное хранилище:
1. при запуске фонового задания передавай ему в параметрах адрес временного хранилища
2. в самом фоновом складывай успешно обработанные в массив и сохраняй в этом временном хранилище
3. после запуска задания, жди результата в вечном цикле с ОжидатьЗавершенияВыполнения()
4. когда дождешься завершения, получай из временного хранилища результат.
4. VoVo 19.12.23 15:41 Сейчас в теме
(3)Это все пробовал, но вопрос в том, что фоновое запускается другим сеансом, и данные временного хранилища не доступны в модуле менеджера. Более опытные коллеги объяснили, что так это работает, после моих 100 попыток поместить на форме созданную структуру, затем получить в модуле менеджера процедуре выполняемой в фоне.
Оставьте свое сообщение

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