При работе с современными конфигурациями на платформе 1С:Предприятие 8.3, такими как Управление торговлей 11.4, специалисты часто сталкиваются с ситуацией, когда после очередного обновления один или несколько пользователей не могут войти в информационную базу. Программа прерывает запуск и выдает диагностическое сообщение вида: Тип не определен '48fa9d68-ae46-4d76-988a-88927f7a0ca6'. В данной статье мы подробно разберем причины возникновения этой ошибки, выясним, что скрывается за загадочным идентификатором GUID, и рассмотрим пошаговые методы восстановления работоспособности системы.
Рассмотрим ситуацию глубже. Ошибка «Тип не определен» в контексте запуска системы обычно означает, что платформа пытается десериализовать (прочитать из сохраненного состояния) данные, тип которых ей больше не известен. Проанализируем, почему это происходит:
Выясним, как именно локализовать проблему. Если ошибка возникает только у одного конкретного пользователя, значит, проблема точно не в самой конфигурации базы данных, а в данных, связанных с конкретным сеансом или профилем.
Прежде чем приступать к сложным манипуляциям, выполним стандартную процедуру очистки кэша. Посмотрим, как это сделать правильно для серверного варианта:
1C:Enterprise 8.3 Server Agent, перейти в каталог профиля пользователя, от имени которого запущена служба (обычно это C:\Users\USR1CV8\AppData\Local\1C\1cv8\), и удалить содержимое папок snccntx.Если после этих действий ошибка сохраняется, значит, некорректный тип данных «застрял» непосредственно в базе данных в таблицах настроек.
Проанализируем возможность исправления ситуации без удаления учетной записи пользователя. В 1С:УТ 11 предусмотрены штатные инструменты для управления настройками. Попросим администратора системы выполнить следующие действия:
Важный момент: часто ошибка кроется в «Истории работы» или в панели «Избранное». Эти данные также удаляются при полной очистке настроек. После этой процедуры все визуальные изменения (ширина колонок, состав полей), которые пользователь вносил «под себя», будут сброшены к значениям по умолчанию, но это позволит ему войти в систему.
Рассмотрим еще один эффективный метод, который позволяет принудительно запустить систему, игнорируя сохраненные настройки интерфейса. Для этого при запуске 1С в окне редактирования параметров информационной базы добавим специальный ключ:
/ResetUserSettings
Попробуем запустить систему под проблемным пользователем с этим ключом. Платформа проигнорирует сохраненные настройки SystemSettingsStorage и загрузит стандартный интерфейс. Если вход прошел успешно, ключ можно убрать — новые (чистые) настройки перезапишут старые при выходе из системы.
Если стандартная очистка не помогает, разберем программный способ удаления настроек. Мы можем создать внешнюю обработку и выполнить очистку хранилищ системных настроек конкретно для нужного пользователя. Рассмотрим пример кода, который очищает основные хранилища:
Процедура ОчиститьНастройкиПользователя(ИмяПользователя)
// Очищаем системные настройки (интерфейс, формы)
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Очищаем настройки отчетов
ХранилищеНастроекДанныхФорм.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Очищаем настройки вариантов отчетов
ХранилищеВариантовОтчетов.Удалить(Неопределено, Неопределено, ИмяПользователя);
// Очищаем общие настройки
ХранилищеОбщихНастроек.Удалить(Неопределено, Неопределено, ИмяПользователя);
Сообщить("Настройки пользователя " + ИмяПользователя + " успешно очищены.");
КонецПроцедуры
В данном коде мы используем метод Удалить для различных типов хранилищ. Первый параметр — это КлючОбъекта, второй — КлючНастроек. Передавая Неопределено, мы указываем системе, что нужно удалить все записи для указанного ИмениПользователя.
Выясним, к чему именно относится указанный в ошибке идентификатор '48fa9d68-ae46-4d76-988a-88927f7a0ca6'. Это поможет понять, какое расширение или объект конфигурации стали причиной сбоя. Рассмотрим два способа поиска:
LIKE может не дать результатов без специального преобразования.Проанализируем специфику работы с PostgreSQL, упомянутую в теме. Иногда проблема «Тип не определен» может быть вызвана нарушением индексов в системных таблицах 1С (например, в таблице files или таблицах хранилищ настроек). В этом случае рекомендуется выполнить следующие действия в pgAdmin:
REINDEX DATABASE имя_вашей_базы;. Это перестроит все индексы и исключит возможность обращения к несуществующим записям.VACUUM FULL; для оптимизации хранения данных (требует монопольного доступа к базе).Подведем итог. Ошибка «Тип не определен» — это практически всегда следствие «хвостов» в настройках пользователя после удаления метаданных (чаще всего из расширений).
Наиболее эффективный порядок действий:
/ResetUserSettings.Для предотвращения таких ситуаций в будущем, перед удалением расширений, содержащих новые объекты метаданных, рекомендуется убедиться, что эти объекты не добавлены пользователями в «Избранное» и не используются в качестве постоянных фильтров в списках.