Имя: Пароль:
1C
1С v8
Выполнить в фоне часть процедур во внешней обработке.
0 Sevish
 
08.11.20
18:40
Добрый день!
Как выполнить в фоне процедуру модуля конфигурации - проблем нет.
Но возникла задача выполнить процедуру модуля внешней обработки.
Файл - Открыть - Внешняя обработка. На форме кнопка. Нажимаем, и процедура именно этой обработки выполняется в фоне...
Как это сделать, если возможно?
1 Конструктор1С
 
08.11.20
18:44
(0) БСП подключена?
2 jsmith82
 
08.11.20
18:51
странно, что спросил. в интернете же есть
3 Sevish
 
08.11.20
19:20
БСП не подключена, голая УПП. В интернете есть, но если обработка подключена как внешняя обработка в справочник.
А мне надо просто - открыл и выполнил.
4 GedKo
 
08.11.20
20:19
сделай расширение
5 Провинциальный 1сник
 
08.11.20
20:21
(4) Так голая же УПП, какие расширения, если там режим совместимости древний
6 Sevish
 
08.11.20
21:30
Да, все верно, древний, расширение то же не прокатит.
Вообще проблема-то вот в этой одной строке: ДлительныеОперации.ВыполнитьВФоне("ИмяМодуля.ИмяПроцедуры", СтруктураПараметров, ПараметрыВыполнения);
У меня есть только ИмяПроцедуры в текущем модуле внешней обработки.
7 RomanYS
 
08.11.20
21:40
(6) Значит нужно сделать общий модуль, который будет выполнять интерфейсную функцию. Или взять из БСП. В УПП готового не нашёл
8 Конструктор1С
 
09.11.20
06:59
(6) у тебя относительно свежая версия модуля длительных операций. В УПП давно не заглядывал, но должно прокатить вот так:

СтруктураПараметров.Вставить("ИмяМетода", "ТутНазваниеЭкспортнойПроцедурыМодуляОбработки");
ДлительныеОперации.ВыполнитьВФоне("ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки", СтруктураПараметров, ПараметрыВыполнения);
9 ДенисЧ
 
09.11.20
07:02
Закладка, как говорится )))
Не заметил при беглом просмотре...
10 SleepyHead
 
гуру
09.11.20
08:58
(0) На инфостарте про это десятки статей, я даже свою пилил...
11 ДенисЧ
 
09.11.20
08:59
(10) Она золотая? ))
12 SleepyHead
 
гуру
09.11.20
09:03
(11) Я не знаю, разрешено ли правилами давать ссылку на свою статью здесь, на мисте, поэтому ограничиваюсь тонкими намеками, что мне можно написать в скайп.
13 ДенисЧ
 
09.11.20
09:03
(12) Я просто хотел пошутить )))
Если ты ё пилил, значит, она должна быть золотой )))
14 SleepyHead
 
гуру
09.11.20
09:07
(13) Простите, Остап Ибрагимович, я не сразу оценил, на что намек ))

Правила перечитал, запрета не нашел, поэтому вот
http://catalog.mista.ru/1c/articles/1207439/
15 Конструктор1С
 
09.11.20
09:20
(14) это под БСП и УФ, а у ТС УПП на ОФ
16 Конструктор1С
 
09.11.20
09:21
но по идее зайдёт
17 Kassern
 
09.11.20
09:57
(0) Как вариант создать свой модуль для вызова фоновых заданий. А с внешних обработок уже отсылать код на выполнение в фоне.
Функция ЗапуститьФоновоеВыполнение(ТекстПроцедуры,СтруктураПараметров=Неопределено) Экспорт
    УникальныйИдентификатор = Новый УникальныйИдентификатор;
    ПараметрыВыполнения = Новый Массив;
    ПараметрыВыполнения.Добавить(ТекстПроцедуры);
    ПараметрыВыполнения.Добавить(СтруктураПараметров);
    
    ФоновыеЗадания.Выполнить("ФоновоеВыполнение.ФоноваяПроцедура",ПараметрыВыполнения,УникальныйИдентификатор);
    Возврат УникальныйИдентификатор;
КонецФункции

Процедура ФоноваяПроцедура(ТекстМодуля,ПараметрыВыполнения) Экспорт
    ПолныйТекстМодуля = "";
    Для Каждого ТекПараметр Из ПараметрыВыполнения Цикл
        ПолныйТекстМодуля = ПолныйТекстМодуля+ТекПараметр.Ключ+"=ПараметрыВыполнения."+ТекПараметр.Ключ+";"+Символы.ПС;
    КонецЦикла;
    ПолныйТекстМодуля = ПолныйТекстМодуля + ТекстМодуля;
    Выполнить(ПолныйТекстМодуля);
КонецПроцедуры