Планировщик задач

Пред.  Начало  След.

  Планировщик предназначен для выполнения определенных задач по расписанию или событию. Типовые задачи: формирование пакетных отчетов, рассылка электронных писем (отчетов), прием документов из электронных писем, резервное копирование баз данных и т.п.

  Cкачать дистрибутив службы планировщика, актуальной для соответствующей версии базы данных, можно по ссылке : https://keysystems.ru/files/web/INSTALL/SMART2/install/TaskSchedulerService/ .

 

  Планировщик может быть запущен/настроен локально либо удаленно - для выбора настраиваемого планировщика используется кнопка "Выбрать расположение планировщика" :

mnu_planir_localiz

 

 

в текущем процессе (по умолчанию) - т.е. в составе программы и для работы планировщика должен быть запущен "Бюджет-СМАРТ".  Создавать задачи в локальном планировщике (в текущем процессе "Бюджет-СМАРТ") могут любые пользователи. Соответственно, все задачи выполняются на базе от имени логина, вошедшего в комплекс (создавшего задачи).
 
как служба windows - указывается сетевой путь к компьютеру, где установлен планировщик как отдельная служба. В этом случае для выполнения задач программа "Бюджет-СМАРТ" не требуется. Сама служба устанавливается из дистрибутива (файл вида \BudgetSmart\install\TaskSchedulerServiceSvc.SetupBudget_....msi ) на соответствующем компьютере. Для работы со службой с другого компьютера, на компьютере где установлен планировщик должен быть открыт порт 5013 (по умолчанию).

  С версии комплекса 23.2 для планировщика "как служба" требуется .NET Core 3.1 (Linux, Windows), иначе служба не запустится.

 

Для подключения к планировщику "как служба" используется протокол http, порт по умолчанию 5013 : http://<адрес или имя сервера>:5013 .

Файл конфигурация планировщика "как служба" под Windows находится по пути C:\Program Files (x86)\Keysystems\TaskSchedulerService\appsettings.json .

 

Пример подключения на том же компьютере где запущена служба планировщика: http://localhost:5013 , логин admin и пароль 1 . Логин и пароль задаются в файле конфигурации планировщика "как служба" appsettings.json :

   "IdentityUsers": [

     {

       "Role": "Admin",

       "Login": "admin",

       "Password": "1"

     }

   ]

 
 
Создавать задачи в планировщике, размещенном как отдельная служба, могут только пользователи с правами администратора.

 

Учетная запись Windows

 По умолчанию служба планировщика, будучи службой Windows, запускается от имени системной учетной записи Windows (Local system), которая не является доменной учетной записью и может не иметь необходимых прав доступа для нормальной работы. Рекомендуем запускать службу от имени какой-либо доменной учетной записи (например, для получения доступа к сетевым папкам домена).

 

Учетная запись "Бюджет-СМАРТ"
  На какой базе выполняется задача планировщика и от имени какого пользователя задача подключается к SQL серверу (базе данных) можно глянуть по кнопке "Сменить источник данных" (кнопка присутствует только для задач планировщика как служба). По умолчанию - это пользователь, создавший задачу.

 

Сертификаты

  Если служба планировщика при отработке задач использует сертификаты для создания защищенного канала, то эти сертификаты должны быть установлены в доверенные корневые центры в хранилище "Локальный компьютер". Например, для взаимодействия с ЕИС требуется сертификат минцифры -

 

 

удаленно, подключение через сервис приложений - указывается http адрес сервиса приложений "Бюджет-СМАРТ". Это способ управления планировщиком, запущенном в другой сети, и доступ к нему возможен только через веб-сервис приложения.
  В файле конфигурации сервиса приложений нужно указать адрес подключения к планировщику, например <add Key="TaskSchedulerService" Value="http://127.0.0.1:5013" /> .
  При подключении к планировщику будет запрошен логин и пароль, который задан в файле TaskSchedulerService.config, расположенном в каталоге удаленной службы, см параметры: AuthorizationAccountLogin и AuthorizationAccountPassword .

 

  Текущее расположение просматриваемых задач можно определить по заголовку окна списка задач: если перед текстом "Планировщик задач" ничего нет, то просматривается список локальных задач , иначе просматривается список задач на удаленном компьютере (как служба) и в заголовке отображается адрес этого удаленного компьютера.

 

  Кнопка "Запуск вручную" всегда запускает задачу в текущем процессе экземпляра "Бюджет-СМАРТ", как служба задача работает только по расписанию.

 

Лог работы планировщика хранится в виде txt файла с именем содержащим дату logГГГГММДД.txt (где ГГГГ - год, ММ - месяц, ДД - число месяца) и расположен по пути:

для планировщика в виде службы - C:\Program Files (x86)\Keysystems\TaskSchedulerService\Logs\ .
для планировщика в текущем процессе ПК "Бюджет-СМАРТ" - в логе клиентской части программы, а именно <рабочая папка комплекса>\Logs\ . Начало выполнения задачи планировщика в логе обозначается строкой «Запуск задачи 'OPENTASKSCHEDULER'» .

На каждый день создается отдельный файл лога.

 

Для включения логирования в файле конфигурации appsettings.json задать полный путь к лог-файлу в параметре "path", затем перезапустить Планировщик.

Пример:

 "Serilog": {

   "MinimumLevel": {

     "Default": "Information",

     "Override": {

       "Microsoft": "Warning",

       "Microsoft.Hosting.Lifetime": "Information"

     }

   },

   "WriteTo": [

     {

       "Name": "File",

       "Args": {

        "path": "c:/Program Files(x86)/Keysystems/TaskSchedulerService/logs/log_.txt",

         "rollingInterval": "Day"

       }

     }

   ]

 },

 

События планировщика (успешное завершение, сбой и т.п.) доводятся по внутренней почте до пользователей, указанных в настройке "Адресаты системных сообщений".

 

Использование прокси-сервера

  Для некоторых задач требуется выход в интернет (например при обновлении Справочника БИК): планировщиком используется прокси указанный для комплекса в окне входа.

 

  Если подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать:

для задач, запущенных в текущем процессе "Бюджет-СМАРТ" - на вкладке "Соединение" окна входа в комплекс.
для задач, запущенных как служба Windows - в файле конфигурации TaskSchedulerService.config службы планировщика, который находится в каталоге службы планировщика. В нем необходимо заполнить соответствующий раздел:

<add Key="UseProxy" Value="true" />

<add Key="UseDefaultProxy" Value="false" />

<add Key="ProxyServer" Value="https://proxy:port" />

<add Key="ProxyLogin" Value="" />

<add Key="ProxyPassword" Value="" />

 

Уведомление о результате выполнения задачи

  Для некоторых типов задач результат их выполнения (успех или ошибка) рассылается пользователям, указанным в настройке "Меню Настройки: НАСТРОЙКИ \ Сервер сообщений \ Адресаты сообщений - настройка - Адресаты системных сообщений".

  Это такие задачи как:

Загрузка справочника банков.
Загрузка курса валют с сайта ЦБ.
Задача сервера.

 

 

Задачи

 

Загрузка справочника банков

 

 Требования для успешного обновления справочника банков: версия службы планировщика не ниже 2.20.2.2981 (инсталлятор см в дистрибутиве клиентской части "Бюджет-СМАРТ").

 

  Предназначена для автоматического обновления Справочника БИК по расписанию с сайта Банка России. Для этого:

Создать задачу «Загрузка справочника банков».
Далее на вкладке «Параметры» указать папку, куда будут складываться скачиваемые обновления действующих банков.
Далее на вкладке «Триггеры» задать расписание автоматического обновления (выполнения задачи).

 

  В задаче по обновлению справочника банков указывается "Базовый адрес обновлений справочника" - по умолчанию https://cbr.ru/PSystem/payment_system/ (с мая 2023г) . Скачиваются и обрабатываются xml файлы с тэгом ed807.

 

