Имя: Пароль:
1C
1С v8
Фоновое выполнение внешней обработки.
☑
0 lirt82
 
09.11.26
✎
11:46
Есть внешняя обработка можно ли ее код выполнить в фоновом задании (длительные операции бсп) без регистрации в базе, в дополнительных обработках? пример
1 lirt82
 
09.11.26
✎
11:49
2 lirt82
 
09.11.26
✎
16:07
(1) единственное как передать параметры обработки в экспортную функцию модуля объекта?

фрагмент кода модуля формы обработки
&НаСервере
Функция НачатьВыполнениеДлительнойОперации(ДвоичныеДанныеОбработки)
    
    ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);       
    ПараметрыВыполнения.ВнешнийОтчетОбработка = ДвоичныеДанныеОбработки;
        
    ПараметрыОбработки = Новый Структура;
    ПараметрыОбработки.Вставить("ДатаНач", Объект.ДатаНач);
        ПараметрыОбработки.Вставить("ДатаКон", КонецДня(Объект.ДатаКон));
        ПараметрыОбработки.Вставить("Магазин", Объект.Магазин);
    ПараметрыВыполнения.Вставить("ПараметрыВыполнения", ПараметрыОбработки);
            
    ДлительнаяОперация = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
        "ВнешняяОбработка." + ПолучитьИмяОбработки() + ".МодульОбъекта.ИзменитьСтатусЧековНаСервере");    
    // Если после второй точки не написано "МодульОбъекта" тогда БСП будет пытаться вызвать
    // экспортную функцию общего модуля или модуля менеджера объекта
    
    Возврат ДлительнаяОперация;
    
КонецФункции

модуль обработки

Функция ИзменитьСтатусЧековНаСервере(Параметры) Экспорт
    
    Обработано = 0;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
///////////////////

при выполнении кода выходит ошибка
Недостаточно фактических параметров
{(1)}:Объект.ИзменитьСтатусЧековНаСервере()
{ОбщийМодуль.ОбщегоНазначения.Модуль(10032)}:Возврат Вычислить("Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")"); // АПК:488 Исполняемый код безопасен.
{ОбщийМодуль.ДлительныеОперации.Модуль(1912)}:Результат = ОбщегоНазначения.ВызватьФункциюОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры);
{ОбщийМодуль.ДлительныеОперации.Модуль(1773)}:ВызватьФункцию(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
{ОбщийМодуль.ДлительныеОперации.Модуль(1794)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, СтекЗапуска, ИнформацияОбОшибке);
3 LoneMan
 
09.11.26
✎
16:20
Попробуйте так
ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
        "ВнешняяОбработка." + ПолучитьИмяОбработки() + ".МодульОбъекта.ИзменитьСтатусЧековНаСервере", ПараметрыОбработки)
4 1cVandal
 
09.11.26
✎
16:25
(2) передать, в массиве