Имя: Пароль:
1C
1С v8
БП 3.0. Запустить фоновое задание находящееся во внешней обработке, не подключая обработку
0 slnes
 
22.06.19
17:45
БП 3.0. Запустить фоновое задание находящееся во внешней обработке, НЕ подключая обработку в справочник.
И не используя систему взаимодействия.
Фоновое задание цикл, периодически выводить на форму информацию на кокой итерации находится выполнение.
1 Andreyyy
 
22.06.19
23:43
(0) Попробуйте так:

&НаКлиенте
ПодключитьОбработчикОжидания("ВАШ_ОБРАБОТЧИК_ЖИДАНИЯ_ПОЛУЧЕНИЯ_РЕЗУЛЬТАТА", 2);

&НаСервере
Модуль = Вычислить("ДлительныеОперации");
                        СтруктураПодключения = Новый Структура(ВАШИ_ПАРАМЕТРЫ_ДЛЯ_ПЕРЕДАЧИ_В_ФОНОВОЕ_ЗАДАНИЕ)
            ВыполняемыйМетод = "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки";
            СтруктураПараметровЗадания = ПараметрыФоновогоЗадания(СтруктураПодключения);
            
            ПараметрыЗадания = Новый Структура;
            ПараметрыЗадания.Вставить("ИмяМетода", "ВАШ_МЕТОД");
            ПараметрыЗадания.Вставить("ПараметрыВыполнения", СтруктураПараметровЗадания);
            ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
            ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка", Неопределено);
            ПараметрыЗадания.Вставить("ИмяОбработки", ПУТЬ_К_ФАЙЛУ_ОБРАБОТКИ);
            
            ПараметрыВыполнения = Модуль.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
            ПараметрыВыполнения.НаименованиеФоновогоЗадания = "ПРОИЗВОЛЬНОЕ_НАЗВАНИЕ";
            
            РезультатФоновогоЗадания = Модуль.ЗапуститьВыполнениеВФоне(УникальныйИдентификатор, ВыполняемыйМетод, ПараметрыЗадания, ПараметрыВыполнения);
            ИдентификаторФоновогоЗадания = РезультатФоновогоЗадания.ИдентификаторЗадания;
            ЗапущеноФоновоеЗадание = Истина;

Дальше отлавливать результат в "ВАШ_ОБРАБОТЧИК_ЖИДАНИЯ_ПОЛУЧЕНИЯ_РЕЗУЛЬТАТА"
Если ФоновоеЗаданиеВыполнено(ИдентификаторФоновогоЗадания) Тогда
2 Andreyyy
 
22.06.19
23:46
&НаСервере
Функция ПараметрыФоновогоЗадания(СтруктураПодключения)
    
    АдресРезультатаФоновогоЗадания = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
            
    СтруктураПараметровЗадания = Новый Массив;
    СтруктураПараметровЗадания.Добавить(УникальныйИдентификатор);
    СтруктураПараметровЗадания.Добавить(АдресРезультатаФоновогоЗадания);
    
    Возврат(СтруктураПараметровЗадания);
    
КонецФункции

"ВАШ_ОБРАБОТЧИК_ЖИДАНИЯ_ПОЛУЧЕНИЯ_РЕЗУЛЬТАТА"
Если ФоновоеЗаданиеВыполнено(ИдентификаторФоновогоЗадания) Тогда
    РезультатВыполнения = ПолучитьИзВременногоХранилища(АдресРезультатаФоновогоЗадания);
3 Andreyyy
 
22.06.19
23:48
Здесь можно полный код посмотреть https://yadi.sk/d/FczhIZb4-TL0Iw (форма списка)
Только:

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

ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка", Неопределено);
ПараметрыЗадания.Вставить("ИмяОбработки", ПУТЬ_К_ФАЙЛУ_ОБРАБОТКИ);