Почему созданный в расширении справочник не отображается в конфигураторе при выборе типа значения?

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

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

Рассмотрим причины этого поведения, которое чаще всего является следствием программной ошибки в определенных релизах платформы (в частности, ветки 8.3.18, 8.3.19 и 8.3.20), и разберем по шагам все доступные способы решения проблемы.

Способ 1. Использование механизма «Быстрого выбора»

Проанализируем самый простой способ обхода проблемы. Как показывает практика, визуальное дерево объектов в полном диалоговом окне выбора типа и выпадающий список (вызываемый по нажатию на кнопку со стрелкой в поле «Тип») работают на разных механизмах индексации метаданных.

Если объект не виден в общем окне «Редактирование типа данных», выполним следующие действия:

  1. Закроем модальное окно выбора типа.
  2. В палитре свойств нужного нам реквизита найдем поле Тип.
  3. Нажмем не на кнопку с многоточием, а на кнопку выбора со стрелкой (вниз).
  4. В открывшемся динамическом списке найдем наш справочник или начнем вводить его название.

В большинстве случаев этот метод позволяет «увидеть» объект, так как динамический список обращается к метаданным расширения напрямую, минуя некорректно отрисованное дерево категорий.

Способ 2. Использование строки поиска в окне выбора типа

Разберем еще одну интересную особенность интерфейса Конфигуратора. Даже если в иерархическом списке справочников нужный элемент отсутствует, механизм поиска внутри этого же окна может его обнаружить. Это происходит потому, что поиск инициирует принудительный опрос метаданных, игнорируя кэшированное состояние дерева объектов.

Попробуем найти нужный тип следующим образом:

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

Способ 3. Исправление пути запуска агента сервера (Registry Fix)

Выясним более глубокую, системную причину проблемы. Конфигуратор для валидации типов часто обращается к серверной части (службе ragent). Если на сервере установлено несколько версий платформы, может возникнуть ситуация, когда служба запущена из каталога одной версии (например, 8.3.18.1289), а вы работаете в Конфигураторе другой версии (например, 8.3.18.1433). Из-за различий в механизмах кэширования метаданных между минорными сборками возникает рассинхронизация.

Для исправления ситуации выполним следующие действия:

  1. Откроем оснастку управления службами Windows (нажмем Win + R, введем services.msc).
  2. Найдем службу 1C:Enterprise 8.3 Server Agent и откроем ее свойства.
  3. Посмотрим на путь в поле «Исполняемый файл». Если версия платформы в пути не совпадает с той, которую вы используете для разработки, службу нужно остановить.
  4. Запустим редактор реестра (Win + R, команда regedit).
  5. Перейдем в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (название может незначительно отличаться в зависимости от версии).
  6. Найдем параметр ImagePath и изменим путь так, чтобы он указывал на актуальную версию платформы bin\ragent.exe.
  7. Запустим службу заново.

После этой манипуляции и перезапуска Конфигуратора новые объекты расширения обычно становятся доступны в общем списке типов.

Способ 4. Проверка режима совместимости расширения

Проанализируем ситуацию с точки зрения настроек самого расширения. Платформа 1С очень чувствительна к режиму совместимости. Если вы создали расширение в базе, где основная конфигурация работает на режиме 8.3.20, а у самого расширения установлен режим совместимости 8.3.14, некоторые механизмы работы с типами новых объектов могут быть ограничены.

Рекомендуется выполнить проверку:

  1. В дереве конфигурации выделим корень расширения.
  2. В палитре свойств найдем свойство Режим совместимости.
  3. Установим его равным режиму совместимости основной конфигурации (или значению «Не использовать», если это позволяет версия платформы).

Способ 5. Принудительное обновление индексов метаданных

Иногда Конфигуратору требуется «встряска» для обновления внутреннего кэша типов расширения. Мы можем спровоцировать полную переиндексацию простым приемом:

  1. Временно изменим имя нового справочника в расширении (например, добавим символ подчеркивания в конце).
  2. Выполним обновление конфигурации базы данных (клавиша F7).
  3. Вернем справочнику исходное имя.
  4. Снова выполним обновление конфигурации базы данных.

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

Способ 6. Проверка прав доступа внутри расширения

Рассмотрим еще один нюанс, связанный с ролями. Если вы разрабатываете расширение в базе, где включена строгая проверка прав, и при этом в расширении созданы свои роли, убедитесь, что ваш текущий пользователь имеет права на Чтение и Просмотр нового объекта. В некоторых версиях платформы диалог выбора типа фильтрует объекты метаданных в соответствии с правами текущего сеанса разработчика.

Посмотрим на настройки ролей:

  1. Найдем в расширении объект Роли.
  2. Убедимся, что для нового справочника проставлены галочки прав доступа.
  3. Проверим, добавлена ли эта роль пользователю, под которым запущен Конфигуратор.

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

← На главную