Почему в 1С пропали доработки основной конфигурации после подключения расширения?

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

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

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

Проверка №1: Обновление конфигурации базы данных

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

  1. Зайдите в Конфигуратор. Если конфигурация базы данных отличается от основной, вы увидите иконку с восклицательным знаком на корневом узле дерева конфигурации.
  2. Чтобы применить изменения, нажмите клавишу F7 или выберите в меню «Конфигурация» → «Обновить конфигурацию базы данных».
  3. В открывшемся окне платформа покажет список изменений. Внимательно просмотрите его и убедитесь, что ваш «пропавший» объект (например, справочник) есть в списке на добавление. Нажмите «Принять».

Важный момент — «демоническое обновление». Иногда случается, что после внесения изменений конфигурация базы данных была случайно обновлена из старого файла .cf, в котором ваших доработок еще не было. Это могло «затереть» вашу работу на уровне БД. Чтобы исключить этот вариант, выполните сравнение:

Проверка №2: Права доступа

Если обновление БД не помогло, следующая вероятная причина — права доступа. Даже если вы заходите под пользователем с ролью ПолныеПрава, есть нюансы, особенно при использовании расширений.

Стандартная проверка прав

Убедитесь, что на ваш новый объект вообще назначены права.

  1. В дереве конфигурации найдите ветку «Общие» → «Роли».
  2. Откройте роль, которая назначена вашему пользователю (например, ПолныеПрава).
  3. В списке объектов найдите ваш «пропавший» справочник и убедитесь, что все необходимые флажки (Чтение, Добавление, Изменение и т.д.) установлены. Если нет — установите их, сохраните конфигурацию и обновите базу данных.

Влияние расширения на права

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

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

Как проверить и исправить:

  1. Откройте ваше расширение в конфигураторе.
  2. Найдите в нем заимствованную роль ПолныеПрава.
  3. Откройте ее и убедитесь, что в ней установлены права на все необходимые объекты основной конфигурации, включая ваш справочник.
  4. Если прав нет — установите их, сохраните и обновите конфигурацию БД.

Проверка №3: Функциональные опции

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

  1. В конфигураторе найдите ваш «пропавший» справочник.
  2. Откройте его свойства и перейдите на вкладку «Функциональные опции».
  3. Посмотрите, не связан ли объект с какой-либо опцией. Если да, найдите эту функциональную опцию в ветке Общие → Функциональные опции.
  4. Проверьте, где хранится ее значение (обычно это константа или реквизит общих настроек) и какое значение установлено в режиме «Предприятие». Возможно, опцию нужно просто включить.

Проверка №4: Очистка кэша

Иногда 1С «запоминает» старую структуру конфигурации и не отображает новые объекты, даже если все настроено верно. В этом случае помогает очистка кэша.

Клиентский кэш

Это кэш на компьютере пользователя. Самый простой способ его очистить — удалить базу из списка запуска и добавить ее заново. Путь к файлу при этом нужно указать тот же. Если это не помогает, можно удалить кэш вручную, удалив папки с длинными буквенно-цифровыми именами из каталогов %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.

Серверный кэш

Если у вас клиент-серверный вариант работы, проблема может быть в кэше на сервере 1С. Локальная очистка в этом случае не поможет. Самый надежный способ — перезапустить службу «Агент сервера 1С:Предприятие» на сервере. Это действие сбросит серверный кэш для всех баз и пользователей. Выполняйте его, когда в базе нет активных пользователей.

Глубокая диагностика: если ничего не помогло

Если предыдущие шаги не дали результата, нужно провести более глубокую проверку, чтобы точно локализовать проблему.

Проверка через консоль запросов

Интерфейс «Все функции» — ненадежный способ проверки наличия объекта. Он зависит от прав, настроек видимости и функциональных опций. Чтобы на 100% узнать, существует ли ваш справочник в базе данных, используйте консоль запросов.

Откройте консоль запросов (стандартную или внешнюю обработку) и выполните простой запрос к вашему справочнику:


ВЫБРАТЬ ПЕРВЫЕ 1
    Т.Ссылка
ИЗ
    Справочник.Доработка1 КАК Т

Проанализируйте результат:

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

← На главную