Вопрос расширения функционала типовых конфигураций в облачных сервисах, таких как 1C:Fresh, является одним из самых актуальных для разработчиков. Особенности работы в "облаке" накладывают определенные ограничения на изменение структуры данных. Разберем подробно, как реализована возможность добавления реквизитов и колонок табличных частей через механизмы расширений, основываясь на опыте специалистов и официальных требованиях сервиса.
Для того чтобы понять, можем ли мы добавить новый реквизит в документ через расширение, проанализируем техническую базу. Ключевым условием является не только версия установленной платформы 1С:Предприятие, но и установленный режим совместимости в самой основной конфигурации.
Рассмотрим основные технические требования:
8.3.12. Однако для стабильной работы и поддержки всех современных механизмов в 1C:Fresh рекомендуется использовать платформу версии 8.3.13 и выше.8.3.23, но конфигурация (например, 1С:Бухгалтерия или 1С:Управление торговлей) работает в режиме совместимости с версией 8.3.10, добавить реквизиты через расширение не получится. Платформа просто заблокирует эту возможность.Выясним причину этого ограничения. Режим совместимости диктует платформе, какие механизмы управления данными использовать. Новые методы расширения таблиц баз данных (хранение данных расширений в отдельных таблицах) не поддерживаются старыми режимами совместимости. Например, в конфигурации БП 3.0 последних версий режим совместимости постепенно отключается или повышается, что открывает дорогу к кастомизации метаданных.
Разберем по шагам процесс добавления новой колонки в существующую табличную часть документа для сервиса 1C:Fresh. Представим, что нам необходимо добавить поле прф_ДополнительнаяИнформация в табличную часть Товары документа РеализацияТоваровУслуг.
Проанализируем алгоритм действий:
Использовать основные роли для всех пользователей включено. Это необходимо для корректного доступа к данным в облаке.Посмотрим на пример настройки свойств реквизита в расширении. Важно понимать, что имя реквизита в 1C:Fresh обязано содержать уникальный префикс. Рассмотрим, почему это необходимо:
// Пример правильного наименования реквизита в расширении для облака:
// Имя: прф_СрокГодности
// Префикс "прф_" (от сокращения названия вашей компании или проекта)
Префиксация защищает ваше расширение от конфликтов. Если завтра фирма "1С" выпустит обновление конфигурации и добавит в этот же документ реквизит с таким же именем (но без вашего префикса), ваша база не "сломается", и расширение продолжит работу корректно.
Многие пользователи и разработчики опасаются, что добавление реквизитов невозможно из-за единой SQL-базы, в которой хранятся данные тысяч клиентов. Разберем, как 1С решает эту проблему. Платформа не меняет структуру основных таблиц типовой конфигурации. Вместо этого:
Важно: Любое расширение, которое меняет структуру данных в 1C:Fresh, должно пройти обязательный аудит специалистами 1С. Основные критерии проверки:
Проанализируем ситуацию с производительностью. Хотя добавление реквизитов через расширения официально разрешено и работает, следует придерживаться принципа разумности. Каждое соединение с таблицей расширения в сложных запросах создает дополнительную нагрузку на сервер СУБД.
Рассмотрим важный момент, касающийся удаления данных. В отличие от локальной базы, где вы можете манипулировать бэкапами как угодно, в 1C:Fresh удаление расширения, содержащего данные, приведет к безвозвратной потере всей информации, накопленной в этих новых реквизитах. Система выдаст предупреждение, но восстановить данные из "облачного" архива отдельно для одного расширения будет крайне сложно или невозможно.
Посмотрим на финальный результат нашего исследования. На современных версиях 1С:Бухгалтерия 3.0 в сервисе 1C:Fresh:
Если ваше расширение не проходит проверку, первым делом проверьте настройки режима совместимости и убедитесь, что вы не пытаетесь использовать функционал, который платформа блокирует для старых версий конфигураций. В случае с типовыми решениями, такими как БП 3.0, проблем возникнуть не должно, так как разработчики 1С планомерно снимают ограничения режима совместимости для поддержки новых возможностей платформы.