Примечание. Если задача выполняется в текущем процессе "Бюджет-СМАРТ" и подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать на вкладке "Соединение" окна входа в комплекс.

 

  При удачном завершении очередной загрузки на вкладке "Журнал событий" задачи будет результат в виде
  "Выполнено успешно: Загрузка справочника из файла: C:\...\....zip. Загружено банков: ...". Любые другие сообщения говорят о каких-то проблемах - подробностьи см в протоколе приема справочника БИК в режиме "Навигатор: СЕРВИСНЫЕ РЕЖИМЫ \ Журнал событий".

 

 

  Для просмотра протокола загрузки следует открыть детализацию на вкладке "Журнала событий" в задаче планировщика.

 

mnu_planir_jurnal_bank

 

 

Задача приема файлов по email (выписки, ФНС, платежки и т.п.).

Решается последовательно двумя типами задач:

1) Проверка внешнего почтового ящика.

   С заданной периодичностью проверяет внешний почтовый ящик и загружает файлы из входящих сообщений в заданную папку. Обработанные почтовые сообщения удаляются из входящих.

 

2) Импорт документов (ЭОД).

   Осуществляет прием файлов из определенной папки (которую пополняет первая задача по проверке почтового ящика). Обработанные файлы не удаляются и не перемещаются. Работает задача не по расписанию, а по факту появления файла приема в заданной папке.

 

  Для некоторых ведомостей важен порядок приема набора файлов, либо требуется обеспечить их "одновременный" прием в одной сессии (тогда комплекс сам определит нужный порядок приема). Поэтому рекомендуем ведомости/выписки принимать по файлу с описанием (см далее).

 

Рекомендуемые настройки для приема отдельных документов (платежки, заявки и т.п.)

Параметры задачи:

Приоритетный вид импортируемых документов = Черновик,
Принимать по файлу с описанием = ОТКЛ.

 

Триггера задачи:

Выберите директорию для просмотра - указать папку, в которйо будут расположены файлы приема.
Отслеживать изменения = Создание файла.
Использовать маску файла = *.pp?  (указать маску обрабатываемых файлов). Показан пример для платежных поручений. Примеры масок для: расходных расписаний *.ap? , ФНС tax*.rar (либо tax*.txt) , заявок на кассовый расход *.zr? . Можно указать несколько масок через запятую: *.ap?,*.zr? .

 

Рекомендуемые настройки для приема выписок

Параметры задачи:

Приоритетный вид импортируемых документов = Беловик,
Принимать по файлу с описанием = ВКЛ (обеспечивает автоматически правильный порядок обработки файлов - комплекс сам из совокупности указанных файлов решает в какой последовательности их загрузить).
Маска файла = ссо_по_27.xlm - произвольное имя файла описания в формате xml. Пример содержимого файла для приема Справки о свободном остатке (ССО):

 
<?xml version="1.0" encoding="utf-8"?>

<Root>

  <upload>

    <code>98ac9f51-ea1a-df11-a3dc-16c03228c478</code>

    <file>00001700.se7</file>

    <file>00001704.se7</file>

    <file>00242K00.rk7</file>

    <file>00242K04.rk7</file>

  </upload>

</Root>

 

где 98ac9f51-ea1a-df11-a3dc-16c03228c478 - уникальный идентификатор сеанса приема, для каждого файла описания свой  (например поле GUID из одного из файлов RK). Далее в тегах <file> перечислены имена файлов приема в нужном порядке.

 

Расписание (триггеры) задачи:

Выберите директорию для просмотра - указать папку, в которой будут расположены файлы приема и файл описание (xml). При этом файл описание нужно располагать в этой папке последним, когда все нужные файлы приема уже вналичии.
Отслеживать изменения = Создание файла. планировщик будет ожидать появления файла описания (xml).
Использовать маску файла = пусто.

 

Примечание. Если не применять файл описания, то:

oв поле "Использовать маску файла" следует задавать только имена файлов выписок, без приложений (например правильно *.vb? , и неправильно *.vb?,*.bd?,*.bh? ). Важно: файл выписки (vb, vq и т.п.) должен быть размещен в папке приема последним, после размещения файлов приложений (bd, bh, sp).
oдля приема ССО следует создать отдельные задачи: в первой задаче прием справки об операциях (se), во второй - справки об остатках (rk), при чём первая задача должна стартовать раньше второй на несколько (1-5) минут.

 

Выгрузка отчетов.

 

