Внешние обработки 83 » История » Версия 5
« Предыдущее -
Версия 5/6
(Разница(diff)) -
Следующее » -
Текущая версия
Всеволод Дорофеев, 19.05.2020 07:23
Внешние обработки 8.3¶
Варианта запуска внешней обработки¶
Существует три варианта запуска внешней обработки:
- Открытие формы
- Вызов серверного метода
- Вызов клиентского метода
Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().
Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".
Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.
Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3¶
Использование регламентных процедур в внешней обработке¶
Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; //как будет выглядеть описание печ.формы для пользователя Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); //имя макета печ.формы Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецФункции Функция УказатьНаименованиеВнешнейОбработки() Наименование = ЭтотОбъект.Метаданные().Представление(); Возврат Наименование; КонецФункции Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; Наименование = УказатьНаименованиеВнешнейОбработки(); ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", Наименование); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X"); ПараметрыРегистрации.Вставить("Информация", Наименование); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду( ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции //Для регламентной задачи Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт //... Попытка Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда //...; ИначеЕсли ИдентификаторКоманды = "ид2" Тогда //...; КонецЕсли; Исключение //добавить запись в журнал ЗаписьЖурналаРегистрации( ОписаниеОшибки(), УровеньЖурналаРегистрации.Ошибка, , , , РежимТранзакцииЗаписиЖурналаРегистрации.Независимая); КонецПопытки; КонецПроцедуры