При разработке расширений конфигурации для сервиса 1С:Фреш разработчики часто сталкиваются с жесткими требованиями безопасности. Одно из них гласит: любая передача данных за пределы сервиса должна подтверждаться пользователем, а расширение должно запрашивать соответствующие права доступа. Давайте разберем, как правильно реализовать этот механизм и пройти аудит.
Основная сложность заключается в том, что в облачных средах прямой интерактивный ПоказатьВопрос не всегда уместен, особенно в фоновых или регламентных процессах. Платформа 1С предоставляет мощный механизм управления безопасностью, который базируется на профилях безопасности и явном декларировании прав.
Для корректной работы расширения необходимо:
Вместо бесконечного вывода вопроса пользователю при каждом обращении к стороннему ресурсу, мы должны настроить систему так, чтобы разрешение было получено единожды. Это делается через механизмы работы с профилями безопасности и объектом Безопасность.
Рассмотрим пошагово, как подойти к этой задаче:
Шаг 1. Декларативное описание. При создании расширения важно указать используемые ресурсы в манифесте. Это позволяет платформе при установке расширения корректно сформировать запрос для администратора или пользователя.
Шаг 2. Проверка наличия прав программно. Перед выполнением сетевого запроса используйте методы платформы для проверки прав. Если права отсутствуют, необходимо вызвать механизм запроса разрешений.
// Пример проверки наличия права на использование внешнего ресурса
Если Не Безопасность.ПроверитьРазрешение(ИдентификаторРесурса) Тогда
// Инициация запроса на предоставление прав
Безопасность.ЗапроситьРазрешение(ИдентификаторРесурса);
КонецЕсли;
Многие разработчики совершают ошибку, пытаясь вызвать интерактивное подтверждение внутри регламентного задания. В 1С:Фреш это приведет к ошибке, так как регламентные задания работают в фоновом режиме без участия пользователя.
Правильный подход:
Для выполнения сложных операций расширение должно обладать правом АдминистрированиеРасширенийКонфигурации. Используйте глобальный менеджер РасширенияКонфигурации для анализа того, какие объекты изменены и какие расширения активны в текущем сеансе.
Если вы хотите узнать, принадлежит ли объект текущему расширению, используйте следующий подход:
// Проверка принадлежности объекта к расширению
Если ОбъектыМетаданных.Справочники.Номенклатура.ЕстьИзмененияРасширениямиКонфигурации() Тогда
// Выполняем логику, специфичную для расширенного объекта
КонецЕсли;
Чтобы успешно пройти аудит в 1С:Фреш, следуйте этим советам:
HTTPS, это часто означает, что не настроены профили безопасности для данного ресурса. Зарегистрируйте все домены и адреса в манифесте расширения.Подводя итог, можно сказать, что ключ к решению проблемы — это доверие платформе 1С. Передавая управление правами в руки системы Безопасность, вы делаете свое расширение прозрачным для администраторов сервиса и соответствующим требованиям безопасности 1С:Фреш.