Механизм заданий

Печать (Ctrl+P)

1С: Предприятие 8.3.13 . Документация
Руководство разработчика
Глава 18. Механизм заданий

Механизм заданий предназначен для выполнения какой-либо прикладной функциональности по расписанию или асинхронно.

Механизм заданий решает следующие задачи:

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

Механизм заданий состоит из следующих компонентов:

  • метаданных регламентных заданий,
  • регламентных заданий,
  • фоновых заданий,
  • планировщика заданий.

Регламентные задания предназначены для выполнения прикладных задач по расписанию. Регламентные задания хранятся в информационной базе и создаются на основе метаданных, определяемых в конфигурации. Метаданные регламентного задания содержат такую информацию, как наименование, метод, использование и т. д.

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

Фоновые задания предназначены для выполнения прикладных задач асинхронно, реализуются средствами встроенного языка.

Планировщик заданий используется для планирования выполнения регламентных заданий. Для каждого регламентного задания планировщик периодически проверяет, соответствует ли текущая дата и время расписанию регламентного задания. Если соответствует, планировщик назначает такое задание на выполнение. Для этого по данному регламентному заданию планировщик создает фоновое задание, которое и выполняет реальную обработку.

18.2. Фоновые задания

18.2.1. Общая информация

Фоновые задания удобно использовать для выполнения сложных вычислений, когда результат вычисления может быть получен через продолжительное время. Механизм заданий имеет средства для выполнения таких вычислений асинхронно.

С фоновым заданием связан метод, который вызывается при выполнении фонового задания. В качестве метода фонового задания может выступать любая процедура или функция не глобального общего модуля, которую можно вызвать на сервере. Параметрами фонового задания могут быть любые значения, которые разрешено передавать на сервер. Параметры фонового задания должны в точности соответствовать параметрам той процедуры или функции, которую оно вызывает. Параметры фонового задания, в сериализованном виде, не могут превышать размер в 1 Гбайт. Если размер сериализованных параметров фонового задания превышает значение 1 Гбайт ‑ формируется исключение. Если методом фонового задания является функция, то ее возвращаемое значение игнорируется.

Фоновое задание может иметь ключ ‑ любое прикладное значение. Ключ вводит ограничение на запуск фоновых заданий ‑ в единицу времени может выполняться только одно фоновое задание с определенным значением ключа и заданным именем метода фонового задания (имя метода состоит из имени модуля и имени процедуры или функции). Ключ позволяет группировать фоновые задания, имеющие одинаковые методы, по определенному прикладному признаку с тем, чтобы в рамках одной группы выполнялось не более одного фонового задания.

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

Фоновое задание является чисто сеансовым объектом, но не принадлежит какому-либо пользовательскому сеансу. Для каждого задания создается специальный системный сеанс, выполняющийся от имени того пользователя, который выполнил вызов. Фоновые задания не имеют сохраняемого состояния.

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

Фоновое задание имеет возможность помещать данные во временное хранилище вызывающего сеанса (см. здесь). Это может быть использовано, например, для передачи в вызывающий сеанс сформированного отчета или подготовленных для обработки данных. Передача данных из вызывающего сеанса в сеанс фонового задания невозможна.

Запуск фонового задания выполняется следующим образом:

  • Выполняются служебные действия:
  • Фиксируется факт запуска фонового задания в журнале регистрации;
  • Устанавливаются параметры соединения с внешними источниками данных ;
  • Устанавливается режим интерфейса и т. д.
  • В модуле сеанса выполняется обработчик события УстановкаПараметровСеанса ;
  • Выполняется собственно фоновое задание.

Завершившиеся успешно или аварийно фоновые задания хранятся в течение суток, а потом удаляются. История выполнения фоновых и регламентных заданий имеет следующие особенности:

● История хранится для каждой информационной базы;

● Хранится история выполнения:

● Фоновых заданий ‑ не более 1 000 заданий.

● Регламентных заданий ‑ не более 1 000 заданий. При этом система пытается хранить не менее 3 последних запусков для каждого различного регламентного задания. При превышении общего ограничения в 1 000 запусков, система будет пытаться обеспечить хранение 2 последних запусков для каждого регламентного задания, а потом 1.

