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

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← К списку

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

1. Авторизация разработчика и получение лицензии для разработки

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

Авторизация в сервисе 1С:Фреш:

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

Использование "Лицензии разработчика" (Комьюнити-лицензии):

Для локальной разработки, даже при отсутствии коммерческой лицензии на основную поставку, мы можем воспользоваться "Лицензией разработчика", также известной как "Комьюнити-лицензия". Это полноценная платформа 1С:Предприятие, которая дает нам право разрабатывать, изучать расширения и работать с веб-сервисами. Важно понимать, что эта лицензия не предназначена для ведения реального учета или использования в коммерческих целях, но она идеально подходит для наших целей — создания и отладки расширений.

В отличие от учебной версии, "Лицензия разработчика" не имеет ограничений по объему данных, поддерживает работу с COM-соединениями и расширениями, что критически важно для полноценной разработки.

2. Получение конфигурации для разработки

Возникает вопрос: как получить конфигурацию для разработки, если у нас нет локальной базы с активной подпиской ИТС? Давайте выясним, какие у нас есть варианты.

Использование файла fresh.cfe:

Расширение fresh.cfe является ключевым для работы в сервисе 1С:Фреш в разделенном режиме. Мы можем получить его из прикладной информационной базы, в которую встроена "Библиотека технологии сервиса" (БТС) версии 2.0 или новее. Если в конфигурации присутствует ветка Общие — Общие макеты — fresh, это указывает на наличие БТС 2.0+, и мы можем экспортировать файл fresh.cfe оттуда. Иногда этот файл также содержится в дистрибутиве самого прикладного решения.

Локальная среда с "Лицензией разработчика":

Имея "Лицензию разработчика", мы можем создать локальную среду для разработки. Это косвенно дает нам возможность получить доступ к базовой конфигурации, необходимой для создания расширения. Мы можем выгрузить копию информационной базы из 1С:Фреш (если у нас есть к ней доступ как к абоненту) и развернуть ее локально, используя "Лицензию разработчика". Это позволит нам работать с актуальной версией конфигурации и разрабатывать расширение в привычной среде Конфигуратора.

Если прямого доступа к выгрузке копии нет, но есть возможность получить дистрибутив нужной версии конфигурации (например, через партнера 1С), мы можем установить ее локально с помощью "Лицензии разработчика".

3. Обязательный аудит расширений для 1С:Фреш

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

Цель аудита:

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

Процесс и сроки:

Аудит обычно запускается автоматически при загрузке расширения в сервис. Как правило, он занимает 2-3 рабочих дня, но сроки могут варьироваться в зависимости от сложности нашего кода. В случае обнаружения замечаний, нам будут направлены комментарии, которые мы должны будем устранить, а затем повторно отправить расширение на проверку. Будьте готовы к итерациям!

Предварительная самостоятельная проверка:

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

4. Требования к расширениям для 1С:Фреш

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

  1. Формат файла: Расширение должно быть загружено в виде файла с расширением .cfe.
  2. Открытый код: Мы не должны использовать средства, затрудняющие анализ исходных текстов модулей, такие как обфускация или установка пароля на модуль. Весь код должен быть прозрачным для аудита.
  3. Безопасный режим: Наше расширение должно быть полностью работоспособно в безопасном режиме. Если нам требуются небезопасные операции, на каждую из них необходимо явно запрашивать разрешение, и мы должны корректно обрабатывать ситуации, когда выполнение таких операций невозможно.
  4. Работа с файлами и внешними ресурсами: Прямые операции с файловой системой на сервере или COM-объектами запрещены. Файлы, выбранные пользователем на клиенте, должны передаваться на сервер в виде двоичных данных. Передача данных за пределы сервиса из клиентского кода требует запроса разрешения у пользователя.
  5. Производительность и стабильность: Расширение не должно приводить к чрезмерной нагрузке на сервис и нарушать корректную работу приложения. Мы должны оптимизировать наш код и запросы.
  6. Уникальность имен: Имя расширения должно быть уникальным, так как все расширения разработчиков находятся в едином сервисе. Все добавляемые реквизиты, формы и переменные должны иметь уникальный префикс разработчика, чтобы избежать конфликтов.
  7. Регламентные задания: Для регламентных заданий в 1С:Фреш существуют специфические подходы к реализации. Мы должны изучить документацию по работе с регламентными заданиями в облаке.
  8. Внешние отчеты и обработки: Запрещено открывать внешние обработки/отчеты из расширения. Вся их функциональность должна быть интегрирована непосредственно в расширение.
  9. RLS (Row-Level Security): При использовании механизма RLS нам необходимо добавлять ключевое слово РАЗРЕШЕННЫЕ в каждый запрос, где это применимо.

    Посмотрим на пример:

    
    ВЫБРАТЬ
        Справочник.Контрагенты.Ссылка
    ИЗ
        Справочник.Контрагенты КАК Контрагенты
    ГДЕ
        Контрагенты.ПометкаУдаления = ЛОЖЬ
        РАЗРЕШЕННЫЕ
    

    Это гарантирует корректную работу RLS в облачной среде.

  10. Асинхронные вызовы: В облачных сервисах, особенно при работе в веб-клиенте, мы должны использовать асинхронный вариант вызова методов для повышения отзывчивости интерфейса и предотвращения блокировок.

5. Развертывание и использование расширений

После успешного прохождения аудита наше расширение получает статус "Опубликовано в сервисе". Теперь мы можем сделать его доступным для пользователей.

Публикация и настройка доступа:

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

Добавление расширения абонентами:

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

Монетизация и распространение:

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

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

← К списку