Имя: Пароль:
1C
1С v8
Как програмно запусить внешнюю обработку1С ут10
0 lite777
 
30.09.21
14:24
Добрый день УТ10, есть у кого нибудь пример программного запуска внешней обработки ,прописаной во  внешних обработках ут10.
1 Kassern
 
30.09.21
14:25
(0) был где-то, вечерком могу глянуть, но скорее всего уже подскажут)
2 Kassern
 
30.09.21
14:27
насколько я помню, там принцип простой, получаешь ссылку на внешнюю обработку, дальше из хранилища получаешь саму обработку и во временный файл загоняешь, далее уже с временным файлом работаешь, как с обычной внешней обработкой.
3 VladZ
 
30.09.21
14:29
(0) На букву "Я" нажми рядом с сабжем. Первые же ссылки тебе ответят.
4 Ёпрст
 
гуру
30.09.21
14:30
(0)
Как пример:

Процедура ЗапуститьФоновоеЗаданиеПоИмениИзСправочникаВнешиеОбработки(ИмяПоделки,Ключ = Неопределено) Экспорт
    СсылкаНаВнешнююОбработку= Справочники.ВнешниеОбработки.НайтиПоНаименованию(ИмяПоделки);
    Если СсылкаНаВнешнююОбработку.Пустая() тогда
        ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! Внешняя обработка по имени '"+ИмяПоделки+"' не найдена", УровеньЖурналаРегистрации.Предупреждение);
        Возврат;
    КонецЕсли;
    ЭтоОбработка = СсылкаНаВнешнююОбработку.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка;
    ЭтоОтчет = СсылкаНаВнешнююОбработку.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет;
    Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда
        ЗаписьЖурналаРегистрации("Регламентное задание. Внешняя обработка: ОШИБКА! Внешняя обработка поимени '"+ИмяПоделки+"' не не создана", УровеньЖурналаРегистрации.Предупреждение);
        Возврат;
    КонецЕсли;
    ИмяФайла = ПолучитьИмяВременногоФайла();
    ДвоичныеДанные = СсылкаНаВнешнююОбработку.ХранилищеВнешнейОбработки.Получить();
    ДвоичныеДанные.Записать(ИмяФайла);
    Если ЭтоОбработка Тогда
        Обработка = ВнешниеОбработки.Создать(ИмяФайла,Ложь);
    Иначе
        Обработка = ВнешниеОтчеты.Создать(ИмяФайла,Ложь);
    КонецЕсли;
    Обработка.мЗапускРегламентнымЗаданием = Истина;
    Если ЗначениеЗаполнено(Ключ) Тогда
        Обработка.Ключ = Ключ;
    КонецЕсли;
    Обработка.ВыполнитьОбработку();
    Попытка
        УдалитьФайлы(ИмяФайла);
    Исключение
    КонецПопытки;    
КонецПроцедуры
5 ДенисЧ
 
30.09.21
14:30
Достаточно открыть форму списка этих внешних обработок. И там событие ОбработкаВыбора() или как-то так.
6 lite777
 
30.09.21
14:33
Обработка.ВыполнитьОбработку(); Выполняет модуль обработки  ?
7 lite777
 
30.09.21
14:34
Спасибо )
8 Ёпрст
 
гуру
30.09.21
14:41
(6) по-умолчанию, в модуле обработки есть эта экспортная проца.
Ты можешь запущать какую хочешь свою.
9 lite777
 
30.09.21
14:43
ОК
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн