|
Универсальная процедура для запуска фоноого задания | ☑ | ||
---|---|---|---|---|
0
Aydar
13.02.20
✎
12:46
|
Добрый день!
Необходимо написать код для запуска процедуры обработки в фоновом режиме, но обработка может быть 3 видов: 1. Внешняя обработка (не добавлена ни в конфигуратор, ни в справочник "дополнительные отчеты и обработки") 2. Внутренняя, которая добавлена в конфигуратор 3. Внешняя, которая добавлена в справочник "дополнительные отчеты и обработки" Необходимо написать код, которая будет работать не зависимо от вида обработки. Есть ли какие-либо идеи или примеры? |
|||
1
Fish
13.02.20
✎
12:50
|
А что именно не получается?
|
|||
2
vicof
13.02.20
✎
12:51
|
(1) Он же написал)
"Необходимо написать код" |
|||
3
Ненавижу 1С
гуру
13.02.20
✎
12:56
|
(0) зачем?
|
|||
4
Aydar
13.02.20
✎
12:58
|
(3) что бы обработка не ломалась при изменении типа обработки
|
|||
5
Aydar
13.02.20
✎
13:52
|
ни у кого нет такого примера?
|
|||
6
Fish
13.02.20
✎
13:53
|
(4) Т.е. обработка уже есть?
|
|||
7
Aydar
13.02.20
✎
14:12
|
(6) есть, работает только когда добавляю во "внешние отчеты и обработки"
|
|||
8
ДНН
13.02.20
✎
14:15
|
(0) Сначала ищешь в метаданных, потом во внешних обработках, потом на диске
|
|||
9
Franchiser
гуру
13.02.20
✎
14:17
|
В БСП все есть
|
|||
10
Franchiser
гуру
13.02.20
✎
14:18
|
Только для реализации 1-го пункта возможно придется свое писать.
|
|||
11
Franchiser
гуру
13.02.20
✎
14:24
|
С 1-м пунктом нужно перемещать обработку на сервер, а если в кластере более 1 сервера, то не понятно на каком она окажется.
|
|||
12
FIXXXL
13.02.20
✎
16:02
|
(11) в ХЗ ее, двоично
|
|||
13
Franchiser
гуру
13.02.20
✎
16:07
|
(12) В БСП не реализовано нормально выполнение процедур модулей обработки внешней через файл-открыть в фоне. Это только если свои процедуры писать.
|
|||
14
unenu
13.02.20
✎
16:08
|
(9) запуска внешней обработки в фоне в БСП нет,
встроенные можно методы общих модулей можно чтобы использовать типовые механизмы для запуска в фоне внешних обработок, необходимо делать общий модуль-обертку. Это модуль и вызывать в фоне, а в качестве "хитрого" параметра в этот модуль должен заехать объект внешней обработки, которые регистрируется в системе при первом запуске обработки. код приводит не буду - все что нужно я написал. |
|||
15
Franchiser
гуру
13.02.20
✎
16:13
|
Вот у меня так сделано:
//ВНИМАНИЕ! Обработка должна лежать на общем ресурсе доступного с 2-х серверов иначе может возникнуть ошибка //Имя обработки необходимо подправить на путь к обработке на общем ресурсе... СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("ИмяОбработки", ИмяОбработки); //это обработка переданная с клиента во врем. папку на 1-м из серверов СтруктураПараметров.Вставить("ИмяМетода", ВыполняемаяПроцедура); СтруктураПараметров.Вставить("ПараметрыВыполнения", ПараметрыДлительнойОперации); СтруктураПараметров.Вставить("ЭтоВнешняяОбработка", ЭтоВнешняяОбработка); СтруктураПараметров.Вставить("ДополнительнаяОбработкаСсылка", Неопределено); //Сообщить("Т3"); //Фоновое выполнение внешней обработки: но иногда фоновое запускается на другом сервере клсатера, тогда юудет ошибка, нужен общий каталог РезультатФоновогоЗадания = ДлительныеОперации.ЗапуститьВыполнениеВФоне( УникальныйИдентификатор, "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки", СтруктураПараметров, НСтр("ru = 'Выполнение длительной операции на сервере (демо)'")); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |