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

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

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

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

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

Проанализируем основные требования к изменению структуры данных:

  1. Поддержка миграции данных: Если ваше расширение добавляет новые реквизиты к заимствованным объектам или создает совершенно новые справочники/документы, эти данные должны корректно перемещаться вместе с базой. В облаке база может мигрировать между разными узлами (нодами). Для этого все новые объекты обязаны быть включены в состав плана обмена МиграцияПриложений.
  2. Настройка плана обмена: Мало просто включить объект в план обмена. Для каждого добавленного реквизита необходимо установить специальный флаг "Изменять значение при подключении". Это гарантирует, что при обновлении расширения или перемещении данных система корректно обработает структуру.
  3. Риск удаления данных: Выясним важный момент — если расширение будет удалено из информационной базы, все данные, накопленные в его реквизитах, будут безвозвратно утеряны. Поэтому при проектировании важно закладывать механизмы проверки наличия данных, чтобы конфигурация не "ломалась" при отключении расширения.

Работа в безопасном режиме и профили безопасности

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

По умолчанию в безопасном режиме запрещены:

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

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

Процедура аудита: от загрузки до подключения

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

Этап 1: Автоматическая проверка

Сразу после того, как вы загрузили файл .cfe в менеджер сервиса, запускается автоматический робот. Он проверяет:

Этап 2: Ручной аудит

Если автоматика пройдена, расширение попадает к живому аудитору. Здесь проверяется качество кода и производительность. Разберем наиболее частые причины отказов:

Методические рекомендации по оформлению

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

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

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

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

Пример структуры кода для проверки наличия реквизита перед обращением:


// Проверим наличие добавленного реквизита программно, чтобы избежать ошибки
МетаданныеДокумента = Метаданные.Документы.РеализацияТоваровУслуг;
Если МетаданныеДокумента.Реквизиты.Найти("пр_ДополнительныйНомер") <> Неопределено Тогда
    // Работаем с реквизитом расширения
    ТекОбъект.пр_ДополнительныйНомер = "123";
КонецЕсли;

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

← На главную