Почему новые реквизиты из расширения конфигурации не видны в Консоли запросов и Предприятии?

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

Работа с расширениями конфигурации в 1С:Предприятие 8.3 стала стандартом де-факто для адаптации типовых решений. Однако мы часто сталкиваемся с неприятной ситуацией: в Конфигураторе новый реквизит или справочник добавлен, синтаксический контроль проходит успешно, но при запуске в режиме Предприятия этот реквизит отсутствует. Его не видно ни в Консоли запросов, ни в стандартных формах, а попытка обратиться к нему через Выбрать * игнорирует новое поле.

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

1. Проблема прав доступа (Роли в расширении)

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

Если мы добавили новый реквизит в расширении, ни одна роль (даже "Полные права" из основной конфигурации) по умолчанию не знает о его существовании. Следовательно, срабатывает механизм RLS (Restriction Level Security) или простого ограничения прав, и поле становится невидимым для текущего пользователя, даже если это Администратор.

Что нам нужно сделать:

  1. Откроем наше расширение в Конфигураторе.
  2. Перейдем в ветку Общие — Роли.
  3. Нам необходимо либо заимствовать существующую роль из основной конфигурации (например, ПолныеПрава), либо создать собственную роль внутри расширения.
  4. Откроем эту роль и найдем наш новый добавленный реквизит или объект.
  5. Убедимся, что установлены флажки Чтение и Просмотр.
  6. Если мы создали новую роль в расширении, не забудем назначить ее пользователю в режиме 1С:Предприятие или добавить ее в профиль групп доступа.

После назначения прав Консоль запросов сразу "увидит" новое поле.

2. Безопасный режим расширения

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

Проанализируем настройки подключения:

  1. Запустим базу в режиме 1С:Предприятие.
  2. Перейдем в Все функции (или Функции для технического специалиста) -> Стандартные -> Управление расширениями конфигурации.
  3. Найдем в списке проблемное расширение.
  4. Посмотрим на колонку Безопасный режим. Если галочка стоит — снимем её.
  5. Перезапустим сеанс.

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

3. "Подталкивание" реструктуризации (Обновление свойств)

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

Если реквизит добавлен, но не виден, попробуем заставить платформу принудительно пересобрать таблицу:

  1. В Конфигураторе расширения выберем добавленный реквизит.
  2. Изменим какое-либо его свойство, влияющее на структуру или индексы. Например, временно включим или выключим Полнотекстовый поиск или изменим режим Индексировать.
  3. Применим изменения (обновим конфигурацию базы данных).
  4. Вернем настройку обратно и снова обновимся.

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

4. Назначение расширения: Адаптация или Дополнение

При создании расширения мы выбираем его свойство Назначение. Это не просто информационное поле, оно влияет на то, какие действия разрешены расширению.

Рассмотрим два основных типа:

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

5. Кэш метаданных и серверный кэш

Нельзя исключать классическую проблему "фантомных" ошибок 1С — кэш. Если мы уверены, что права выданы, безопасный режим выключен, а реквизита все равно нет, выполним следующие шаги:

  1. Очистим локальный кэш пользователя (удаление папок в AppData/Local/1C/1cv8/ и AppData/Roaming/1C/1cv8/).
  2. Если база серверная — перезапустим службу Агента сервера 1С:Предприятия. Это сбросит серверный кэш метаданных ConfigDump.
  3. В некоторых случаях помогает полное удаление расширения из базы и его повторная загрузка (обязательно сделайте резервную копию данных, если в расширении уже хранились данные!).

6. Режим совместимости

Важно следить за свойством Режим совместимости у самого расширения. Оно не должно превышать режим совместимости основной конфигурации.

Проверим это:

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

Резюме

Если вы добавили реквизит в расширение, но не видите его в режиме Предприятия, действуйте по следующему алгоритму:

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