Каталог решений - Настройка регламентных заданий с использованием bat-файлов или vbs-скриптов через механизм Task Scheduler Windows

Настройка регламентных заданий с использованием bat-файлов или vbs-скриптов через механизм Task Scheduler Windows

Настройка регламентных заданий с использованием bat-файлов или vbs-скриптов через механизм Task Scheduler Windows

В наличии

Развернутое описание всех нюансов настройки регламентных заданий без редактирования конфигурации через внешние обработки 1С с использованием bat-файлов или скриптами через механизм Task Scheduler Windows.

Категория:

Описание

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

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

Процесс настройки разделяется на четыре этапа:

  1. Написание самой обработки для запуска;
  2. Выбор способа исполнения регламентного задания;
  3. Настройки параметров пользователя 1С для запуска;
  4. Настройка регламентного задания в Task Scheduler Windows.

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

 

Далее следует выбор, как запускать данную обработку.

Ниже я привожу различные вариации как bat — файлов, так и vbs — скриптов.

Каждый из вариантов имеет свои плюсы, так и минусы. Например, использование первого варианта предполагает полный запуск 1С с интерфейсом.

bat_file.bat

"ПУТЬ_К_ТЕКУЩЕЙ_ВЕРСИИ_1С\bin\1cv8.exe" ENTERPRISE /F "ПУТЬ_К_БАЗЕ "/N "ИМЯ_ПОЛЬЗОВАТЕЛЯ_1С" /P "ПАРОЛЬ" /DisableStartupMessages /Execute"ПУТЬ_К_ОБРАБОТКЕ\САМА_ОБРАБОТКА.epf" /C"ПАРАМЕТР1, ПАРАМЕТР2"

bat_serv.bat

"ПУТЬ_К_ТЕКУЩЕЙ_ВЕРСИИ_1С\bin\1cv8.exe" ENTERPRISE /S "ИМЯ_СЕРВЕРА\ИМЯ_БАЗЫ "/N "ИМЯ_ПОЛЬЗОВАТЕЛЯ_1С" /P "ПАРОЛЬ" /DisableStartupMessages /Execute"ПУТЬ_К_ОБРАБОТКЕ\САМА_ОБРАБОТКА.epf" /C"ПАРАМЕТР1, ПАРАМЕТР2"

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

scr_file.vbs

Set t = CreateObject("V83.Application")
t.Connect("File=""ПУТЬ_К_БАЗЕ_1С"";Usr=""ИМЯ_ПОЛЬЗОВАТЕЛЯ"";pwd=""ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ""")
r = t.ExternalDataProcessors.Create("ПУТЬ_К_ОБРАБОТКЕ\САМА_ОБРАБОТКА.epf", FALSE).ThisObject.Example("""""""ПАРАМЕТР1, ПАРАМЕТР2""""""")
If r = 1 Then
    MsgBox("Ok")
End If
t.Exit(False)
set t = Nothing

scr_serv.vbs

Set t = CreateObject("V83.Application")
t.Connect("Srvr=ИМЯ_СЕРВЕРА;Ref=ИМЯ_БАЗЫ;Usr=""ИМЯ_ПОЛЬЗОВАТЕЛЯ"";pwd=""ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ""")
r = t.ExternalDataProcessors.Create("ПУТЬ_К_ОБРАБОТКЕ\САМА_ОБРАБОТКА.epf", FALSE).ThisObject.Example("""""""ПАРАМЕТР1, ПАРАМЕТР2""""""")
If r = 1 Then
    MsgBox("Ok")
End If
t.Exit(False)
set t = Nothing

 

Лично по своему опыту, мне понравился вариант с vbs — скриптами. Поскольку "V83.Application" по моим субъективным ощущениям работает быстрее, однако, я столкнулся с тем, что часть методов оказалась недоступной, поскольку в типовой УТ на модулях которые были задействованы при записи не стояло галочки "внешнее соединение", потому при записи документов, у меня возникали ошибки, связанные с необнаружением процедур. Потому для себя я решил, для аналитики и чтения он подходит прекрасно, а для записи, все-таки bat-файлы с полноценным запуском. Если тут я не прав, прошу меня поправить.

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

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

На следующем этапе встаем на тропу админов. 

Требуется добавить задание в Task Scheduler Windows.

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

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

1С все таки, хочешь быстро, устанавливай монопольный режим))

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

На следующем шаге выбираем, что делать, так в нашем случае это будет запуск программы, и когда мы через "Обзор" прикрепим подготовленный bat — файл, планировщик самостоятельно растянет программу и аргументы в нужные поля.

Все остальные реквизиты я оставил по умолчанию.

Нажимаем ОК, наблюдаем как задача добавилась в список и начала исполняться.

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

 

has been added to your cart:
Оформление заказа