Как настроить использование интернет-ресурсов и файлов во внешней обработке для 1С:Фреш

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

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

Разбор функции СведенияОВнешнейОбработке и декларирование разрешений

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

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


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

Обратим внимание на метод РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса. Он возвращает объект ОбъектXDTO, который система использует для формирования профиля безопасности. Если этот массив оставить пустым, любая попытка сетевого соединения в коде приведет к исключению «Работа с интернет-ресурсами запрещена».

Решение проблемы Несоответствие типов XDTO при подготовке манифеста

Часто программисты сталкиваются с ошибкой «Несоответствие типов XDTO» при использовании обработки «Подготовка дополнительных отчетов и обработок к публикации в модели сервиса». Проанализируем ситуацию: это происходит из-за конфликта версий пакетов XDTO ApplicationPermissions в вашей базе и в самой обработке подготовки.

Если ваша конфигурация (например, ЗУП 3.1 или ERP) использует более новую версию БСП, пакеты разрешений могут иметь версию 1.0.0.2, в то время как старая версия обработки подготовки ожидает 1.0.0.1. Рассмотрим пути решения:

  1. Обновление инструментария: Скачайте последнюю версию обработки подготовки манифеста непосредственно из раздела для разработчиков на сайте вашего экземпляра Фреш. Она должна соответствовать версии БСП вашей целевой конфигурации.
  2. Явное указание версии БСП: Как мы видели выше, добавление строки ПараметрыРегистрации.Вставить("ВерсияБСП", "..."); помогает механизмам платформы правильно интерпретировать типы XDTO.
  3. Программная корректировка пространства имен: В исключительных случаях можно принудительно указать пакет XDTO, если типовые методы БСП возвращают объект неверной версии. Однако это считается «костылем» и может не пройти аудит.

Особенности работы с файловой системой в облаке

Разберем типичную ошибку: попытку запросить разрешение на каталог вида C:\12. В облаке 1С:Фреш ваша обработка выполняется на сервере приложений под управлением операционной системы (часто Linux), где нет диска C:. Более того, доступ к произвольным папкам сервера пользователям запрещен из соображений безопасности.

Посмотрим, как правильно организовать работу с файлами:

Пример добавления разрешения на временные файлы:


РазрешениеФайлы = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(РазрешениеФайлы);

Требования к интернет-ресурсам для прохождения аудита

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

  1. FQDN адреса: Не используйте IP-адреса. Разрешение должно быть дано на доменное имя, например potok.digital. Использование IP-адресов считается небезопасным и блокируется аудиторами.
  2. Протоколы: Используйте защищенное соединение HTTPS. Если ваш ресурс поддерживает только HTTP, будьте готовы предоставить детальное обоснование, почему передача данных в открытом виде допустима.
  3. Обоснование: Поле Описание в методе создания разрешения должно содержать понятный текст, объясняющий, зачем нужен этот доступ (например, «Загрузка справочника БИК с сайта ЦБ»).

Нюансы использования расширений в модели сервиса

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

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

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

Рекомендации по написанию безопасного кода

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

Соблюдение этих правил и корректное заполнение структуры Разрешения в СведенияОВнешнейОбработке гарантирует успешную публикацию вашего решения в сервисе 1С:Фреш.

← На главную