Отслеживание выполнения фонового задания

0. ids79 7785 09.08.19 13:44 Сейчас в теме
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mi1man 244 17.08.19 10:55 Сейчас в теме
Спасибо. Тема про "многопоточность" интересна .. буду ждать продолжения)
Andy1981; ids79; +2 Ответить
15. PowerBoy 3251 24.10.19 11:33 Сейчас в теме
(1) Кому интересна тема многопоточности и хочет поэкспериментировать можете воспользоваться обработкой
PowerTools (https://infostart.ru/public/167865/). Умеет запускать в многопоток как различные операции обработки данных, так и произвольный код. Умеет распределять потоки по выбранным полям таблицы.
2. Xershi 1384 17.08.19 17:05 Сейчас в теме
Действительно, плохо искали. Мало того имея БСП 2.3 с доработкой или 2.4 уже можно не рисовать на форме элементы а выводить прогресс отдельно и многопоточность тоже уже реализована! А перепроведение как уже говорилось не подойдет, потому что оно будет накладывать взаимоблокировки. Придется и их учесть при написании кода, что усложнит алгоритм на порядок.
4. ids79 7785 17.08.19 21:53 Сейчас в теме
(2)Многопоточность сама по себе ничего сверхестественного из себя не представляет. Интересен как раз сам механизм разбиения данных на блоки для выполнения в разных потоках. То-есть выделять группы документов, которые не будут мешать друг другу при проведении.
ilego; logarifm; +2 Ответить
3. aximo 1976 17.08.19 18:48 Сейчас в теме
Дмитрий, ты молодец! интересные вещи пишешь!
5. ids79 7785 17.08.19 21:54 Сейчас в теме
6. logarifm 1110 18.08.19 10:24 Сейчас в теме
Можно добавить лепту? Если операции действительно длительные то для оптимизации можно бы подумать в сторону "шага процента" чтобы не долбить проверками каждые 0.3 секунд.
8. ids79 7785 19.08.19 10:05 Сейчас в теме
(6)В принципе, можно увеличить это время, так как все равно данные отправляются после каждого пятого документа.
7. comptr 3 19.08.19 08:29 Сейчас в теме
Про многопоточное проведение вот тут достаточно подробно рассказано: https://infostart.ru/public/1102042
9. ids79 7785 19.08.19 10:06 Сейчас в теме
(7)Да, я тоже привел ссылку на эту статью в публицации
10. comptr 3 19.08.19 12:58 Сейчас в теме
(9) оу, невнимательно прочитал, смотрел больше на код...
11. Darklight 30 19.08.19 13:18 Сейчас в теме
Мне кажется не очень хорошей идея - проверять прогресс каждые 0.3 сек через серверные вызовы. Ну тут можно долго спорить на тему оптимизации клиент-серверного взаимодействия, но от серверных вызовов тут никак не уйти (ну разве что всё взаимодействие не вынести во внешнюю Native-компоненту, которая будет подключена и в фоновом процессе и в клиенте, и будет производить обмен сообщениями через свой канал, например через TCP - но тут сложно искать универсальное решение), иначе всё сведётся лишь к увеличению периода опроса сервера
12. ids79 7785 19.08.19 15:19 Сейчас в теме
(11)Ну да, вариантов взаимодействия много, некоторые я привел в статье. Это не все, естественно.
Спасибо за дополнение
13. DonAlPatino 174 20.08.19 11:40 Сейчас в теме
Немножко не в тему, но коль про многопоточность заговорили ... а в oscript можно ее как-то организовать и результаты в главную программу вернуть? Что-то не нашел ничего на вскидку...
14. ids79 7785 20.08.19 13:03 Сейчас в теме
16. qbdp 29.10.19 15:00 Сейчас в теме
Ещё как вариант - использовать временный файл. Записывать в фоновом задании, а затем через вызов сервера (в сеансе пользователя) его читать.
17. MarryJane 31 16.05.21 19:42 Сейчас в теме
А подскажите такую операцию, как запустить поток выборки в фоне и затем получить результат выборки. Например основная процедура занимается выборкой данных, получает некий набор номенклатура, выводит его на форму и в тоже время запускает фоновый процесс дополнительной выборки. Когда фоновый процесс завершается он возвращает результат дополнительной выборки и сообщает форме что завершился, получите результаты выборки.
18. ids79 7785 17.05.21 13:09 Сейчас в теме
(17)Можно через временное хранилище.
19. MarryJane 31 17.05.21 23:14 Сейчас в теме
Спасибо нашел уже на просторах нета. Если кому интересно https://kb.mista.ru/article.php?id=696
20. ilnur75 24.09.21 15:38 Сейчас в теме
Добрый день!

помогите разобраться. сделал как в статье , платформа 8.3.15 , внешняя обработка, версия БСП "2.4.4.120"
конф УТ 11.4...

В процедуре ДлительныеОперации.СообщитьПрогресс(...) у меня сразу идет проверка :

Если ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание() = Неопределено Тогда
Возврат;
КонецЕсли;

так вот результат этой проверки = Неопределено

а почему ?

в итоге у меня никакой информации о ходе процесса не выходит, и в статье я не нашел каким образом заполняются поля формы Прогресс и Тестовое поле ?
21. ids79 7785 27.09.21 12:37 Сейчас в теме
(20)Попробуйте вызвать просто ПолучитьФоновоеЗадание()
22. ilnur75 27.09.21 13:19 Сейчас в теме
немного запутался с ДополнительнаяОбработкаСсылка . Мне пришлось в внешнюю обработку добавить как реквизит формы, а вот тип у этого реквизита какой должен быть? оставил пока "строка". При создании формы в параметрах такого свойства нет. Я принудительно присваиваю ссылку из справочника ДопОтчетыОбработки, т.к. тоже добавил внешнюю обработку в это справочник.

В результате исполняется команда загрузки данных, а вот индикатор показывает только конечный результат (цифр 100 и фон этого поля ввода не окрашивается) и текст. Нет промежуточных показаний.
23. dimaster 39 18.11.22 10:53 Сейчас в теме
(22)
ДополнительнаяОбработкаСсылка

параметр формы "ДополнительнаяОбработкаСсылка" с типом "СправочникСсылка.ДополнительныеОтчетыИОбработки"

может кому пригодится
Elvira_Saydasheva; klaus38; +2 Ответить
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

Технический архитектор 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день