Проект

Общее

Профиль

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

Всеволод Дорофеев, 07.10.2021 22:05

1 2 Всеволод Дорофеев
h1. Регламентные фоновые задания
2 1 Всеволод Дорофеев
3 1 Всеволод Дорофеев
h3. Добавление расписания.
4 1 Всеволод Дорофеев
5 1 Всеволод Дорофеев
Если указать Предопределенное - автоматически добавится на вкладку "Регламентные задания" основной формы обработки РегламентныеИФоновыеЗадания.
6 1 Всеволод Дорофеев
Или добавить в ручном режиме - Ins.
7 2 Всеволод Дорофеев
8 2 Всеволод Дорофеев
h3. Пример отображения прогресса фонового задания
9 2 Всеволод Дорофеев
10 2 Всеволод Дорофеев
https://infostart.ru/public/119601/
11 2 Всеволод Дорофеев
12 2 Всеволод Дорофеев
<pre>
13 2 Всеволод Дорофеев
Процедура ФоновоеЧтениеJSON(ИмяФайла) Экспорт 
14 2 Всеволод Дорофеев
   
15 2 Всеволод Дорофеев
   Ст = 0;
16 2 Всеволод Дорофеев
   JS = Новый ЧтениеJSON;
17 2 Всеволод Дорофеев
   Сообщить("Начало, открываем файл");
18 2 Всеволод Дорофеев
   JS.ОткрытьФайл(ИмяФайла);
19 2 Всеволод Дорофеев
   Сообщить("Файл открыт");
20 2 Всеволод Дорофеев
   Пока JS.Прочитать() Цикл
21 2 Всеволод Дорофеев
      Ст = ст + 1;
22 2 Всеволод Дорофеев
      Если Ст%100 = 0 Тогда 
23 2 Всеволод Дорофеев
         Сообщить("" + ст);
24 2 Всеволод Дорофеев
      КонецЕсли;
25 2 Всеволод Дорофеев
   КонецЦикла;
26 2 Всеволод Дорофеев
   Сообщить("окончание, закрываем файл");
27 2 Всеволод Дорофеев
   JS.Закрыть();
28 2 Всеволод Дорофеев
29 2 Всеволод Дорофеев
КонецПроцедуры
30 2 Всеволод Дорофеев
31 2 Всеволод Дорофеев
</pre>
32 2 Всеволод Дорофеев
33 2 Всеволод Дорофеев
<pre>
34 2 Всеволод Дорофеев
&НаСервере
35 2 Всеволод Дорофеев
Процедура ПрочитатьНаСервере()
36 2 Всеволод Дорофеев
   // Вставить содержимое обработчика.
37 2 Всеволод Дорофеев
   МассивПараметров = Новый Массив;
38 2 Всеволод Дорофеев
   МассивПараметров.Добавить(Путь);
39 2 Всеволод Дорофеев
   ФЗ = ФоновыеЗадания.Выполнить("МойМодуль.ФоновоеЧтениеJSON", МассивПараметров, , "Читам файл JSON");
40 2 Всеволод Дорофеев
   ГУИДФЗ = ФЗ.УникальныйИдентификатор;
41 2 Всеволод Дорофеев
КонецПроцедуры
42 2 Всеволод Дорофеев
43 2 Всеволод Дорофеев
&НаКлиенте
44 2 Всеволод Дорофеев
Процедура Прочитать(Команда)
45 2 Всеволод Дорофеев
   ПрочитатьНаСервере();
46 2 Всеволод Дорофеев
   ПодключитьОбработчикОжидания("Обождание", 1, Ложь);
47 2 Всеволод Дорофеев
   Состояние("Подключен обработчик");
48 2 Всеволод Дорофеев
КонецПроцедуры
49 2 Всеволод Дорофеев
50 2 Всеволод Дорофеев
51 2 Всеволод Дорофеев
&НаКлиенте
52 2 Всеволод Дорофеев
Процедура Обождание()
53 2 Всеволод Дорофеев
   Если ПолучитьДанныеФЗ() = Неопределено Тогда 
54 2 Всеволод Дорофеев
      ОтключитьОбработчикОжидания("Обождание");
55 2 Всеволод Дорофеев
      Состояние("Отключен обработчик");
56 2 Всеволод Дорофеев
   КонецЕсли;
57 2 Всеволод Дорофеев
   
58 2 Всеволод Дорофеев
КонецПроцедуры
59 2 Всеволод Дорофеев
60 2 Всеволод Дорофеев
&НаСервере
61 2 Всеволод Дорофеев
Функция ПолучитьДанныеФЗ()
62 2 Всеволод Дорофеев
   ФЗ = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ГУИДФЗ);
63 2 Всеволод Дорофеев
   Если ФЗ = Неопределено ИЛИ НЕ ФЗ.Состояние = СостояниеФоновогоЗадания.Активно Тогда 
64 2 Всеволод Дорофеев
      Сообщить("Состояние ФЗ: " + ФЗ.Состояние);
65 2 Всеволод Дорофеев
      Возврат Неопределено
66 2 Всеволод Дорофеев
   Иначе
67 2 Всеволод Дорофеев
      Для Каждого Ст ИЗ ФЗ.ПолучитьСообщенияПользователю(Истина) Цикл 
68 2 Всеволод Дорофеев
         ПрочитаноСтрок = ст.текст;
69 2 Всеволод Дорофеев
      КонецЦикла;
70 2 Всеволод Дорофеев
      Возврат 0
71 2 Всеволод Дорофеев
   КонецЕсли;
72 2 Всеволод Дорофеев
КонецФункции
73 2 Всеволод Дорофеев
74 2 Всеволод Дорофеев
Путь = "/home/sergey/Документы/100mb.json";
75 2 Всеволод Дорофеев
76 2 Всеволод Дорофеев
77 2 Всеволод Дорофеев
</pre>
78 3 Всеволод Дорофеев
79 3 Всеволод Дорофеев
80 3 Всеволод Дорофеев
h3. Запуск регламентных заданий
81 3 Всеволод Дорофеев
82 3 Всеволод Дорофеев
https://its.1c.ru/db/v8std/content/539/hdoc