Разработка расширений для облачного сервиса 1С:Фреш (1cfresh.com) существенно отличается от создания расширений для локальных информационных баз. Главная особенность заключается в том, что каждое расширение проходит обязательный аудит со стороны специалистов фирмы 1С. В этой статье мы подробно разберем, на что стоит обратить внимание разработчику, как работать с новыми реквизитами и как избежать типичных ошибок, из-за которых расширение может быть отклонено.
Долгое время в сообществе велись споры о том, можно ли добавлять свои реквизиты в расширения для Фреша. Разберем текущую ситуацию. Техническая возможность добавления объектов и реквизитов существует, но она накладывает на разработчика серьезные обязательства по обеспечению целостности данных.
Проанализируем основные требования к изменению структуры данных:
МиграцияПриложений.Безопасный режим в 1С:Фреш — это базовое условие эксплуатации любого расширения. Рассмотрим, какие ограничения он накладывает и как их обходить легальными методами.
По умолчанию в безопасном режиме запрещены:
Если ваша задача требует, например, интеграции с внешним API (сервис доставки, банк, телефония), мы должны использовать профили безопасности. Процесс выглядит следующим образом: разработчик в коде расширения через механизмы Библиотеки стандартных подсистем (БСП) запрашивает разрешение на доступ к конкретному ресурсу. При установке расширения администратор сервиса или автоматическая система аудита проверит этот запрос и, если он обоснован, разрешит доступ.
Посмотрим, как правильно вызывать код в привилегированном режиме. Его использование крайне ограничено. Если вам действительно нужно выполнить действие, требующее повышенных прав, это должно быть четко аргументировано в пояснительной записке к расширению, иначе аудит будет провален.
Процесс прохождения аудита можно разделить на два ключевых этапа. Понимание этой логики поможет сэкономить недели времени.
Сразу после того, как вы загрузили файл .cfe в менеджер сервиса, запускается автоматический робот. Он проверяет:
наш_ или мод_). Это исключает конфликты имен при обновлении основной конфигурации поставщиком.Если автоматика пройдена, расширение попадает к живому аудитору. Здесь проверяется качество кода и производительность. Разберем наиболее частые причины отказов:
Для Каждого — верный способ получить отказ.Для того чтобы ваше расширение выглядело профессионально и не вызывало лишних вопросов у службы поддержки, придерживайтесь следующих правил:
Версионность: При каждом исправлении ошибки и повторной загрузке обязательно увеличивайте номер версии в свойствах расширения. Система не позволит загрузить файл с тем же номером версии, если в нем были изменения.
Работа в веб-клиенте: Ваше решение должно быть полностью работоспособным в браузере. Избегайте использования функционала, который требует "Расширения работы с файлами", если это не является критически необходимым для бизнес-логики.
Отказоустойчивость: Рассмотрим ситуацию, когда расширение временно отключено. Основная конфигурация не должна выдавать критических ошибок (Runtime errors). Используйте безопасные методы обращения к добавленным метаданным.
Пример структуры кода для проверки наличия реквизита перед обращением:
// Проверим наличие добавленного реквизита программно, чтобы избежать ошибки
МетаданныеДокумента = Метаданные.Документы.РеализацияТоваровУслуг;
Если МетаданныеДокумента.Реквизиты.Найти("пр_ДополнительныйНомер") <> Неопределено Тогда
// Работаем с реквизитом расширения
ТекОбъект.пр_ДополнительныйНомер = "123";
КонецЕсли;
Подводя итог, можно сказать, что разработка для 1С:Фреш — это прежде всего дисциплина и следование стандартам 1С. Пройдя полный цикл разработки и аудита хотя бы один раз, вы поймете логику проверяющих, и все последующие расширения будут проходить проверку гораздо быстрее.