Как запустить обработку по расписанию в 1С:Управление торговлей 10.3

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Автоматизация рутинных действий — одна из ключевых задач разработчика и администратора 1С. Довольно часто возникает необходимость настроить регулярное выполнение определенной обработки (например, периодическую выгрузку каталога товаров на сайт, обмен данными или загрузку прайс-листов) в клиент-серверной базе без участия пользователя. Рассмотрим подробнее, какими способами можно реализовать запуск обработки по заданному расписанию в конфигурации «1С:Управление торговлей 10.3» и на платформе 1С:Предприятие 8.

Способ 1. Создание регламентного задания в Конфигураторе

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

  1. Создание или выбор общего модуля: фоновые и регламентные задания могут вызывать только серверные процедуры из общих модулей. Создадим общий модуль (например, РегламентныеПроцедуры) и убедимся, что у него установлены флажки Сервер, Вызов сервера, а флажки клиентского интерфейса сняты.
  2. Написание процедуры вызова обработки: внутри общего модуля разместим экспортную процедуру, которая будет инициализировать обработку и передавать в нее нужные параметры:
    
    Процедура ВыполнитьВыгрузкуТоваровНаСайт() Экспорт
        
        // Если обработка встроена в конфигурацию:
        ОбработкаОбъект = Обработки.ВыгрузкаТоваровНаСайт.Создать();
        ОбработкаОбъект.Параметр1 = "ЗначениеПараметра";
        ОбработкаОбъект.ВыполнитьЭкспорт();
        
        // Если требуется запустить внешнюю обработку (.epf):
        // ДвоичныеДанные = Новый ДвоичныеДанные("C:\Обработки\ВыгрузкаНаСайт.epf");
        // ИмяВременногоФайла = ВнешниеОбработки.Подключить(ДвоичныеДанные, , Ложь);
        // ОбработкаОбъект = ВнешниеОбработки.Создать(ИмяВременногоФайла);
        // ОбработкаОбъект.ВыполнитьЭкспорт();
    
    КонецПроцедуры
    
  3. Добавление регламентного задания: в дереве метаданных в ветке Общие -> Регламентные задания добавим новый элемент. В его свойствах укажем:
    • Имя метода: выберем созданную процедуру РегламентныеПроцедуры.ВыполнитьВыгрузкуТоваровНаСайт.
    • Использование: установим флажок для включения задания.
    • Расписание: откроем диалог расписания и настроим нужную периодичность (например, каждые 30 минут или ежедневно в определенное время).

Способ 2. Программное создание и управление регламентными заданиями

Платформа 1С предоставляет объектную модель для программного управления расписанием и заданиями через объект МенеджерРегламентныхЗаданий. Это позволяет динамически создавать задание на основе существующего метаданного и настраивать его свойства из кода. Проанализируем пример создания регламентного задания:


// Создание нового регламентного задания на основе метаданного
ИмяМетаданных = Метаданные.РегламентныеЗадания.ВыгрузкаНаСайт;
НовоеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(ИмяМетаданных);

НовоеЗадание.Наименование = "Автоматическая выгрузка на сайт";
НовоеЗадание.Использование = Истина;

// Формирование расписания
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ПериодичностьДней = 1;
Расписание.ВремяНачала = '00010101080000'; // 08:00
Расписание.ВремяКонца  = '00010101200000'; // 20:00
Расписание.ПериодПовтораВДне = 3600;       // Каждые 60 минут

НовоеЗадание.Расписание = Расписание;

// Запись задания в базу данных
НовоеЗадание.Записать();

Для администрирования, ручного запуска и изменения параметров созданных заданий в режиме «1С:Предприятие» рекомендуется использовать внешнюю обработку «Консоль регламентных и фоновых заданий» (доступна на диске ИТС и в составе БСП).

Способ 3. Использование штатной подсистемы обмена с сайтом

Если задача заключается исключительно в штатной выгрузке каталога и цен на веб-сайт, в УТ 10.3 предусмотрен встроенный механизм:

  1. Перейдем в меню Сервис -> Обмен данными с WEB-сайтом -> Настройка обмена с WEB-сайтом.
  2. Создадим новый узел обмена, заполним адрес сайта, параметры авторизации и правила выгрузки номенклатуры.
  3. На вкладке Автоматический обмен включим флаг выполнения по расписанию и зададим интервал запуска. Система автоматически свяжет настройку с регламентным заданием платформы.

Способ 4. Запуск через Планировщик заданий Windows (без изменения конфигурации)

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

  1. Формирование пакетного файла (BAT/CMD):
    
    "C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /S "ИмяСервера\ИмяБазы" /N "Робот" /P "Пароль" /Execute "C:\Обработки\Выгрузка.epf" /C "РежимВыгрузки=Полный" /DisableStartupMessages
    
  2. Чтение параметров внутри внешней обработки: в модуле обработки (в процедуре ПриОткрытии или в модуле объекта) прочитаем переданную строку через глобальное свойство ПараметрЗапуска:
    
    Процедура ПриОткрытии()
        
        Если Не ПустаяСтрока(ПараметрЗапуска) Тогда
            // Обрабатываем параметры
            Если Найти(ПараметрЗапуска, "РежимВыгрузки=Полный") > 0 Тогда
                ВыполнитьПолнуюВыгрузку();
            Иначе
                ВыполнитьЧастичнуюВыгрузку();
            КонецЕсли;
            
            // Обязательно закрываем сеанс после завершения работы
            ЗавершитьРаботуСистемы(Ложь);
        КонецЕсли;
        
    КонецПроцедуры
    
  3. Настройка задачи в Windows: создадим простую задачу в Планировщике задач Windows (Task Scheduler), указав путь к созданному .bat файлу и настроив требуемое расписание запуска.

Особенности работы в клиент-серверном режиме (SQL)

При настройке фоновых и регламентных заданий на сервере важно учитывать ряд технических нюансов:

← На главную