Проект

Общее

Профиль

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

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

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 3 Всеволод Дорофеев
Функция ПолучитьТаблицуКоманд()
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 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");    
72 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Информация", Наименование);
73 3 Всеволод Дорофеев
	
74 3 Всеволод Дорофеев
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
75 3 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
76 3 Всеволод Дорофеев
	ДобавитьКоманду(ТаблицаКоманд, "РегламентнаяВыгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
77 3 Всеволод Дорофеев
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
78 3 Всеволод Дорофеев
	Возврат ПараметрыРегистрации;
79 3 Всеволод Дорофеев
	
80 3 Всеволод Дорофеев
КонецФункции
81 3 Всеволод Дорофеев
82 3 Всеволод Дорофеев
//Для регламентной задачи
83 3 Всеволод Дорофеев
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
84 3 Всеволод Дорофеев
	//...
85 3 Всеволод Дорофеев
КонецПроцедуры
86 3 Всеволод Дорофеев
	
87 3 Всеволод Дорофеев
88 3 Всеволод Дорофеев
</pre>