Разработка и Конфигурация · 9 мин
Как добавить владельца в расширение 1С
Как добавить роль владельца или объект-владелец в расширение 1С: заимствование ролей, настройка прав, проверка результата и типичные ошибки.
В расширениях 1С понятие «владелец» встречается в двух ситуациях. Первая — нужно добавить в расширение роль (например, роль с правами владельца данных), чтобы управлять доступом к добавляемым или изменяемым объектам. Вторая — у нового справочника, созданного в расширении, требуется указать владельца, то есть сделать его подчинённым другому справочнику. Оба сценария решаются в конфигураторе, но имеют свои ограничения, о которых важно знать заранее.
Расширение конфигурации — это механизм доработки типовой конфигурации без снятия её с поддержки. В расширение можно заимствовать объекты основной конфигурации и добавлять собственные, однако не все действия разрешены: например, состав прав роли можно изменить только для заимствованных или собственных объектов, а подчинённость справочников имеет технические ограничения платформы.
Ниже разобраны оба сценария: как заимствовать и изменить роль в расширении и как назначить владельца справочнику, созданному в расширении. Также приведены проверки результата, типичные ошибки и границы безопасной работы.
Что значит «владелец» в контексте расширения 1С
Прежде чем приступать к изменениям, определите, какая задача стоит на самом деле. Если речь о правах доступа — работа ведётся с ролями: роль заимствуется из основной конфигурации или создаётся новая, после чего в ней отмечаются права на объекты расширения. Если речь о подчинённости данных — работа ведётся со свойством «Владельцы» у справочника.
Ограничение платформы: справочник, созданный в расширении, может быть подчинён только справочнику из того же расширения или заимствованному справочнику основной конфигурации — возможность зависит от версии платформы. Проверьте поведение на тестовой копии базы, прежде чем строить на этом архитектуру решения.
Подготовка: что сделать перед изменением расширения
Любые изменения расширения выполняйте на копии рабочей базы. Ошибка в ролях может закрыть доступ пользователям к документам, а ошибка в структуре справочников — потребовать реструктуризации данных. Создайте резервную копию через конфигуратор («Администрирование» → «Выгрузить информационную базу») или штатными средствами СУБД.
Убедитесь, что у вас есть права на изменение расширения: нужна роль с правом «Администрирование расширений конфигурации» и доступ к конфигуратору. Также проверьте, что расширение не находится в режиме «только для чтения» и его версия совместима с текущей версией конфигурации.
Как добавить роль владельца в расширение
Откройте конфигуратор и загрузите расширение: «Конфигурация» → «Расширения конфигурации» → откройте нужное расширение. В дереве конфигурации расширения найдите ветку «Роли». Если нужная роль уже есть в основной конфигурации, заимствуйте её: в основной конфигурации найдите роль, вызовите контекстное меню и выберите «Добавить в расширение».
Если роль нужна новая, создайте её прямо в расширении: контекстное меню на ветке «Роли» → «Добавить». Дайте роли понятное имя, например отражающее её назначение, и задайте синоним, который увидят администраторы в списке ролей пользователя.
Далее настройте права. Откройте роль двойным щелчком — появится редактор прав со списком объектов, доступных в расширении (заимствованных и собственных). Отметьте нужные права: чтение, добавление, изменение, просмотр, интерактивные команды. Учтите, что расширение может только сужать права заимствованных ролей по отношению к ряду объектов — расширить права сверх основной конфигурации для типовых объектов через заимствованную роль не получится.
- 1Откройте расширение в конфигураторе и перейдите в ветку «Роли»
- 2Заимствуйте роль из основной конфигурации или создайте новую
- 3В редакторе роли отметьте права на объекты расширения
- 4Сохраните расширение и обновите конфигурацию базы данных
- 5Назначьте роль тестовому пользователю и проверьте доступ
Как назначить справочнику владельца в расширении
Создайте новый справочник в расширении или откройте существующий. В палитре свойств перейдите на закладку «Владельцы» и отметьте справочник, который будет владельцем. После этого в элементе подчинённого справочника появится обязательный реквизит «Владелец», а в форме элемента — поле выбора владельца.
Учтите ограничения. Владельцем может быть не любой объект: платформа допускает в качестве владельцев определённые типы, и не все комбинации доступны в расширениях. Если нужный справочник-владелец находится в основной конфигурации, его обычно требуется сначала заимствовать. Проверьте, что после указания владельца расширение проходит проверку применимости без ошибок.
Если у справочника уже есть данные, добавление владельца вызовет реструктуризацию: у существующих элементов реквизит «Владелец» окажется пустым. Заранее продумайте, как заполнить его — обработкой или вручную, иначе отборы и иерархия по владельцу будут работать некорректно.
Назначение роли пользователю
После того как роль добавлена в расширение и расширение применено к базе, роль становится доступной в списке ролей пользователей. Откройте список пользователей («Администрирование» → «Пользователи» в режиме предприятия или через конфигуратор для локальной базы), выберите пользователя и на закладке ролей отметьте новую роль.
Проверяйте результат именно под учётной записью конечного пользователя, а не под администратором: у администратора полные права скроют любые ошибки настройки. Войдите под тестовой учётной записью и убедитесь, что нужные объекты открываются, а лишние — нет.
Как проверить результат
Роль видна и отмечается
Роли нет в списке — расширение не применено или роль создана не в том расширении
Разрешённые объекты открываются, запрещённые — недоступны
Нет доступа ко всему или, наоборот, доступ шире задуманного
Поле присутствует и обязательно к заполнению
Поля нет — владелец не указан или изменения не сохранены
Типичные ошибки и ограничения
Самая частая ошибка — изменение роли в основной конфигурации вместо расширения. Это снимает конфигурацию с поддержки и ломает обновления. Всегда проверяйте, что редактируете дерево именно расширения: оно открывается отдельным окном конфигурации.
Вторая ошибка — ожидание, что расширение расширит права типовой роли. Механизм заимствования ролей в расширении ориентирован на добавление прав к объектам расширения и корректировку состава; полноценно раздать новые права на типовые объекты через расширение не всегда возможно. В таких случаях создают профили групп доступа (в конфигурациях на БСП) или отдельную роль и назначают её дополнительно.
Третья группа проблем — забытое обновление. После изменения расширения его нужно сохранить и обновить конфигурацию базы данных, а в клиент-серверном режиме иногда требуется перезапуск сеансов, чтобы изменения ролей вступили в силу у уже подключённых пользователей.
Альтернативы, если расширение не решает задачу
Если требуется гибко раздавать права без доработок, в конфигурациях на Библиотеке стандартных подсистем используйте профили групп доступа: они позволяют собрать набор ролей и назначить его пользователю без изменения расширения. Это предпочтительный путь, когда нужно только скомбинировать существующие права.
Если расширение не позволяет реализовать нужную подчинённость или состав прав, остаётся доработка основной конфигурации с последующим аккуратным сопровождением обновлений. Это крайняя мера: сначала проверьте, нельзя ли достичь результата добавлением собственных объектов в расширение и отдельной роли.
Сравнение вариантов
Подходит для прав на объекты расширения; ограничение — слабое влияние на права типовых объектов
Подходит для комбинирования типовых ролей без доработок; требует конфигурации на БСП
Снимает все ограничения, но усложняет обновления и требует дисциплины сопровождения
Частые вопросы
Почему созданная в расширении роль не видна у пользователей?
Чаще всего расширение не применено к базе: после изменений нужно сохранить расширение и обновить конфигурацию базы данных. Также проверьте, что расширение активно (флаг в списке расширений) и не отключено из-за несовместимости версий.
Можно ли через расширение добавить права на типовой документ?
Возможности ограничены: заимствованная роль в расширении в основном позволяет управлять правами на объекты самого расширения. Для раздачи прав на типовые объекты используйте профили групп доступа или отдельную роль, назначаемую дополнительно к типовым.
Что будет с данными, если добавить справочнику владельца?
Запустится реструктуризация: у существующих элементов появится пустой реквизит «Владелец». Пока он не заполнен, отборы по владельцу и связанные механизмы будут работать некорректно, поэтому заполнение планируйте заранее.
Можно ли подчинить справочник расширения типовому справочнику?
Обычно для этого типовой справочник нужно заимствовать в расширение, после чего его можно указать владельцем. Набор допустимых комбинаций зависит от версии платформы, поэтому проверяйте на тестовой базе и смотрите ошибки проверки применимости расширения.
Нужно ли перезапускать сеансы пользователей после изменения ролей?
В клиент-серверном режиме изменения прав могут не подействовать для уже открытых сеансов. Надёжнее попросить пользователей перезайти в программу или завершить сеансы через консоль кластера.
Что важно запомнить
«Владелец» в расширении 1С — это либо роль с нужными правами, либо справочник-владелец у подчинённого справочника. Работайте только в дереве расширения, обновляйте его в базе после изменений, проверяйте права под тестовым пользователем и всегда начинайте с резервной копии.