● Системных фоновых заданий ‑ не более 1 000 запусков. В данном разделе речь идет о фоновых заданиях, которые инициируются системой для выполнения каких-либо действий (выполнение отчетов, поиск и т. д.).

18.2.2. Работа с фоновыми заданиями из встроенного языка

ПРИМЕЧАНИЕ. Примеры, приведенные в данном разделе, не являются законченными. Они предназначены только для демонстрации способов работы с фоновыми заданиями.

Управление фоновыми заданиями выполняется с помощью менеджера фоновых заданий (ФоновыеЗадания). С помощью менеджера фоновых заданий предоставляется возможность:

● Выполнить фоновое задание с передачей параметров (метод ФоновыеЗадания.Выполнить()). После запуска фонового задания возвращается объект, описывающий запущенное фоновое задание (ФоновоеЗадание).

● Получить список фоновых заданий, соответствующих некоторому отбору (метод ФоновыеЗадания.ПолучитьФоновыеЗадания()) или найти фоновое задание по уникальному идентификатору фонового задания (ФоновыеЗадания.НайтиПоУникальномуИдентификатору()).

● Ожидать завершение одного (ФоновоеЗадание.ОжидатьЗавершенияВыполнения()) или нескольких (метод ФоновыеЗадания.ОжидатьЗавершенияВыполнения()) ранее запущенных фоновых заданий с указанием времени ожидания.

Более подробно рассмотрим все этапы.

Для запуска фонового задания необходима экспортируемая процедура или функция, описанная в не глобальном общем модуле, который доступен на сервере. Параметры вызываемого метода необходимо перечислить в специальном массиве параметров. При этом порядок следования параметров в методе должен в точности соответствовать порядку элементов массива: самый левый параметр соответствует элементу массива с индексом 0. Все значения параметров фонового задания должны поддерживать сериализацию. Затем передается ключ и описание запускаемого фонового задания. Ключ используется для обеспечения уникальности запускаемого фонового задания.

В качестве фонового задания будет использоваться экспортный метод общего модуля с именем ВыгрузитьДанные(), расположенный в серверном общем модуле ОбщийМодульФоновые:

Функция ВыгрузитьДанные(ОписаниеДанных, ПутьКФайлу) Экспорт
    // здесь выполняется собственно выгрузка данных
КонецФункции

Для запуска фонового задания необходимо выполнить следующее:

ПараметрыВызова = Новый Массив;
ПараметрыВызова.Добавить(ВыгружаемыеДанные);
ПараметрыВызова.Добавить("c:\temp\data.dat");
ЗаданиеВыгрузки = ФоновыеЗадания.Выполнить("ОбщийМодульФоновые.ВыгрузитьДанные", ПараметрыВызова, "ВыгрузкаДанных", "Выгрузка данных в файл на диске");

В качестве параметра ОписаниеДанных будет передано значение переменной ВыгружаемыеДанные, в качестве значения параметра ПутьКФайлу будет передана строка c:\temp\data.dat. Для запускаемого фонового задания будет установлен ключ уникальности ВыгрузкаДанных и некоторое описание.

При запуске не выполняется ожидания завершения работы фонового задания. Вместо этого, после создания специального сеанса работы фонового задания и запуска метода фонового задания на выполнение, управление вернется в вызываемый код. При этом в качестве возвращаемого значения метода ФоновыеЗадания.Выполнить() будет получен объект, описывающий запущенное фоновое задание (типа ФоновоеЗадание). Этот объект будет помещен в переменную ЗаданиеВыгрузки.

С помощью описания фонового задания можно получить идентификатор фонового задания, который используется для поиска фонового задания (свойство УникальныйИдентификаторобъекта ФоновоеЗадание). При проверке состояния фонового задания (с помощью свойства фонового задания Состояние) следует помнить, что это состояние фиксируется на момент создания объекта ФоновоеЗадание и в дальнейшем не обновляется. Для проверки состояния необходимо перед каждой проверкой получать описание для проверяемого фонового задания:

