При активном использовании механизмов расширения конфигурации в платформе «1С:Предприятие 8.3» разработчики часто сталкиваются с неприятной ситуацией: в расширении создается новый объект (например, справочник или документ), однако после запуска системы в пользовательском режиме он абсолютно невидим. При этом никаких ошибок или предупреждений система не выдает, а сам объект присутствует в структуре расширения в конфигураторе.
В рамках данной статьи мы подробно разберем, почему так происходит, проанализируем внутренние механизмы платформы и Библиотеки стандартных подсистем (БСП), а также рассмотрим пошаговые инструкции для решения этой проблемы.
Самая частая причина, по которой новый объект из расширения не виден пользователям — это логика работы платформенного механизма ограничения прав доступа. Проанализируем, как платформа 1С обрабатывает права на новые объекты расширения:
Основные роли. В сочетании с типовыми конфигурациями на БСП это часто вызывает конфликты контроля прав.Для исправления ситуации выполним следующие действия в конфигураторе:
Роли. Если там присутствуют какие-либо роли, проанализируем их необходимость. Если они не нужны для жесткого разграничения прав внутри самого расширения, просто удалим их.Свойства.Основные роли и полностью очистим его, удалив оттуда все ссылки на роли.После удаления всех ролей платформа вернется к автоматическому распределению прав, и объект станет доступен пользователям.
Если ваша конфигурация построена на базе БСП (например, «Бухгалтерия предприятия», «ERP Управление предприятием» или «Комплексная автоматизация»), права доступа и профили пользователей контролируются не только на уровне платформы, но и программно.
БСП хранит информацию обо всех объектах метаданных (включая объекты расширений) в специальном справочнике ИдентификаторыОбъектовМетаданных и регистре сведений ИдентификаторыОбъектовВерсийРасширений. Если вы добавили новый справочник в расширение, БСП просто «не знает» о его существовании, пока не обновится этот кэш.
Для принудительного обновления идентификаторов выполним следующие шаги:
Справочники.ИдентификаторыОбъектовРасширений.ОбновитьДанныеСправочника(Истина);
/C ЗапуститьОбновлениеИнформационнойБазы
После успешного прохождения процедуры обновления информационной базы БСП зарегистрирует новые объекты расширения в своих служебных таблицах, что позволит корректно назначить на них права в профилях групп доступа.
Даже если права доступа настроены корректно, объект может не отображаться в интерфейсе пользователя из-за неверных интерфейсных настроек в самом расширении. Выясним причину, проверив свойства нового объекта:
ИспользоватьСтандартныеКоманды включено (стоит галочка). Если это свойство отключено, стандартные команды открытия списков и создания новых элементов не будут сгенерированы платформой.Подсистемы отметим галочкой заимствованную подсистему.Командный интерфейс. Проанализируем открывшееся окно и проверим, установлена ли видимость для команд нашего нового объекта. При необходимости принудительно включим видимость для нужных ролей или колонок интерфейса.Параметры подключения расширения в пользовательском режиме напрямую влияют на доступность его объектов и исполнение программного кода. Выясним, как влияют эти параметры:
Безопасный режим подключения: При подключении расширения через интерфейс программы (в справочнике «Расширения») по умолчанию активен флаг Безопасный режим. В безопасном режиме платформа накладывает жесткие ограничения на работу с файловой системой, внешними компонентами и привилегированным кодом. Если ваш новый объект инициализирует выполнение кода, требующего повышенных привилегий, система может молча заблокировать его отображение. При тестировании рекомендуется временно отключить этот флаг в пользовательском режиме.
Назначение расширения: Автор темы указал назначение Дополнение. Это корректный выбор для добавления новых сущностей, однако при таком назначении новые объекты могут быть недоступны для использования в некоторых механизмах основной конфигурации (например, при построении сложных отчетов через СКД или при работе с универсальными обработками). Если функционал требует тесной интеграции с кодом основной конфигурации, попробуем изменить назначение на Адаптация.
Если вы работаете на устаревших версиях платформы 1С (как в обсуждаемой теме на форуме — версия 8.3.14), необходимо учитывать ряд критических багов, которые были зафиксированы разработчиками платформы в тот период:
Для обеспечения стабильной работы бизнес-приложений настоятельно рекомендуется использовать современные версии платформы «1С:Предприятие» (начиная с 8.3.15 и старше), где большинство этих критических ошибок в работе с таблицами расширений были успешно устранены разработчиками.