Формирование по расписанию. В этом случае выписки формируются с задержкой на 1-5 дней - время, необходимое для полной обработки дня специалистами финоргана.

Тип задачи "Пакетная выгрузка отчетов".

В параметрах задачи следует:

в табличной части выбрать нужные пакетные отчеты: предлагаются пакетные отчеты (из папки навигатора "ОТЧЕТЫ \ ПАКЕТЫ ОТЧЕТОВ"), которые пользователь, создающий задачу, хотя бы раз применял.
указать местоположение полученных отчетов: сервис первичных документов (т.е. сохраненные отчеты), либо в папку на диске компьютера, а так же задать отправку по email (используется справочник "Корреспонденты. Участники рассылок").
Смещение дней - смещение даты конца периода отчетов в прошлое относительно расчетной даты, с целью формирования актуальных выписок (только по закрытым дням), с учетом справочника "Нерабочие дни".

 

Ручной запуск (пользователь решает, когда обработка данных завершена и можно формировать выписки за этот день).

А) С использованием планировщика, тип задачи "Пакетная выгрузка отчетов"

Создается задача аналогично варианта по расписанию (какие отчеты и куда выгружать), только разрешить ручной запуск и не задавать расписания. Уполномоченное лицо, когда настал момент предоставлять выписки, заходит в планировщик и выполняет (запускает) задачу, указав нужный период отчета.

 

 

Примечание. Для того же пользователя, от имени которого будет выполняться задача формирования отчетов, рекомендуем создавать задачу "Синхронизация расчетной даты" - чтоб расчетная дата комплекса, относительно которой обычно формируется отчетность, для этого пользователя совпадала с системной датой SQL сервера. Предварительное (до выгрузки отчетов) выполнение этой задачи позволит гарантировать формирование отчетов за нужный период. См. так же параметр "Смещение дней" задачи "Пакетная выгрузка отчетов".

 

Рассылка файлов по почте.

Тип задачи "Отправка файла по почте".

В параметрах задачи в поле "Сообщение" можно применить переменные:

%ATTACH - названия прикрепленных файлов,
%DATE - дата создания письма,
%TIMELONG - время создания письма.
 

Задача отслеживает изменения файловой системы (появление новых файлов, см вкладку "Триггеры") и при появлении в заданной папке новых файлов рассылает письма с этими файлами. Файлы должны содержаить в своём имени идентификтор получателя (счет, ИНН и т.п.) заданный в справочнике "Корреспонденты. Участники рассылок". Если источником корреспондентов задан файл Recipients.txt (список получателей, все адреса пишутся с новой строки), то все файлы будут отправляться по каждому из адресов только из этого файла.

 

Задача отправки файла по почте не поддерживает ручной запуск (предполагает мгновенное выполнение, а файл отправки неизвестен), поэтому в этом случае пишет про отсутствии файла для отправки.

 

 

 

 

Системная задача "Синхронизация расчетной даты".

 

  Предназначена для актуализации расчетной даты комплекса. Для успешного выполнения задачи требуется включение настройки на пользователя "Меню Настройки: НАСТРОЙКИ \ Даты \ Изменять расчетную дату каждый день".

  Принцип действия для ПК "Бюджет-СМАРТ":

если компьютер пользователя не выключается на ночь, то в полночь 00:00:00 задача меняет расчетную дату комплекса в соответствии с календарной датой на компьютере пользователя, и прописывает новую дату в настройке на пользователя "Меню Настройки: НАСТРОЙКИ \ Даты \ Расчетная дата".
при запуске "Бюджет-СМАРТ" эта же задача проверяет расчетную дату комплекса на соответствие календарной дате на компьютере пользователя, при расхождении меняет расчетную дату и прописывает новое значение в настройке на пользователя "Меню Настройки: НАСТРОЙКИ \ Даты \ Расчетная дата".

 

Если SQL сервер по каким-либо причинам недоступен для сохранения значения расчетной даты, то возникнут коллизии: для пользователя  расчетная дата будет отображаться одна, а применяться другая (из настройки).

 

  Для "Бюджет-НЕКСТ" используется (сравнивается) дата на компьютере, где развернут сервер приложений.

 

 

