Как исправить ошибку «Тип не определен» с GUID при входе в 1С:Управление торговлей 11?

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

При работе с современными конфигурациями на платформе 1С:Предприятие 8.3, такими как Управление торговлей 11.4, специалисты часто сталкиваются с ситуацией, когда после очередного обновления один или несколько пользователей не могут войти в информационную базу. Программа прерывает запуск и выдает диагностическое сообщение вида: Тип не определен '48fa9d68-ae46-4d76-988a-88927f7a0ca6'. В данной статье мы подробно разберем причины возникновения этой ошибки, выясним, что скрывается за загадочным идентификатором GUID, и рассмотрим пошаговые методы восстановления работоспособности системы.

Анализируем причину возникновения ошибки

Рассмотрим ситуацию глубже. Ошибка «Тип не определен» в контексте запуска системы обычно означает, что платформа пытается десериализовать (прочитать из сохраненного состояния) данные, тип которых ей больше не известен. Проанализируем, почему это происходит:

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

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

Шаг 1. Очистка локального и серверного кэша

Прежде чем приступать к сложным манипуляциям, выполним стандартную процедуру очистки кэша. Посмотрим, как это сделать правильно для серверного варианта:

  1. Локальный кэш пользователя: Удалите информационную базу из списка в окне запуска и добавьте ее заново. Это самый простой и надежный способ очистить локальные временные файлы, связанные с метаданными.
  2. Серверный кэш: Иногда проблема кроется в кэше самого сервера приложений 1С. Для его очистки необходимо остановить службу 1C:Enterprise 8.3 Server Agent, перейти в каталог профиля пользователя, от имени которого запущена служба (обычно это C:\Users\USR1CV8\AppData\Local\1C\1cv8\), и удалить содержимое папок snccntx.

Если после этих действий ошибка сохраняется, значит, некорректный тип данных «застрял» непосредственно в базе данных в таблицах настроек.

Шаг 2. Очистка пользовательских настроек через интерфейс

Проанализируем возможность исправления ситуации без удаления учетной записи пользователя. В 1С:УТ 11 предусмотрены штатные инструменты для управления настройками. Попросим администратора системы выполнить следующие действия:

  1. Перейдем в раздел НСИ и администрирование — Обслуживание.
  2. Выберем пункт Настройки пользователей и прав — Персональные настройки пользователей.
  3. Откроем гиперссылку Очистка настроек.
  4. В появившемся списке выберем «проблемного» пользователя.
  5. Нажмем кнопку Очистить. В появившемся окне рекомендуется выбрать все пункты: «Настройки внешнего вида», «Настройки отчетов», «Прочие настройки».

Важный момент: часто ошибка кроется в «Истории работы» или в панели «Избранное». Эти данные также удаляются при полной очистке настроек. После этой процедуры все визуальные изменения (ширина колонок, состав полей), которые пользователь вносил «под себя», будут сброшены к значениям по умолчанию, но это позволит ему войти в систему.

Шаг 3. Использование параметров запуска для сброса настроек

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

/ResetUserSettings

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

Шаг 4. Программная очистка хранилищ (для разработчиков)

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


Процедура ОчиститьНастройкиПользователя(ИмяПользователя)
    
    // Очищаем системные настройки (интерфейс, формы)
    ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
    
    // Очищаем настройки отчетов
    ХранилищеНастроекДанныхФорм.Удалить(Неопределено, Неопределено, ИмяПользователя);
    
    // Очищаем настройки вариантов отчетов
    ХранилищеВариантовОтчетов.Удалить(Неопределено, Неопределено, ИмяПользователя);
    
    // Очищаем общие настройки
    ХранилищеОбщихНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
    
    Сообщить("Настройки пользователя " + ИмяПользователя + " успешно очищены.");
    
КонецПроцедуры

В данном коде мы используем метод Удалить для различных типов хранилищ. Первый параметр — это КлючОбъекта, второй — КлючНастроек. Передавая Неопределено, мы указываем системе, что нужно удалить все записи для указанного ИмениПользователя.

Шаг 5. Поиск GUID в конфигурации и базе данных

Выясним, к чему именно относится указанный в ошибке идентификатор '48fa9d68-ae46-4d76-988a-88927f7a0ca6'. Это поможет понять, какое расширение или объект конфигурации стали причиной сбоя. Рассмотрим два способа поиска:

  1. В выгрузке конфигурации: Выполним выгрузку конфигурации в файлы (Конфигурация — Развернуть конфигурацию — Выгрузить конфигурацию в файлы). После чего с помощью любого текстового редактора (например, VS Code или Notepad++) проведем поиск данного GUID по всем файлам XML. Это позволит найти имя объекта метаданных.
  2. В базе данных (для PostgreSQL/SQL Server): Если мы имеем доступ к СУБД, можно попробовать найти таблицы, где встречается данный идентификатор. Однако стоит помнить, что в БД 1С GUID-ы часто хранятся в бинарном виде, поэтому поиск через LIKE может не дать результатов без специального преобразования.

Шаг 6. Обслуживание базы данных на уровне СУБД (PostgreSQL)

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

  1. Выполните команду REINDEX DATABASE имя_вашей_базы;. Это перестроит все индексы и исключит возможность обращения к несуществующим записям.
  2. Выполните VACUUM FULL; для оптимизации хранения данных (требует монопольного доступа к базе).

Резюме и рекомендации

Подведем итог. Ошибка «Тип не определен» — это практически всегда следствие «хвостов» в настройках пользователя после удаления метаданных (чаще всего из расширений).

Наиболее эффективный порядок действий:

  1. Попробовать зайти с ключом /ResetUserSettings.
  2. Если не помогло — выполнить «Очистку настроек» через раздел «Обслуживание» под администратором.
  3. В самом крайнем случае — пересоздать пользователя, но помните, что при этом нужно будет заново настроить его права доступа и связать с физическим лицом в справочнике «Сотрудники» или «Пользователи».

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

← На главную