Проект

Общее

Профиль

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

Всеволод Дорофеев, 19.05.2020 07:23

1 2 Всеволод Дорофеев
h1. Внешние обработки 8.3
2 1 Всеволод Дорофеев
3 4 Всеволод Дорофеев
h3. Варианта запуска внешней обработки
4 4 Всеволод Дорофеев
5 4 Всеволод Дорофеев
Существует три варианта запуска внешней обработки:
6 4 Всеволод Дорофеев
7 4 Всеволод Дорофеев
* Открытие формы
8 4 Всеволод Дорофеев
* Вызов серверного метода
9 4 Всеволод Дорофеев
* Вызов клиентского метода
10 4 Всеволод Дорофеев
11 4 Всеволод Дорофеев
Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().
12 4 Всеволод Дорофеев
13 4 Всеволод Дорофеев
Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".
14 4 Всеволод Дорофеев
15 4 Всеволод Дорофеев
Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
16 4 Всеволод Дорофеев
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.
17 4 Всеволод Дорофеев
18 1 Всеволод Дорофеев
h3. Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3
19 1 Всеволод Дорофеев
20 1 Всеволод Дорофеев
источник:
21 1 Всеволод Дорофеев
https://www.koderline.ru/expert/programming/article-zapusk-vneshnikh-obrabotok-1s-iz-vneshnikh-obrabotok-v-fone-v-1s-8-3/
22 3 Всеволод Дорофеев
23 3 Всеволод Дорофеев
h3. Использование регламентных процедур в внешней обработке
24 3 Всеволод Дорофеев
25 3 Всеволод Дорофеев
<pre>
26 5 Всеволод Дорофеев
27 3 Всеволод Дорофеев
Функция ПолучитьТаблицуКоманд()
28 3 Всеволод Дорофеев
29 3 Всеволод Дорофеев
    Команды = Новый ТаблицаЗначений;
30 3 Всеволод Дорофеев
    //как будет выглядеть описание печ.формы для пользователя
31 3 Всеволод Дорофеев
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
32 3 Всеволод Дорофеев
    //имя макета печ.формы
33 3 Всеволод Дорофеев
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
34 3 Всеволод Дорофеев
    //ВызовСерверногоМетода
35 3 Всеволод Дорофеев
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
36 3 Всеволод Дорофеев
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
37 3 Всеволод Дорофеев
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
38 3 Всеволод Дорофеев
39 3 Всеволод Дорофеев
    Возврат Команды;
40 3 Всеволод Дорофеев
	
41 3 Всеволод Дорофеев
КонецФункции
42 3 Всеволод Дорофеев
43 3 Всеволод Дорофеев
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
44 3 Всеволод Дорофеев
45 3 Всеволод Дорофеев
    НоваяКоманда = ТаблицаКоманд.Добавить();
46 3 Всеволод Дорофеев
    НоваяКоманда.Представление = Представление;
47 3 Всеволод Дорофеев
    НоваяКоманда.Идентификатор = Идентификатор;
48 3 Всеволод Дорофеев
    НоваяКоманда.Использование = Использование;
49 3 Всеволод Дорофеев
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
50 3 Всеволод Дорофеев
    НоваяКоманда.Модификатор = Модификатор;
51 3 Всеволод Дорофеев
52 3 Всеволод Дорофеев
КонецФункции
53 3 Всеволод Дорофеев
54 3 Всеволод Дорофеев
Функция УказатьНаименованиеВнешнейОбработки()
55 3 Всеволод Дорофеев
	
56 3 Всеволод Дорофеев
    Наименование = ЭтотОбъект.Метаданные().Представление();
57 3 Всеволод Дорофеев
    Возврат Наименование;
58 3 Всеволод Дорофеев
	
59 3 Всеволод Дорофеев
КонецФункции
60 3 Всеволод Дорофеев
61 3 Всеволод Дорофеев
62 3 Всеволод Дорофеев
Функция СведенияОВнешнейОбработке() Экспорт
63 3 Всеволод Дорофеев
	ПараметрыРегистрации = Новый Структура;
64 3 Всеволод Дорофеев
	МассивНазначений = Новый Массив;
65 3 Всеволод Дорофеев
	
66 3 Всеволод Дорофеев
	Наименование = УказатьНаименованиеВнешнейОбработки();
67 3 Всеволод Дорофеев
	
68 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
69 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
70 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Наименование", Наименование);
71 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
72 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");    
73 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Информация", Наименование);
74 3 Всеволод Дорофеев
	
75 3 Всеволод Дорофеев
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
76 1 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
77 5 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
78 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
79 3 Всеволод Дорофеев
	Возврат ПараметрыРегистрации;
80 3 Всеволод Дорофеев
	
81 3 Всеволод Дорофеев
КонецФункции
82 3 Всеволод Дорофеев
83 3 Всеволод Дорофеев
//Для регламентной задачи
84 3 Всеволод Дорофеев
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
85 1 Всеволод Дорофеев
	//...
86 5 Всеволод Дорофеев
    Попытка        
87 5 Всеволод Дорофеев
        Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда
88 5 Всеволод Дорофеев
            //...;
89 5 Всеволод Дорофеев
        ИначеЕсли ИдентификаторКоманды = "ид2" Тогда
90 5 Всеволод Дорофеев
            //...;
91 5 Всеволод Дорофеев
        КонецЕсли;
92 5 Всеволод Дорофеев
    Исключение
93 5 Всеволод Дорофеев
        //добавить запись в журнал
94 5 Всеволод Дорофеев
        ЗаписьЖурналаРегистрации(
95 5 Всеволод Дорофеев
            ОписаниеОшибки(),
96 5 Всеволод Дорофеев
            УровеньЖурналаРегистрации.Ошибка,
97 5 Всеволод Дорофеев
            ,
98 5 Всеволод Дорофеев
            ,
99 5 Всеволод Дорофеев
            ,
100 5 Всеволод Дорофеев
            РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
101 5 Всеволод Дорофеев
                
102 5 Всеволод Дорофеев
    КонецПопытки;
103 5 Всеволод Дорофеев
104 3 Всеволод Дорофеев
КонецПроцедуры
105 1 Всеволод Дорофеев
	
106 1 Всеволод Дорофеев
</pre>
107 5 Всеволод Дорофеев
108 5 Всеволод Дорофеев
h3. Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)
109 5 Всеволод Дорофеев
110 5 Всеволод Дорофеев
https://expert.chistov.pro/public/364711/