Как исправить ошибку «Несоответствие типов» при открытии журналов документов в 1С?

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

При работе в типовых конфигурациях 1С (например, «1С:Бухгалтерия предприятия») после обновления платформы или релиза программы пользователи могут столкнуться с ошибкой «Несоответствие типов». Данное исключение возникает в момент попытки открыть журналы документов, такие как Документы покупателей, Документы поставщиков или Журнал операций. При этом стандартная проверка базы через утилиту chdbfl.exe и тестирование в Конфигураторе не выявляют физических повреждений таблиц СУБД.

В этой статье мы подробно разберем причины возникновения данной неполадки и рассмотрим проверенные способы её устранения.

Почему возникает ошибка «Несоответствие типов»?

Проанализируем устройство журналов документов в современных релизах конфигураций на управляемых формах. Журналы Документы покупателей и Документы поставщиков представляют собой форму единого объекта Журнал операций с предустановленными динамическими отборами по типам и видам документов.

Ошибка генерируется сервером 1С при инициализации динамического списка по следующим основным причинам:

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

Способ 1. Выгрузка и загрузка данных для перехода в сервис (Решение проблемы)

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

Выполним следующие шаги:

  1. Откроем исходную информационную базу в режиме 1С:Предприятие от имени администратора.
  2. Перейдем в раздел Администрирование — Переход в сервис (или Выгрузка данных для перехода в сервис).
  3. Выгрузим данные информационной базы в архивный файл на локальный диск.
  4. Создадим новую пустую информационную базу.
  5. Выполним загрузку полученного файла в новую базу без переноса сведений о служебных пользователях и системных настройках.

Почему это помогает: Механизм выгрузки для сервиса формирует XML-поток, содержащий только прикладные сущности (справочники, документы, регистры). Служебные таблицы пользовательских схем компоновки, временный кэш и ХранилищеСистемныхНастроек при этом не переносятся, благодаря чему журналы в новой базе открываются со стандартными настройками по умолчанию.

Способ 2. Полная очистка локального кэша платформы

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

  1. Завершим работу всех сеансов 1С на данном ПК.
  2. Откроем окно запуска 1С, выделим нужную базу, нажмем Изменить и на последней вкладке в поле дополнительных параметров запуска укажем ключ:

    /ClearCache

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

    %LocalAppData%\1C\1cv8

    %AppData%\1C\1cv8

    и удалим все вложенные папки с длинными буквенно-цифровыми именами (например, d10a26b6-8a90-4c13...).
  4. Удалим информационную базу из списка в окне запуска и добавим её заново, чтобы платформа сформировала новый внутренний идентификатор базы для кэширования.

Способ 3. Программный сброс системных настроек формы

Разберем ситуацию, когда удаление пользовательских настроек через интерфейс («Персональные настройки пользователей» — «Настройки пользователей») не дает результата. Обычный интерфейсный сброс не очищает записи в системном хранилище. Чтобы сбросить настройки динамического списка конкретной формы, воспользуемся внешней обработкой и встроенным языком 1С.

Пример кода для программного удаления настроек формы журнала:


// Указываем ключ объекта для журнала операций
КлючОбъекта = "ЖурналДокументов.ЖурналОпераций.Форма.ФормаСписка/НастройкиДинамическогоСписка";
ИмяПользователя = "ИвановИИ"; // Имя конкретного пользователя или пустая строка для всех

// Удаляем настройки из системного хранилища
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, "", ИмяПользователя);

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

Способ 4. Обновление метаданных и реструктуризация таблиц

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

  1. В режиме 1С:Предприятие откроем раздел Администрирование — Обслуживание — Корректировка данных и запустим обновление справочника Идентификаторы объектов метаданных.
  2. Откроем базу в режиме Конфигуратор.
  3. Перейдем в меню Администрирование — Тестирование и исправление...
  4. Установим флажок Реструктуризация таблиц информационных баз и нажмем Выполнить.

Проведение реструктуризации полностью пересчитает физические таблицы базы данных, обновит индексы и устранит технические несоответствия типов на уровне СУБД.

← На главную