Как в облачной базе 1С настроить регламентное задание для внешней обработки?

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

При работе в облачных сервисах, таких как 1С:Фреш, разработчики часто сталкиваются с ограничением: конфигурацию нельзя менять (особенно если это «Базовая» версия), а бизнес-процессы требуют автоматизации, например, регулярного обмена данными с интернет-магазином на Bitrix. В этой ситуации стандартным решением является использование механизма Библиотеки стандартных подсистем (БСП) для запуска внешних обработок по расписанию. Рассмотрим подробно, как реализовать этот функционал.

Механизм дополнительных отчетов и обработок

Для начала разберем, как 1С понимает, что внешнюю обработку нужно запускать автоматически. В современных конфигурациях (БП 3.0, УТ 11, ERP и др.) встроена подсистема «Дополнительные отчеты и обработки». Она позволяет не просто открывать файл .epf через меню, а регистрировать его в информационной базе как полноценный инструмент с собственными командами и расписанием.

Для того чтобы ваша обработка «подружилась» с БСП, в её модуле объекта обязательно должна присутствовать функция СведенияОВнешнейОбработке. Проанализируем структуру этой функции для нашей задачи.

Шаг 1. Описание сведений о внешней обработке

Выясним, какие параметры необходимо указать в сведениях, чтобы система разрешила создание регламентного задания. Нам потребуется создать команду с типом ВызовСерверногоМетода. Именно этот тип команды позволяет БСП обращаться к коду обработки в фоновом режиме без участия пользователя.

Посмотрим на пример реализации функции в модуле объекта обработки:


Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Наименование = "Обмен с Битрикс (автоматический)";
    ПараметрыРегистрации.Версия = "1.1";
    ПараметрыРегистрации.БезопасныйРежим = Истина;
    
    // Добавление команды для запуска по расписанию
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = "Запустить обмен с Битрикс";
    НоваяКоманда.Идентификатор = "ВыполнитьОбмен";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    НоваяКоманда.ПоказыватьОповещение = Ложь;
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

Шаг 2. Реализация экспортного метода выполнения

Когда регламентное задание срабатывает, сервер 1С ищет в модуле объекта обработки процедуру с именем ВыполнитьКоманду. Разберем её структуру. Она должна иметь два параметра: ИдентификаторКоманды (строка, которую мы указали в сведениях) и ПараметрыВыполненияКоманды (структура с контекстом выполнения).


Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
    
    Если ИдентификаторКоманды = "ВыполнитьОбмен" Тогда
        ВыполнитьСинхронизациюСБитрикс();
    КонецЕсли;
    
КонецПроцедуры

Процедура ВыполнитьСинхронизациюСБитрикс()
    // Здесь размещается основной программный код обмена
    // Обратите внимание: код выполняется на сервере
КонецПроцедуры

Шаг 3. Нюансы работы в облаке (1С:Фреш)

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

  1. Прохождение аудита: Любая внешняя обработка во Фреше проходит ручную проверку специалистами 1С. Ваш код должен быть «чистым»: нельзя использовать прямые обращения к файловой системе (C:\temp), запрещены методы Выполнить() и использование небезопасных внешних компонент.
  2. Разрешения (Security Profiles): Поскольку обмен с Битриксом требует обращения к внешнему URL через интернет, вам нужно явно запросить это право в СведенияОВнешнейОбработке. Для этого используется свойство Разрешения. В нем указывается протокол (http/https) и адрес сайта. Без этого 1С заблокирует попытку соединения.
  3. Безопасный режим: В облаке обработки ВСЕГДА запускаются в безопасном режиме. Это означает, что вы ограничены в использовании некоторых функций платформы. Весь обмен должен строиться на использовании разрешенных объектов, таких как HTTPСоединение.
  4. Хранение настроек: Помните, что регламентное задание выполняется под служебным пользователем. Настройки (адрес сайта, API-ключ) лучше хранить не в коде (чтобы пройти аудит), а в системном хранилище настроек или в специальных регистрах, если конфигурация позволяет их использовать.

Шаг 4. Настройка расписания в интерфейсе

После того как вы подготовили файл .epf и загрузили его в сервис, выполним следующие шаги в самой программе:

  1. Перейдем в раздел «Администрирование» — «Печатные формы, отчеты и обработки».
  2. Откроем ссылку «Дополнительные отчеты и обработки».
  3. Нажмем «Добавить из файла» и выберем нашу подготовленную обработку.
  4. В карточке обработки появится список команд. Найдем нашу команду «Запустить обмен с Битрикс».
  5. В колонке «Расписание» (которая появляется только для команд с вызовом серверного метода) нажмем на гиперссылку «Не задано».
  6. В появившемся окне настроим периодичность: например, «каждый день, каждые 900 секунд» (15 минут).

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

Особенности для Базовых версий

Многие пользователи считают, что в Базовых версиях расширения и внешние обработки запрещены. Однако в сервисе 1С:Фреш на определенных тарифах (например, «ПРОФ» или специальные тарифы для малого бизнеса) разрешено подключать дополнительные отчеты и обработки даже к приложениям, созданным на базе «базовых» конфигураций. Это открывает возможности для автоматизации без перехода на дорогостоящие версии программы. Главное — строгое соблюдение требований безопасности и стандартов разработки 1С.

Проанализировав ситуацию, мы видим, что задача запуска обмена по расписанию вполне решаема. Главное — правильно оформить техническую часть обработки и быть готовым к процедуре аудита безопасности в облаке.

← На главную