При работе в типовых конфигурациях 1С (например, «1С:Бухгалтерия предприятия») после обновления платформы или релиза программы пользователи могут столкнуться с ошибкой «Несоответствие типов». Данное исключение возникает в момент попытки открыть журналы документов, такие как Документы покупателей, Документы поставщиков или Журнал операций. При этом стандартная проверка базы через утилиту chdbfl.exe и тестирование в Конфигураторе не выявляют физических повреждений таблиц СУБД.
В этой статье мы подробно разберем причины возникновения данной неполадки и рассмотрим проверенные способы её устранения.
Проанализируем устройство журналов документов в современных релизах конфигураций на управляемых формах. Журналы Документы покупателей и Документы поставщиков представляют собой форму единого объекта Журнал операций с предустановленными динамическими отборами по типам и видам документов.
Ошибка генерируется сервером 1С при инициализации динамического списка по следующим основным причинам:
ХранилищеПользовательскихНастроек, но не затрагивает ХранилищеСистемныхНастроек, где хранятся скомпилированные платформой структуры динамических списков и варианты оформления.Идентификаторы объектов метаданных, расхождение записей приводит к передаче незаполненной ссылки или типа Неопределено в параметр запроса.Рассмотрим наиболее надежный способ устранения ошибки, который позволяет полностью избавиться от «зависших» системных настроек и поврежденного кэша без потери прикладных данных. Метод заключается в переносе информации через стандартный механизм выгрузки для сервиса.
Выполним следующие шаги:
1С:Предприятие от имени администратора.Почему это помогает: Механизм выгрузки для сервиса формирует XML-поток, содержащий только прикладные сущности (справочники, документы, регистры). Служебные таблицы пользовательских схем компоновки, временный кэш и ХранилищеСистемныхНастроек при этом не переносятся, благодаря чему журналы в новой базе открываются со стандартными настройками по умолчанию.
Посмотрим, как устранить ошибку, если она вызвана накоплением устаревших временных файлов на рабочем столе пользователя.
/ClearCache
%LocalAppData%\1C\1cv8
%AppData%\1C\1cv8
d10a26b6-8a90-4c13...).Разберем ситуацию, когда удаление пользовательских настроек через интерфейс («Персональные настройки пользователей» — «Настройки пользователей») не дает результата. Обычный интерфейсный сброс не очищает записи в системном хранилище. Чтобы сбросить настройки динамического списка конкретной формы, воспользуемся внешней обработкой и встроенным языком 1С.
Пример кода для программного удаления настроек формы журнала:
// Указываем ключ объекта для журнала операций
КлючОбъекта = "ЖурналДокументов.ЖурналОпераций.Форма.ФормаСписка/НастройкиДинамическогоСписка";
ИмяПользователя = "ИвановИИ"; // Имя конкретного пользователя или пустая строка для всех
// Удаляем настройки из системного хранилища
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, "", ИмяПользователя);
После выполнения данного кода платформа сбросит установленные пользовательские схемы, цветовые отборы и параметры динамического списка, вернув форму журнала к исходному состоянию.
Выясним, что делать, если ошибка связана с неверными идентификаторами объектов после обновления конфигурации.
1С:Предприятие откроем раздел Администрирование — Обслуживание — Корректировка данных и запустим обновление справочника Идентификаторы объектов метаданных.Конфигуратор.Проведение реструктуризации полностью пересчитает физические таблицы базы данных, обновит индексы и устранит технические несоответствия типов на уровне СУБД.