Проект

Общее

Профиль

Внешние обработки 83 » История » Версия 5

« Предыдущее - Версия 5/6 (Разница(diff)) - Следующее » - Текущая версия
Всеволод Дорофеев, 19.05.2020 07:23


Внешние обработки 8.3

Варианта запуска внешней обработки

Существует три варианта запуска внешней обработки:

  • Открытие формы
  • Вызов серверного метода
  • Вызов клиентского метода

Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().

Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".

Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.

Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3

источник:
https://www.koderline.ru/expert/programming/article-zapusk-vneshnikh-obrabotok-1s-iz-vneshnikh-obrabotok-v-fone-v-1s-8-3/

Использование регламентных процедур в внешней обработке


Функция ПолучитьТаблицуКоманд()

    Команды = Новый ТаблицаЗначений;
    //как будет выглядеть описание печ.формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    //имя макета печ.формы
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    //ВызовСерверногоМетода
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

    Возврат Команды;

КонецФункции

Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

КонецФункции

Функция УказатьНаименованиеВнешнейОбработки()

    Наименование = ЭтотОбъект.Метаданные().Представление();
    Возврат Наименование;

КонецФункции

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

    Наименование = УказатьНаименованиеВнешнейОбработки();

    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", Наименование);
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");    
    ПараметрыРегистрации.Вставить("Информация", Наименование);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
    ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;

КонецФункции

//Для регламентной задачи
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
    //...
    Попытка        
        Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда
            //...;
        ИначеЕсли ИдентификаторКоманды = "ид2" Тогда
            //...;
        КонецЕсли;
    Исключение
        //добавить запись в журнал
        ЗаписьЖурналаРегистрации(
            ОписаниеОшибки(),
            УровеньЖурналаРегистрации.Ошибка,
            ,
            ,
            ,
            РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);

    КонецПопытки;

КонецПроцедуры

Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)

https://expert.chistov.pro/public/364711/