ЗаданиеВыгрузки = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);

При необходимости, работу конкретного экземпляра фонового задания можно прервать с помощью метода ФоновоеЗадание.Отменить(). При этом следует помнить, что после прерывания фонового задания необходимо реализовать «сборку мусора». Например, удалить временные файлы, которые могло порождать прерываемое фоновое задание.

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

Таким образом, ожидание завершения работы фонового задания можно выполнить следующим образом:

Пока Истина Цикл
    ЗаданиеВыгрузки = ЗаданиеВыгрузки.ОжидатьЗавершенияВыполнения(10);
    Если ЗаданиеВыгрузки.Состояние = СостояниеФоновогоЗадания.Активно Тогда
        // продолжаем ждать завершения
        Продолжить;
    Иначе
        // фоновое задание завершено
        Прервать;
    КонецЕсли;
КонецЦикла;

В примере таймаут установлен в 10 секунд (параметр метода ОжидатьЗавершенияВыполнения()). Если за 10 секунд фоновое задание не завершило свою работу ‑ цикл ожидания завершения будет продолжен. Если фоновое задание перестало выполняться (перестало быть активным), то конкретная причина завершения будет понятна по анализу свойства ФоновоеЗадание.Состояние.

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

Фоновое задание в процессе своей работы может формировать сообщения пользователю (с помощью объекта СообщениеПользователю). Эти сообщения могут быть получены с помощью метода ФоновоеЗадание.ПолучитьСообщенияПользователю(). Сообщения можно получать как во время работы фонового задания, так и после завершения работы задания.

18.2.3. Фоновое задание и расширения

При старте фонового задания в сеансе фонового задания будут подключены те расширения, которые были подключены в родительском сеансе. В тоже время имеется возможность запустить фоновое задание таким образом, чтобы в сеансе фонового задания были подключены все расширения, зарегистрированные для текущей информационной базы и текущего набора разделителей. Для этого следует использовать метод РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(). Однако, в некоторых сценариях может потребоваться запускать фоновое задание совсем без расширений конфигурации. Для этого следует использовать метод РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений().

18.3. Регламентные задания

Регламентные задания используются, когда необходимо выполнить определенные периодические или однократные действия в соответствии с расписанием.

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

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

ПРИМЕЧАНИЕ. При работе в файловом варианте создавать и редактировать регламентные задания возможно без запуска планировщика заданий.

С регламентным заданием связан метод, который вызывается при выполнении регламентного задания. В качестве метода регламентного задания может выступать любая процедура или функция неглобального общего модуля, которую можно вызвать на сервере. Параметрами регламентного задания могут быть любые значения, которые разрешено передавать на сервер. Параметры регламентного задания должны в точности соответствовать параметрам той процедуры или функции, которую оно вызывает. Если методом регламентного задания является функция, то ее возвращаемое значение игнорируется.

Регламентное задание может иметь ключ ‑ любое прикладное значение. Ключ вводит ограничение на запуск регламентных заданий, т. к. в единицу времени среди регламентных заданий, связанных с одним и тем же объектом метаданных, может выполняться только одно регламентное задание с определенным значением ключа. Ключ позволяет группировать регламентные задания, связанные с одним и тем же объектом метаданных, по определенному прикладному признаку с тем, чтобы в рамках одной группы выполнялось не более одного регламентного задания.

При конфигурировании можно определить предопределенные регламентные задания. Предопределенные регламентные задания ничем не отличаются от обычных регламентных заданий, за исключением того, что их нельзя явно создавать и удалять. Если в метаданных регламентного задания установлен признак предопределенного регламентного задания, то при обновлении конфигурации в информационной базе автоматически будет создано предопределенное регламентное задание. Если признак предопределенности снят, то при обновлении конфигурации в информационной базе автоматически будет удалено предопределенное регламентное задание. Начальные значения свойств предопределенного регламентного задания (например, расписание) устанавливаются в метаданных. В дальнейшем при работе приложения их можно менять через соответствующие методы встроенного языка. Изменение свойств уже созданного предопределенного регламентного задания в метаданных не окажет влияния на реальные параметры этого задания в информационной базе. Предопределенные регламентные задания не имеют параметров.

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

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