Формирование справочника БК

  Предназначена для обновления справочника "БК (расходы)" по данным документов.

 

Загрузка открытых данных

  Задача по загрузке открытых данных из ЭБ. Используется API сервис ЭБ: от "Бюджет-СМАРТ" формируется и отправляется в ЭБ запрос на предоставление данных - ЭБ  формирует набор данных согласно указанного в запросе фильтра и возвращает данные в "Бюджет-СМАРТ" .

 

  В разделе "Параметры" планировщика можно выбрать следующие документы для загрузки:

 

Сводный реестр (163н) - задача предназначена для обновления справочника "Сводный реестр 163н". В задаче нужно указать фильтр, согласно которого будут запрошены данные в ЭБ:

Код субъекта - указывается кодовое обозначение субъекта Российской Федерации, по учреждениям которого запрашивается сводный реестр, установленное в соответствии с федеративным устройством Российской Федерации, определенным статьей 65 Конституции Российской Федерации, в целях ведения ЕГРЮЛ, в соответствии со сведениями ЕГРЮЛ.

Код уполномоченной организации - указывается код по сводному реестру (код УБП) организации, уполномоченной предоставлять документы по сводному реестру в ОрФК, т.е. код УБП финоргана бюджета, по учреждениям которого запрашивается сводный реестр.

 

Параметры фильтра учитываются по условию И (AND), необязательно указывать все параметры.

 

Корреспонденты (все) - обновляет/добавляет данные по ИНН из Сводного реестра 163н.

 

ОКТМО - Общероссийский классификатор территорий муниципальных образований(7710568760-OKTMO).

 

Загрузка данных с внешних сервисов

Тип задачи "Загрузка данных с внешних сервисов".

Запрашивает данные с внешних сервисов (ЭБ, ЕСИА, ФНС и т.п.) по HTTP протоколу. Результат запроса загружается в соответствующий раздел комплекса (документы, справочники и т.п.) либо обновляет статусы документов по результатам полученных ответов на запросы.
 

В параметрах задачи в поле "Документ" следует выбрать документ/справочник который требуется загрузить с внешнего ресурса (сайт ЭБ, сайт ФНС и т.п.). Примеры возможных значений:

Проверка платежных данных в ЕИС - задача по опросу сервиса ЕИС для получения ответа на запрос о проведении проверки платежных документов по оплате контрактов, ранее отправленный в рамках бизнес процесса "Контроль совершения казначейских платежей с ЕИС" .

 

 

Задача сервера

Произвольная процедура/команда SQL сервера. Доступен справочник типовых процедур:

Окончательное удаление безопасно удаленных документов - окончательно удаляет из базы данных "безопасно удаленные документы" (чистка корзины), дата помещения в корзину которых ранее указанного смещения дней относительно текущей даты. Смещение задается в настройке режима "СЕРВИСНЫЕ РЕЖИМЫ \ Просмотр удаленных документов - Окончательное удаление безопасно удаленных документов (дней)", по-умолчанию 100 дней.
 
Закрытие периода (всех счетов бюджета) - закрывает один день по всем счетам бюджета. Смещение закрываемого дня относительно системной даты сервера, уровень закрытия  и логин, от имени которого будет проведено закрытие - задаются в параметрах команды (скрипта) в поле "Выполняемая команда".

 

-- СУБД MS SQL

execute ('execute dbo.locked_day_close_timer @DayBack = -3, @nLevel = 1'as user = 'admin_day_close'  

 

-- СУБД Postgre 

-- Закрытие идет по счетам бюджета, доступным пользователю, запускающему функцию.

--           параметры: v_DayBack - смещение дней от текущей даты, v_nLevel - уровень закрытия.

select dbo.Locked_Day_Close_Timer (v_DayBack := -2, v_nLevel := 1);

 

 

 

При выполнении задачи закрываются дни с 01.01 по указанную дату (= системная дата SQL - заданное в параметре @DayBack число дней), независимо от наличия в них документов. Закрытие выполняется для счетов бюджета, доступных пользователю, под которым стартует процедура dbo.locked_day_close_timer. Если необходимо закрывать дни для документов без счета бюджета, то следует использовать дополнительный параметр @CloseEmpty = 1.