Проект

Общее

Профиль

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

Всеволод Дорофеев, 11.10.2022 00:11

1 2 Всеволод Дорофеев
h1. Внешние обработки 8.3
2 1 Всеволод Дорофеев
3 6 Всеволод Дорофеев
{{TOC}}
4 6 Всеволод Дорофеев
5 4 Всеволод Дорофеев
h3. Варианта запуска внешней обработки
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 4 Всеволод Дорофеев
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.
19 4 Всеволод Дорофеев
20 1 Всеволод Дорофеев
h3. Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3
21 1 Всеволод Дорофеев
22 1 Всеволод Дорофеев
источник:
23 1 Всеволод Дорофеев
https://www.koderline.ru/expert/programming/article-zapusk-vneshnikh-obrabotok-1s-iz-vneshnikh-obrabotok-v-fone-v-1s-8-3/
24 3 Всеволод Дорофеев
25 3 Всеволод Дорофеев
h3. Использование регламентных процедур в внешней обработке
26 3 Всеволод Дорофеев
27 3 Всеволод Дорофеев
<pre>
28 5 Всеволод Дорофеев
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 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Наименование", Наименование);
73 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
74 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");    
75 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Информация", Наименование);
76 3 Всеволод Дорофеев
	
77 3 Всеволод Дорофеев
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
78 1 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
79 5 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
80 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
81 3 Всеволод Дорофеев
	Возврат ПараметрыРегистрации;
82 3 Всеволод Дорофеев
	
83 3 Всеволод Дорофеев
КонецФункции
84 3 Всеволод Дорофеев
85 3 Всеволод Дорофеев
//Для регламентной задачи
86 3 Всеволод Дорофеев
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
87 1 Всеволод Дорофеев
	//...
88 5 Всеволод Дорофеев
    Попытка        
89 5 Всеволод Дорофеев
        Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда
90 5 Всеволод Дорофеев
            //...;
91 5 Всеволод Дорофеев
        ИначеЕсли ИдентификаторКоманды = "ид2" Тогда
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 5 Всеволод Дорофеев
    КонецПопытки;
105 5 Всеволод Дорофеев
106 3 Всеволод Дорофеев
КонецПроцедуры
107 1 Всеволод Дорофеев
	
108 1 Всеволод Дорофеев
</pre>
109 5 Всеволод Дорофеев
110 5 Всеволод Дорофеев
h3. Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)
111 5 Всеволод Дорофеев
112 5 Всеволод Дорофеев
https://expert.chistov.pro/public/364711/