● период выполнения;

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

Примеры расписаний регламентных заданий:

РасписаниеЗначения параметров
Каждый час, только один деньПериодПовтораДней = 0ПериодПовтораВТечениеДня = 3600
Каждый день один раз в деньПериодПовтораДней = 1ПериодПовтораВТечениеДня = 0
Один день, один разПериодПовтораДней = 0
Через день один раз в деньПериодПовтораДней = 2
Каждый час с 01.00 до 07.00 каждый деньПериодПовтораДней = 1ПериодПовтораВТечениеДня = 3600ВремяНачала = 01.00ВремяКонца = 07.00
Каждую субботу и воскресенье в 09.00ПериодПовтораДней = 1ДниНедели = 6, 7ВремяНачала = 09.00
Каждый день одну неделю, неделя пропускаПериодПовтораДней = 1ПериодНедель = 2
В 01.00 один разВремяНачала = 01.00
Последнее число каждого месяца в 9.00ПериодПовтораДней = 1ДеньВМесяце = -1ВремяНачала = 09.00
Пятое число каждого месяца в 9.00ПериодПовтораДней = 1ДеньВМесяце = 5ВремяНачала = 09.00
Вторая среда каждого месяца в 9.00ПериодПовтораДней = 1ДеньНеделиВМесяце = 2ДниНедели = 3ВремяНачала = 09.00

Можно проверять, выполняется ли задание для заданной даты (метод ТребуетсяВыполнение() объекта РасписаниеРегламентныхЗаданий). Регламентные задания всегда выполняются от имени определенного пользователя. Если пользователь регламентного задания не указан, то выполнение происходит с правами, которые определяются набором ролей, указанных в свойстве конфигурации ОсновныеРоли. В том случае, если в этом свойстве не указано ни одной роли, выполнение происходит без ограничения прав доступа.

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

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

При реализации метода перезапускаемого регламентного задания нужно учитывать, что при перезапуске его выполнение будет начато с начала, а не продолжено с момента аварийного завершения.

18.4. Особенности выполнения фоновых заданий в файловом и клиент-серверном вариантах

Механизмы выполнения фоновых заданий в файловом и клиент-серверном вариантах различаются.

18.4.1.1. Файловый вариант

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

Поведение фоновых и регламентных заданий в файловом варианте имеет следующие особенности:

● Информация о фоновых заданиях, вызванных с помощью методов языка или выполняющих отчеты, доступна только в том клиентском приложении, которое их выполняло. Информация не сохраняется после завершения работы клиентского приложения.

● Информация о фоновых заданиях, инициированных регламентными заданиями, доступна на всех клиентских приложениях и сохраняется между запусками.

● Регламентные задания выполняются только одним клиентским приложением. Имеется возможность запретить запуск регламентных заданий определенным клиентским приложением или указать, что какое-либо клиентское приложение принудительно назначается исполнителем регламентных заданий. Такое управление осуществляется с помощью:

● Параметра командной строки /AllowExecuteScheduledJobs для толстого и тонкого клиентских приложений.

● Атрибута allowexecutescheduledjobs элемента point файла публикации default.vrd (см. здесь) в случае публикации информационной базы на веб-сервере.

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

● Регламентные задания выполняются расширением веб-сервера до тех пор, пока расширение веб-сервера обслуживает хотя бы один клиентский сеанс.

● Регламентные задания обрабатываются один раз в 60 секунд.

● Инициализация планировщика фоновых заданий выполняется через 60 секунд после старта клиентского приложения или после попытки запустить первое фоновое задание. До момента запуска планировщика фоновых заданий в синхронном режиме выполняются следующие операции: поиск в динамическом списке, построение отчетов и поиск для ввода по строке.

● Инициализация механизма планировщика регламентных заданий выполняется через 60 секунд после запуска механизма планировщика фоновых заданий. Следовательно, регламентные задания прикладного решения начинают выполняться максимум через 120 секунд после запуска клиентского приложения.

