Внешние обработки 83 » История » Версия 5
Версия 4 (Всеволод Дорофеев, 19.05.2020 07:18) → Версия 5/6 (Всеволод Дорофеев, 19.05.2020 07:23)
h1. Внешние обработки 8.3
h3. Варианта запуска внешней обработки
Существует три варианта запуска внешней обработки:
* Открытие формы
* Вызов серверного метода
* Вызов клиентского метода
Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().
Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".
Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.
h3. Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3
источник:
https://www.koderline.ru/expert/programming/article-zapusk-vneshnikh-obrabotok-1s-iz-vneshnikh-obrabotok-v-fone-v-1s-8-3/
h3. Использование регламентных процедур в внешней обработке
<pre>
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
//имя макета печ.формы
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
//ВызовСерверногоМетода
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецФункции
Функция УказатьНаименованиеВнешнейОбработки()
Наименование = ЭтотОбъект.Метаданные().Представление();
Возврат Наименование;
КонецФункции
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
Наименование = УказатьНаименованиеВнешнейОбработки();
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", Наименование);
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");
ПараметрыРегистрации.Вставить("Информация", Наименование);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
//Для регламентной задачи
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
//...
Попытка
Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда
//...;
ИначеЕсли ИдентификаторКоманды = "ид2" Тогда
//...;
КонецЕсли;
Исключение
//добавить запись в журнал
ЗаписьЖурналаРегистрации(
ОписаниеОшибки(),
УровеньЖурналаРегистрации.Ошибка,
,
,
,
РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
КонецПопытки;
КонецПроцедуры
</pre>
h3. Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)
https://expert.chistov.pro/public/364711/
h3. Варианта запуска внешней обработки
Существует три варианта запуска внешней обработки:
* Открытие формы
* Вызов серверного метода
* Вызов клиентского метода
Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().
Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".
Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.
h3. Запуск внешних обработок 1С из внешних обработок в фоне в 1С 8.3
источник:
https://www.koderline.ru/expert/programming/article-zapusk-vneshnikh-obrabotok-1s-iz-vneshnikh-obrabotok-v-fone-v-1s-8-3/
h3. Использование регламентных процедур в внешней обработке
<pre>
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
//имя макета печ.формы
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
//ВызовСерверногоМетода
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецФункции
Функция УказатьНаименованиеВнешнейОбработки()
Наименование = ЭтотОбъект.Метаданные().Представление();
Возврат Наименование;
КонецФункции
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
Наименование = УказатьНаименованиеВнешнейОбработки();
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", Наименование);
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Версия", "XX.XX.202X");
ПараметрыРегистрации.Вставить("Информация", Наименование);
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, Наименование, Наименование, ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(), Ложь); // Форма обработки
ДобавитьКоманду(ТаблицаКоманд, "Регламентная выгрузка", "РегламентнаяВыгрузка", "РегламентнаяВыгрузка", ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Ложь); // регламентная процедура. Вызывает ВыполнитьКоманду(
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
//Для регламентной задачи
Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
//...
Попытка
Если ИдентификаторКоманды = "РегламентнаяВыгрузка" Тогда
//...;
ИначеЕсли ИдентификаторКоманды = "ид2" Тогда
//...;
КонецЕсли;
Исключение
//добавить запись в журнал
ЗаписьЖурналаРегистрации(
ОписаниеОшибки(),
УровеньЖурналаРегистрации.Ошибка,
,
,
,
РежимТранзакцииЗаписиЖурналаРегистрации.Независимая);
КонецПопытки;
КонецПроцедуры
</pre>
h3. Универсальное регламентное задание для запуска внешних и встроенных обработок. Как настроить легко и быстро (8.х)
https://expert.chistov.pro/public/364711/