1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-12-01 02:32:18 +02:00

Периодичность выполнения регламентного задания меньше одной минуты (#916)

* #38 Проверка периодичности выполнения регламентного задания
This commit is contained in:
RedMammoth 2022-01-11 23:04:18 +03:00 committed by GitHub
parent 674e6aeed7
commit 916bac491e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 633 additions and 1 deletions

View File

@ -13,6 +13,8 @@
#### Метаданные
- Периодичность выполнения регламентного задания меньше одной минуты
#### Формы
#### Код модулей

View File

@ -1,2 +1,3 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
encoding//src/com/e1c/v8codestyle/md/check/messages_ru.properties=UTF-8
encoding/<project>=UTF-8

View File

@ -17,6 +17,7 @@ Import-Package: com._1c.g5.v8.bm.core;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.core.platform;version="[10.0.0,11.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.metadata.mdclass.util;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.schedule.model;version="[2.0.0,3.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)",
com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.e1c.g5.v8.dt.check;version="[2.0.0,3.0.0)",

View File

@ -0,0 +1,20 @@
# Периодичность выполнения регламентного задания меньше одной минуты.
Периодичность выполнения регламентного задания меньше одной минуты.
## Неправильно
## Правильно
- регламентное задание не должно выполняться чаще, чем это нужно с прикладной точки зрения;
- с точки зрения оптимальной загрузки сервера приложений для большинства регламентных заданий нормальным является интервал выполнения заданий в 1 день;
- исключения могут составлять случаи, когда критичным является частое выполнение заданий с прикладной точки зрения, например, для поддержания актуальности данных за короткий период;
- ни в каких случаях не следует задавать периодичность выполнения регламентных заданий меньше одной минуты;
- периодичность выполнения частых (с периодичностью менее одного дня) регламентных заданий должна быть сбалансирована со временем выполнения задания: например, если типичное время выполнения 20 секунд, то периодичность раз в минуту, скорее всего, избыточна;
- выполнение ресурсоемких регламентных операций необходимо по возможности переносить на время минимальной загрузки сервера приложений 1С:Предприятие. Например, в нерабочее время или на выходные дни;
- несколько различных ресурсоемких регламентных заданий лучше "разносить" по времени, исходя из ожидаемого времени их выполнения.
## См.
[Настройка расписания регламентных заданий](https://its.1c.ru/db/v8std#content:402:hdoc)

View File

@ -0,0 +1,19 @@
# The minimum job interval is 1 minute
The minimum job interval is 1 minute.
## Noncompliant Code Example
## Compliant Solution
- A scheduled job must be executed just frequently enough to properly serve its objectives.
- For optimal server performance, the default scheduled job interval is 24 hours.
- Some job can be executed more often to keep important data up-to-date.
- The minimum job interval is 1 minute.
- The interval of a scheduled job has to be reasonably balanced with the job run time. For example, if the run time is 20 seconds, running the job every minute is unreasonably often.
- Whenever possible, schedule resource-intensive scheduled jobs during the server low-load hours. For example, during off-hours or off days.
- Schedule resource-intensive jobs in sequence. Consider the expected run time to avoid the job overlap.
## See
[Configuring scheduled job schedules](https://support.1ci.com/hc/en-us/articles/360011001440-Configuring-scheduled-job-schedules)

View File

@ -58,6 +58,10 @@
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.internal.md.ExecutableExtensionFactory:com.e1c.v8codestyle.md.check.MdStandardAttributeSynonymEmpty">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.MdScheduledJobPeriodicityCheck">
</check>
</extension>
</plugin>

View File

@ -0,0 +1,135 @@
/*******************************************************************************
* Copyright (C) 2022, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
* Manaev Konstantin - issue #38
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.DAILY_SCHEDULE;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.DAILY_SCHEDULE__REPEAT_PAUSE;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.DAILY_SCHEDULE__REPEAT_PERIOD_IN_DAY;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.SCHEDULE;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.SCHEDULE__DAILY_SCHEDULES;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.SCHEDULE__REPEAT_PAUSE;
import static com._1c.g5.v8.dt.schedule.model.SchedulePackage.Literals.SCHEDULE__REPEAT_PERIOD_IN_DAY;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EStructuralFeature;
import com._1c.g5.v8.dt.schedule.model.DailySchedule;
import com._1c.g5.v8.dt.schedule.model.Schedule;
import com.e1c.g5.v8.dt.check.CheckComplexity;
import com.e1c.g5.v8.dt.check.ICheckParameters;
import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
/**
* Check mdo ScheduledJobs that a periodicity of execution a job is less than one minute
*
* @author Manaev Konstantin
*/
public final class MdScheduledJobPeriodicityCheck
extends BasicCheck
{
private static final String CHECK_ID = "shceduled-job-periodicity-too-short"; //$NON-NLS-1$
private static final String MINIMUM_JOB_INTERVAL = "minimum-job-interval"; //$NON-NLS-1$
private static final String MINIMUM_JOB_INTERVAL_DEFAULT = "60"; //$NON-NLS-1$
public MdScheduledJobPeriodicityCheck()
{
super();
}
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
if (monitor.isCanceled() || !(object instanceof DailySchedule || object instanceof Schedule))
{
return;
}
EStructuralFeature feature = null;
int repeatPeriod = 0;
int repeatPause = 0;
int minJobInterval = parameters.getInt(MINIMUM_JOB_INTERVAL);
if (object instanceof Schedule)
{
if (!(((Schedule)object).getDailySchedules().isEmpty()))
{
return;
}
repeatPeriod = ((Schedule)object).getRepeatPeriodInDay();
repeatPause = ((Schedule)object).getRepeatPause();
if (repeatPeriod > 0 && repeatPeriod < minJobInterval)
{
feature = SCHEDULE__REPEAT_PERIOD_IN_DAY;
}
else
{
feature = SCHEDULE__REPEAT_PAUSE;
}
}
else if (object instanceof DailySchedule)
{
repeatPeriod = ((DailySchedule)object).getRepeatPeriodInDay();
repeatPause = ((DailySchedule)object).getRepeatPause();
if (repeatPeriod > 0 && repeatPeriod < minJobInterval)
{
feature = DAILY_SCHEDULE__REPEAT_PERIOD_IN_DAY;
}
else
{
feature = DAILY_SCHEDULE__REPEAT_PAUSE;
}
}
if (repeatPeriod > 0 && repeatPeriod < minJobInterval || repeatPause > 0 && repeatPause < minJobInterval)
{
resultAceptor.addIssue(MessageFormat.format(
Messages.MdScheduledJobPeriodicityCheck_The_minimum_job_interval_is_less_then_minute, minJobInterval),
feature);
}
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(MessageFormat.format(Messages.MdScheduledJobPeriodicityCheck_title, MINIMUM_JOB_INTERVAL_DEFAULT))
.description(
MessageFormat.format(Messages.MdScheduledJobPeriodicityCheck_description, MINIMUM_JOB_INTERVAL_DEFAULT))
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MAJOR)
.issueType(IssueType.PERFORMANCE)
.topObject(SCHEDULE)
.checkTop()
.containment(DAILY_SCHEDULE)
.features(DAILY_SCHEDULE__REPEAT_PERIOD_IN_DAY, DAILY_SCHEDULE__REPEAT_PAUSE)
.parameter(MINIMUM_JOB_INTERVAL, Integer.class, MINIMUM_JOB_INTERVAL_DEFAULT,
Messages.MdScheduledJobPeriodicityCheck_Minimum_job_interval_description);
builder.topObject(SCHEDULE)
.checkTop()
.features(SCHEDULE__DAILY_SCHEDULES, SCHEDULE__REPEAT_PERIOD_IN_DAY, SCHEDULE__REPEAT_PAUSE);
}
}

View File

@ -55,6 +55,10 @@ final class Messages
public static String MdScheduledJobDescriptionCheck_title;
public static String MdScheduledJobDescriptionCheck_description;
public static String MdScheduledJobDescriptionCheck_message;
public static String MdScheduledJobPeriodicityCheck_description;
public static String MdScheduledJobPeriodicityCheck_The_minimum_job_interval_is_less_then_minute;
public static String MdScheduledJobPeriodicityCheck_title;
public static String MdScheduledJobPeriodicityCheck_Minimum_job_interval_description;
static
{
// initialize resource bundle

View File

@ -58,3 +58,11 @@ MdScheduledJobDescriptionCheck_description = The description of the predefine sh
MdScheduledJobDescriptionCheck_message = The description of the predefine sheduled job is set
MdScheduledJobDescriptionCheck_title = The description of the predefine sheduled job is set
MdScheduledJobPeriodicityCheck_Minimum_job_interval_description = Minimum job interval
MdScheduledJobPeriodicityCheck_The_minimum_job_interval_is_less_then_minute = The minimum job interval is less then {0}s
MdScheduledJobPeriodicityCheck_description = The minimum job interval is less then {0}s
MdScheduledJobPeriodicityCheck_title = The minimum job interval is less then {0}s

View File

@ -59,3 +59,11 @@ MdScheduledJobDescriptionCheck_description = Задано наименовани
MdScheduledJobDescriptionCheck_message = Задано наименование предопределенного регламентного задания
MdScheduledJobDescriptionCheck_title = Задано наименование предопределенного регламентного задания
MdScheduledJobPeriodicityCheck_The_minimum_job_interval_is_less_then_minute = Периодичность выполнения регламентного задания меньше {0}сек
MdScheduledJobPeriodicityCheck_description = Периодичность выполнения регламентного задания меньше {0}сек
MdScheduledJobPeriodicityCheck_title = Периодичность выполнения регламентного задания меньше {0}сек
MdScheduledJobPeriodicityCheck_Minimum_job_interval_description = Минимальный интервал выполнения

View File

@ -0,0 +1,157 @@
/*******************************************************************************
* Copyright (C) 2022, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
* Manaev Konstantin - issue #38
*******************************************************************************/
package com.e1c.v8codestyle.md.check.itests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.eclipse.emf.common.util.EList;
import org.junit.Test;
import com._1c.g5.v8.bm.core.IBmObject;
import com._1c.g5.v8.dt.core.platform.IDtProject;
import com._1c.g5.v8.dt.schedule.model.DailySchedule;
import com._1c.g5.v8.dt.schedule.model.Schedule;
import com._1c.g5.v8.dt.validation.marker.Marker;
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
import com.e1c.v8codestyle.md.check.MdScheduledJobPeriodicityCheck;
/**
* Tests for {@link MdScheduledJobPeriodicityCheck} check.
*
* @author Manaev Konstantin
*
*/
public final class MdScheduledJobPeriodicityCheckTest
extends CheckTestBase
{
private static final String CHECK_ID = "shceduled-job-periodicity-too-short"; //$NON-NLS-1$
private static final String PROJECT_NAME = "MdScheduledJobPeriodicity";
/**
* Test that md scheduled job detailed repeat period less than one minute.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobDetailedRepeatPeriodLessOneMinute() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
IBmObject object =
getTopObjectByFqn("ScheduledJob.ScheduledJobWithDetailedRepeatPeriodLessOneMinute.Schedule", dtProject);
if (object instanceof Schedule)
{
Marker marker = null;
EList<DailySchedule> dailySchedules = ((Schedule)object).getDailySchedules();
for (DailySchedule dailySchedule : dailySchedules)
{
marker = getFirstMarker(CHECK_ID, ((IBmObject)dailySchedule).bmGetId(), dtProject);
assertNotNull(marker);
}
}
}
/**
* Test that md scheduled job detailed repeat period more than one minute ignores.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobDetailedRepeatPeriodMoreOneMinute() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
IBmObject object =
getTopObjectByFqn("ScheduledJob.ScheduledJobWithDetailedRepeatPeriodMoreOneMinute.Schedule", dtProject);
if (object instanceof Schedule)
{
Marker marker = null;
EList<DailySchedule> dailySchedules = ((Schedule)object).getDailySchedules();
for (DailySchedule dailySchedule : dailySchedules)
{
marker = getFirstMarker(CHECK_ID, ((IBmObject)dailySchedule).bmGetId(), dtProject);
assertNull(marker);
}
}
}
/**
* Test that md scheduled job with empty schedule ignores.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobEmptySchedule() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("ScheduledJob.ScheduledJobWithEmptySchedule.Schedule", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
/**
* Test that md scheduled job repeat pause less than one minute.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobRepeatPauseLessOneMinute() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("ScheduledJob.ScheduledJobWithRepeatPauseLessOneMinute.Schedule", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
/**
* Test that md scheduled job repeat period less than one minute.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobRepeatPeriodLessOneMinute() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("ScheduledJob.ScheduledJobWithRepeatPeriodLessOneMinute.Schedule", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
/**
* Test that md scheduled job detailed repeat period more than one minute ignores.
*
* @throws Exception the exception
*/
@Test
public void testMdScheduledJobRepeatPeriodMoreOneMinute() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("ScheduledJob.ScheduledJobWithRepeatPeriodMoreOneMinute.Schedule", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MdScheduledJobPeriodicity</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
<nature>com._1c.g5.v8.dt.core.V8ConfigurationNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4b43789f-236f-4b7f-ba6b-85ec0d6218ab">
<name>MdScheduledJobPeriodicity</name>
<synonym>
<key>en</key>
<value>Md scheduled job periodicity</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="5d986340-f233-4b6b-893f-b8e1f2fd94ed"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ff83617f-705a-4ee0-aa03-c1139edd784e"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="b712dc71-537e-40fb-a481-c0ae93e74cb2"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="3a3b194d-6f5a-47df-a276-ad8f222013d1"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="9fd2b563-4eb7-4a1b-b58e-e474114478ec"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="954491e6-4f23-49e1-825e-41ce2f3fd315"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="cfa483a7-95d6-478f-bf8f-6e9a928d8d2c"/>
<configurationExtensionCompatibilityMode>8.3.19</configurationExtensionCompatibilityMode>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<usedMobileApplicationFunctionalities>
<functionality>
<use>true</use>
</functionality>
<functionality>
<functionality>OSBackup</functionality>
<use>true</use>
</functionality>
</usedMobileApplicationFunctionalities>
<defaultLanguage>Language.English</defaultLanguage>
<dataLockControlMode>Managed</dataLockControlMode>
<objectAutonumerationMode>NotAutoFree</objectAutonumerationMode>
<modalityUseMode>DontUse</modalityUseMode>
<synchronousPlatformExtensionAndAddInCallUseMode>DontUse</synchronousPlatformExtensionAndAddInCallUseMode>
<compatibilityMode>8.3.19</compatibilityMode>
<languages uuid="d9545c84-c0e1-4756-b4cb-d3639545a6ea">
<name>English</name>
<synonym>
<key>en</key>
<value>English</value>
</synonym>
<languageCode>en</languageCode>
</languages>
<scheduledJobs>ScheduledJob.ScheduledJobWithDetailedRepeatPeriodLessOneMinute</scheduledJobs>
<scheduledJobs>ScheduledJob.ScheduledJobWithDetailedRepeatPeriodMoreOneMinute</scheduledJobs>
<scheduledJobs>ScheduledJob.ScheduledJobWithEmptySchedule</scheduledJobs>
<scheduledJobs>ScheduledJob.ScheduledJobWithRepeatPauseLessOneMinute</scheduledJobs>
<scheduledJobs>ScheduledJob.ScheduledJobWithRepeatPeriodLessOneMinute</scheduledJobs>
<scheduledJobs>ScheduledJob.ScheduledJobWithRepeatPeriodMoreOneMinute</scheduledJobs>
</mdclass:Configuration>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="67" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
<dailySchedules beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="30"/>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f821431e-49f7-49c5-80c1-bd02a8dafe94">
<name>ScheduledJobWithDetailedRepeatPeriodLessOneMinute</name>
<synonym>
<key>en</key>
<value>Scheduled job with detailed repeat period less one minute</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="65" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
<dailySchedules beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="65"/>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="bdaaf5e0-21c6-4259-a2c1-1c4460ac16b9">
<name>ScheduledJobWithDetailedRepeatPeriodMoreOneMinute</name>
<synonym>
<key>en</key>
<value>Scheduled job with detailed repeat period more one minute</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5fc4b3f8-db53-4415-9e4d-8aa33fd793d1">
<name>ScheduledJobWithEmptySchedule</name>
<synonym>
<key>en</key>
<value>Scheduled job with empty schedule</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPause="15" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6172151d-da31-4954-a019-901f8a66ce60">
<name>ScheduledJobWithRepeatPauseLessOneMinute</name>
<synonym>
<key>en</key>
<value>Scheduled job with repeat pause less one minute</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="25" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b791416d-cf9b-4dbc-8886-4916d6577602">
<name>ScheduledJobWithRepeatPeriodLessOneMinute</name>
<synonym>
<key>en</key>
<value>Scheduled job with repeat period less one minute</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<schedule:Schedule xmlns:schedule="http://g5.1c.ru/v8/dt/schedule" beginDate="0001-01-01" endDate="0001-01-01" beginTime="00:00:00" endTime="00:00:00" completionTime="00:00:00" repeatPeriodInDay="80" weeksPeriod="1">
<weekDays>Sun</weekDays>
<weekDays>Mon</weekDays>
<weekDays>Tue</weekDays>
<weekDays>Wed</weekDays>
<weekDays>Thu</weekDays>
<weekDays>Fri</weekDays>
<weekDays>Sat</weekDays>
<months>Jan</months>
<months>Feb</months>
<months>Mar</months>
<months>Apr</months>
<months>May</months>
<months>Jun</months>
<months>Jul</months>
<months>Aug</months>
<months>Sep</months>
<months>Oct</months>
<months>Nov</months>
<months>Dec</months>
</schedule:Schedule>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:ScheduledJob xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d3b45cdb-424e-4fbe-ad01-f075015b9d2e">
<name>ScheduledJobWithRepeatPeriodMoreOneMinute</name>
<synonym>
<key>en</key>
<value>Scheduled job with repeat period more one minute</value>
</synonym>
<use>true</use>
<restartCountOnFailure>3</restartCountOnFailure>
<restartIntervalOnFailure>10</restartIntervalOnFailure>
</mdclass:ScheduledJob>