● Выполняется принудительное завершение фоновых заданий, которые не завершились в течение 30 секунд после завершения работы клиентского приложения. В журнале регистрации в этом случае фиксируется событие Фоновое задание. Принудительное завершение (_$Job$_.Terminate).

● Не поддерживается работа регламентных заданий в файловом варианте информационной базы в сеансе, который получен с использованием automation-сервера «1С:Предприятия» или COM-соединения. Если в таком сеансе создаются фоновые задания, они размещаются в очереь, но запуск таких заданий выполнен не будет.

18.4.1.2. Клиент-серверный вариант

В клиент-серверном варианте для выполнения фоновых заданий используется планировщик заданий, который физически находится в менеджере кластера. Планировщик получает наименее загруженный рабочий процесс для всех поставленных в очередь на выполнение фоновых заданий и использует его для выполнения соответствующего фонового задания. Рабочий процесс выполняет задание и уведомляет планировщик о результатах выполнения.

В клиент-серверном варианте имеется возможность блокирования выполнения регламентных заданий. Блокирование выполнения регламентных заданий происходит в следующих случаях:

● На информационную базу установлена явная блокировка регламентных заданий. Блокировка может быть установлена через консоль кластера.

● На информационную базу установлена блокировка начала сеансов. Блокировка может быть установлена через консоль кластера.

● Из встроенного языка вызван метод УстановитьМонопольныйРежим() с параметром Истина.

● В некоторых других случаях (например, при обновлении конфигурации базы данных).

18.5. Создание метаданных регламентного задания

Перед тем как создать регламентное задание в информационной базе с помощью встроенного языка, необходимо создать для него объект конфигурации.

Для создания объекта конфигурации регламентного задания в ветке Общие дерева конфигурации для ветки Регламентные задания нужно выполнить команду Добавить.

Регламентное задание обладает рядом свойств, которые описаны ниже.

Имя метода ‑ указывается имя метода регламентного задания.

Ключ ‑ указывается произвольное строковое значение, которое будет использовано в качестве ключа регламентного задания.

Расписание ‑ указывается расписание регламентного задания. Для формирования расписания следует перейти по ссылке Открыть и в открывшейся форме расписания установить нужные значения.

На закладке Общее указывается дата начала и завершения задания и режим повтора.

Рис. 462. Общее расписание

На закладке Дневное указывается дневное расписание задания.

Рис. 463. Дневное расписание

В расписании можно указать:

● время начала и окончания задания;

● время завершения задания, после которого оно будет принудительно завершено;

● период повтора задания;

● продолжительность паузы между повторами;

● продолжительность выполнения.

Допускается указание произвольного сочетания условий.

На закладке Недельное указывается недельное расписание задания.

Рис. 464. Недельное расписание

Нужно установить флажки по тем дням недели, по которым задание будет выполняться. Если требуется повторять задание, указать интервал повтора в неделях. Например, задание выполняется через 2 недели, значение повтора ‑ 2.

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

На закладке Месячное указывается месячное расписание задания.

Рис. 465. Месячное расписание

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

Использование ‑ если установлено, то задание будет выполняться согласно расписанию.

Предопределенное ‑ если установлено, то задание является предопределенным.

Количество повторов при аварийном завершении ‑ указывает количество повторов при аварийном завершении.

Интервал повтора при аварийном завершении ‑ указывает интервал повтора при аварийном завершении.

Пример создания фонового задания «Обновление индекса полнотекстового поиска»:

ФоновыеЗадания.Выполнить("ОбновлениеИндексаПолнотекстовогоПоиска");

Пример создания регламентного задания «Восстановление последовательностей»:

Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ПериодПовтораДней = 1;
Расписание.ПериодПовтораВТечениеДня = 0;
Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание("ВосстановлениеПоследовательностей");
Задание.Расписание = Расписание;
Задание.Записать();
0

Автор публикации

не в сети 1 день

master1c8

0
Комментарии: 12Публикации: 426Регистрация: 25-12-2016

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.