Как открыть внешнюю обработку или отчет в облачном сервисе 1С:Фреш

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

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

Почему в 1С:Фреш заблокировано прямое открытие внешних файлов

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

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

Пошаговый алгоритм подключения обработки

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

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

Технические требования и безопасный режим

Разберем подробнее, что такое безопасный режим. Все внешние обработки во Фреше запускаются в контексте, который ограничивает доступ к «опасным» методам платформы. Например, вы не сможете просто так создать объект ЗаписьТекста по произвольному пути на сервере или использовать ЗапуститьПриложение.

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

В модуле объекта внешней обработки обязательно должна присутствовать функция СведенияОВнешнейОбработке(). В этой функции, помимо описания команды, мы должны сформировать массив разрешений. Рассмотрим на примере:


Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияВнешнейОбработки("2.2.2.1");
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Наименование = "Загрузка данных из внешнего источника";
    
    // Определение разрешений для работы в безопасном режиме
    Разрешения = Новый Массив;
    
    // Пример запроса разрешения на доступ к интернет-ресурсу
    Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса("HTTPS", "api.example.com", , "Взаимодействие с внешним API"));
    
    // Пример запроса разрешения на использование временного каталога
    Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина));
    
    ПараметрыРегистрации.Вставить("Разрешения", Разрешения);
    
    Возврат ПараметрыРегистрации;
КонецФункции

Методы запроса разрешений в 1С:Фреш

Проанализируем основные функции программного интерфейса РаботаВБезопасномРежиме, которые могут понадобиться при подготовке обработки для аудита:

Асинхронные вызовы: критическое требование

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

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

Автономное рабочее место как альтернатива

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

АРМ — это локальная копия базы (РИБ-узел), которая создается на вашем компьютере. Вы можете работать в ней локально, запускать любые внешние обработки без ограничений безопасного режима, а затем выполнять синхронизацию с облаком. В этом случае данные, измененные обработкой, попадут во Фреш в виде стандартных пакетов обмена, что безопасно для сервиса.

Основные причины отказа в аудите

Чтобы сэкономить время, проанализируем типичные ошибки разработчиков:

  1. Наличие в коде паролей: Никогда не хардкодьте пароли к почте или API внутри обработки. Используйте константы или настройки в интерфейсе.
  2. Попытки обхода разделителей: Любой код, пытающийся получить данные других областей, будет немедленно отклонен.
  3. Неоптимизированные запросы: Запросы в циклах или тяжелые операции, нагружающие сервер, не пройдут проверку производительности.
  4. Использование небезопасных функций: Прямое выполнение кода через Выполнить() или Вычислить() крайне нежелательно в контексте внешней обработки.

Таким образом, работа во Фреше требует от разработчика дисциплины и следования стандартам 1С:Совместимо. Несмотря на кажущуюся сложность, механизм аудита гарантирует стабильность системы и сохранность ваших данных.

← На главную