При обновлении конфигураций 1С (в частности, 1С:Розница базовая) пользователи и администраторы нередко сталкиваются с критической ошибкой, прерывающей процесс накатывания изменений. В окне сообщений появляется текст следующего характера:
Ошибка загрузки документа. Ошибка преобразования данных XDTO. НачалоСвойства: appearance, тип: TableCellAppearance... Ошибка отображения типов: Отображение типа 'Строка' в тип Color.
Стандартные операции обслуживания — очистка локального кэша, тестирование и исправление информационной базы, запуск утилиты chkdbfl.exe или выгрузка и последующая загрузка через файл .dt — в этой ситуации не дают положительного результата. Проанализируем природу данной неполадки и подробно рассмотрим эффективные пути ее устранения.
Выясним причину сбоя. В конфигурациях, использующих Библиотеку стандартных подсистем (БСП), макеты областей системы компоновки данных (СКД) содержат правила условного оформления ячеек (TableCellAppearance). В них задаются цвета элементов через системные стили, например ПросроченнаяЗадача.
Сбой возникает в следующих ситуациях:
.cfu). Механизм пошагового обновления сначала десериализует шаблоны и настройки оформления СКД. Если новый элемент стиля в структуре метаданных еще не зафиксирован, платформа считывает строковое наименование стиля, но ожидает строго типизированный объект Color. В результате возникает исключение Ошибка преобразования данных XDTO.ХранилищеСистемныхНастроек, ХранилищеПользовательскихНастроекОтчетов) могут сохраняться пользовательские варианты списков задач или отчетов с некорректными ссылками на оформление.Разберем практическое решение, которое помогло успешно справиться с проблемой в базовой версии программы. Если при обновлении через файл изменений .cfu конфигуратор падает, можно выполнить полную загрузку конфигурации необходимого релиза.
Для базовых версий операция прямой загрузки файла .cf стандартно заблокирована, однако при наличии лицензии уровня ПРОФ задачу можно решить следующим образом:
.cf именно для базовой версии).Если нет доступа к платформе ПРОФ, разберем альтернативный вариант обновления базовой конфигурации с помощью полного файла поставки .cf, не требующий включения возможности изменения:
.cf, а не дельта-обновление .cfu) с официального портала обновлений..cf.Рассмотрим метод, связанный с обновлением технологической платформы. Поскольку ошибки десериализации интерфейсных типов XDTO часто носят платформенный характер, целесообразно выполнить следующие шаги:
Если сбой вызван сохраненными пользовательскими формами, содержащими ссылку на устаревший элемент стиля, очистим внутренние хранилища настроек.
В режиме «1С:Предприятие» перейдем в раздел Администрирование — Настройки пользователей и прав — Очистка настроек и сбросим оформление списков и отчетов для всех пользователей.
Если запуск предприятия в обычном режиме невозможен, используем специализированную внешнюю обработку. Посмотрим на пример кода, позволяющего программно очистить хранилища настроек:
ВыборкаПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого Пользователь Из ВыборкаПользователей Цикл
ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, Пользователь.Имя);
ХранилищеПользовательскихНастроекОтчетов.Удалить(Неопределено, Неопределено, Пользователь.Имя);
КонецЦикла;
После удаления старых настроек динамических списков и отчетов повторим процедуру обновления конфигурации базы данных.
Разберем еще один способ обхода ошибки — запуск обновления в пакетном режиме через консоль. В тихом режиме конфигуратор инициализирует графические подсистемы по упрощенной схеме, что во многих случаях помогает обойти проверку элементов стиля оформления.
Пример команды для запуска обновления через командную строку Windows:
"C:\Program Files\1cv8\8.3.14.1976\bin\1cv8.exe" DESIGNER /F "C:\Bases\RetailBase" /UpdateCfg "C:\Updates\1Cv8.cf" /UpdateDBCfg
Параметр /UpdateCfg задает файл конфигурации, а ключ /UpdateDBCfg инициирует немедленное применение изменений к базе данных.