Можно ли добавлять новые документы и справочники в расширения для 1С:Фреш?

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

При разработке для облачного сервиса 1С:Фреш (1С:Предприятие через интернет) у многих программистов возникает резонное опасение: как поведет себя система, если добавить в расширение новые документы или справочники? Поскольку во «Фреше» используется мультиарендная архитектура (одна база данных на тысячи абонентов), кажется, что структурные изменения могут затронуть всех пользователей сразу или вовсе нарушить работу системы. Рассмотрим подробно, как реализован этот механизм и какие правила необходимо соблюдать, чтобы успешно пройти аудит.

Техническая реализация разделения данных

Разберем основной страх: «не завалю ли я общую базу новыми таблицами?». Начиная с версии платформы 8.3.11, в 1С реализован механизм, позволяющий вносить структурные изменения через расширения даже в разделенных базах данных. Проанализируем, как это работает «под капотом»:

  1. Изоляция на уровне SQL: Когда вы добавляете новый документ в расширение и подключаете его к конкретной области данных (абоненту), платформа не меняет основную конфигурацию. Вместо этого в СУБД создаются дополнительные таблицы, физически отделенные от основных данных.
  2. Механизм разделения: Платформа автоматически учитывает параметр разделения данных. Это означает, что данные вашего нового документа будут видны только в той области данных, где подключено расширение. Другие арендаторы (клиенты сервиса) даже не увидят эти метаданные в своем интерфейсе и не будут иметь доступа к их таблицам.
  3. Динамическое обновление: Важным преимуществом является то, что такие изменения применяются «на лету». Платформе не требуется монопольный захват всей базы данных сервиса, обновление происходит только для конкретной области.

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

Прежде чем приступать к разработке, выясним важный момент: режим совместимости основной конфигурации в облаке. Как правило, в 1С:Фреш используются самые свежие релизы типовых решений (например, БП 3.0 или УНФ), которые имеют режим совместимости не ниже 8.3.14. Рассмотрим, почему это критично:

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

Требования к коду и безопасности (Аудит 1С)

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

Использование безопасного режима: Все расширения во «Фреш» работают исключительно в безопасном режиме. Это накладывает серьезные ограничения на использование некоторых функций. Проанализируем типичные ошибки:

Строгая типизация: Посмотрим на важный нюанс при создании реквизитов. В расширениях для облака запрещено использовать типы данных ЛюбаяСсылка, ЛюбойСправочник и аналогичные «широкие» типы. Тип должен быть строго определен. Это связано с тем, что механизм разделения данных должен однозначно понимать, к каким таблицам обращаться при запросе.

Флаг ОбменДанными.Загрузка: Особое внимание уделим программной записи объектов. Как отмечают эксперты, запрещается запись с флагом ОбменДанными.Загрузка = Истина. Рассмотрим почему: это может позволить обойти бизнес-логику и проверки, что критично для стабильности облачного сервиса. Пример правильной записи:


НовыйОбъект = Справочники.МойНовыйСправочник.СоздатьЭлемент();
НовыйОбъект.Наименование = "Тестовая запись";
// НовыйОбъект.ОбменДанными.Загрузка = Истина; // ТАК ДЕЛАТЬ НЕЛЬЗЯ
НовыйОбъект.Записать();

Интеграция с типовыми механизмами (БСП)

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

Для того чтобы ваш новый документ корректно работал в интерфейсе «Фреша», его нужно «прописать» в соответствующих обработчиках БСП. Однако помните, что изменять типовые обработчики нужно крайне аккуратно, используя аннотации &После или &Вместо, чтобы не нарушить логику обновления основной конфигурации.

Риски потери данных и поддержка

Выясним причину, по которой некоторые разработчики советуют «не хранить важные данные в расширениях». Основной риск заключается в административных действиях:

  1. Если расширение будет удалено из области данных администратором, все данные в добавленных таблицах будут потеряны.
  2. При возникновении критических ошибок платформы (например, при тестировании и исправлении базы данных), данные расширений могут пострадать, если расширение в этот момент было отключено.

Совет: Всегда делайте резервные копии области данных (выгрузка в .dt) перед значимыми изменениями расширений.

Порядок публикации во Фреш

Рассмотрим процедуру вывода вашего расширения «в свет». Существует два пути:

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

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

← На главную