Проект

Общее

Профиль

Регламентные задания » История » Версия 3

Версия 2 (Всеволод Дорофеев, 02.03.2021 00:20) → Версия 3/4 (Всеволод Дорофеев, 07.10.2021 22:05)

h1. Регламентные фоновые задания

h3. Добавление расписания.

Если указать Предопределенное - автоматически добавится на вкладку "Регламентные задания" основной формы обработки РегламентныеИФоновыеЗадания.
Или добавить в ручном режиме - Ins.

h3. Пример отображения прогресса фонового задания

https://infostart.ru/public/119601/

<pre>
Процедура ФоновоеЧтениеJSON(ИмяФайла) Экспорт

Ст = 0;
JS = Новый ЧтениеJSON;
Сообщить("Начало, открываем файл");
JS.ОткрытьФайл(ИмяФайла);
Сообщить("Файл открыт");
Пока JS.Прочитать() Цикл
Ст = ст + 1;
Если Ст%100 = 0 Тогда
Сообщить("" + ст);
КонецЕсли;
КонецЦикла;
Сообщить("окончание, закрываем файл");
JS.Закрыть();

КонецПроцедуры

</pre>

<pre>
&НаСервере
Процедура ПрочитатьНаСервере()
// Вставить содержимое обработчика.
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(Путь);
ФЗ = ФоновыеЗадания.Выполнить("МойМодуль.ФоновоеЧтениеJSON", МассивПараметров, , "Читам файл JSON");
ГУИДФЗ = ФЗ.УникальныйИдентификатор;
КонецПроцедуры

&НаКлиенте
Процедура Прочитать(Команда)
ПрочитатьНаСервере();
ПодключитьОбработчикОжидания("Обождание", 1, Ложь);
Состояние("Подключен обработчик");
КонецПроцедуры

&НаКлиенте
Процедура Обождание()
Если ПолучитьДанныеФЗ() = Неопределено Тогда
ОтключитьОбработчикОжидания("Обождание");
Состояние("Отключен обработчик");
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция ПолучитьДанныеФЗ()
ФЗ = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ГУИДФЗ);
Если ФЗ = Неопределено ИЛИ НЕ ФЗ.Состояние = СостояниеФоновогоЗадания.Активно Тогда
Сообщить("Состояние ФЗ: " + ФЗ.Состояние);
Возврат Неопределено
Иначе
Для Каждого Ст ИЗ ФЗ.ПолучитьСообщенияПользователю(Истина) Цикл
ПрочитаноСтрок = ст.текст;
КонецЦикла;
Возврат 0
КонецЕсли;
КонецФункции

Путь = "/home/sergey/Документы/100mb.json";

</pre>

h3. Запуск регламентных заданий

https://its.1c.ru/db/v8std/content/539/hdoc