Как загрузить и настроить расширение в сервисе 1С:Фреш

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

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

Особенности расширений в облачной инфраструктуре

Прежде всего, проанализируем ситуацию: сервис «1С:Фреш» — это мультиарендная (multi-tenant) среда. Это означает, что на одном сервере и в одной физической базе данных могут находиться сотни и тысячи разных организаций (абонентов). Любая ошибка в коде или попытка получить доступ к файловой системе сервера может поставить под угрозу стабильность и безопасность данных всех пользователей. Именно поэтому процесс загрузки расширений жестко регламентирован.

Рассмотрим основные этапы, которые нам предстоит пройти:

  1. Техническая подготовка кода расширения в Конфигураторе.
  2. Настройка профилей безопасности и запросов разрешений.
  3. Загрузка файла в Менеджер сервиса.
  4. Прохождение обязательного аудита специалистами фирмы 1С.
  5. Установка расширения в конкретное приложение (базу).

Шаг 1. Подготовка расширения в Конфигураторе

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

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

Во-вторых, обратим внимание на свойство Использовать основные роли для всех пользователей. В облаке рекомендуется устанавливать это значение в Истина, чтобы избежать проблем с правами доступа при добавлении новых объектов метаданных.

Шаг 2. Технические ограничения кода

Проанализируем программный код. В расширении для 1С:Фреш категорически запрещены следующие действия:

Посмотрим на пример того, как НЕЛЬЗЯ делать на стороне сервера в облаке:


// Данный код вызовет ошибку при аудите
Текст = Новый ЗаписьТекста("C:\temp\log.txt");
Текст.ЗаписатьСтроку("Данные выгружены");
Текст.Закрыть();

Вместо этого мы должны использовать временные хранилища и передавать файлы на сторону клиента, где пользователь сможет сохранить их самостоятельно через стандартные диалоги 1С.

Шаг 3. Запросы разрешений (Permissions)

Если вашему расширению все же требуется выполнить действие, выходящее за рамки стандартного безопасного режима (например, обратиться к API стороннего сервиса), нам нужно подготовить список запросов разрешений. Рассмотрим, как это работает.

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

Типичный объект для работы с внешними ресурсами, который требует разрешений — это HTTPСоединение. Без соответствующей записи в профиле безопасности попытка соединения завершится ошибкой доступа.

Шаг 4. Загрузка через Менеджер сервиса или Партнера

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

Однако здесь есть нюанс, упомянутый в обсуждении: кнопка Добавить может отсутствовать. Рассмотрим причины этой ситуации:

  1. Ограничения тарифа: Некоторые тарифные планы не подразумевают использование собственных расширений.
  2. Политика обслуживающего партнера: Если ваша база находится на поддержке у франчайзи, они могли ограничить возможность самостоятельной загрузки кода для обеспечения стабильности.

В большинстве случаев правильный алгоритм действий — отправить подготовленный файл вашему партнеру (франчайзи). Сотрудник партнера загрузит расширение в специализированный личный кабинет, где оно встанет в очередь на аудит.

Шаг 5. Прохождение аудита

Разберем подробнее, что происходит после загрузки. Расширение не появляется в базе мгновенно. Оно попадает на проверку к специалистам фирмы «1С». Этот процесс называется Аудит.

Срок аудита обычно составляет от нескольких часов до 2-3 рабочих дней. Эксперты проверяют:

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

Шаг 6. Обновления и стабильность

Важно помнить, что конфигурации в сервисе «1С:Фреш» обновляются очень часто и централизованно. Посмотрим на риски: если ваше расширение использует заимствованные объекты, структура которых изменилась в новом релизе «Бухгалтерии предприятия» или «УНФ», расширение может перестать работать или даже заблокировать вход в базу.

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

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

Резюме для разработчика

Подведем итог. Чтобы успешно внедрить расширение во Фреш, мы должны отказаться от привычек «локальной» разработки: забыть про прямой доступ к диску, всегда проверять права пользователя и быть готовыми к тому, что наш код будет внимательно изучен сторонним экспертом. Работа через Менеджер сервиса и плотное взаимодействие с обслуживающим партнером — залог успешной публикации ваших решений в облаке.

← На главную