|   |   | 
| 
 | Универсальная процедура для запуска фоноого задания | ☑ | ||
|---|---|---|---|---|
| 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 = 'Выполнение длительной операции на сервере (демо)'")); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |