Обновление типовых конфигураций «1С:Предприятие» обычно проходит в штатном режиме, однако пользователи старых веток, таких как Бухгалтерия предприятия, редакция 2.0, всё чаще сталкиваются с неожиданными техническими сбоями. Одной из самых коварных проблем последнего времени стала ошибка преобразования данных XDTO, связанная со свойством useQueryGroupIfPossible. Рассмотрим подробно, почему она возникает и как её устранить, чтобы успешно завершить обновление.
Разберем природу данного сбоя. Ошибка манифестирует себя следующим сообщением:
Ошибка преобразования данных XDTO: НачалоСвойства: dataSet Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/schema}DataSet
Причина кроется в строке {http://v8.1c.ru/8.1/data-composition-system/schema}useQueryGroupIfPossible. Проанализируем ситуацию: разработчики «1С» в новых релизах конфигурации (начиная с 2.0.67.19) внесли изменения в схемы компоновки данных (СКД). В этих схемах появился новый параметр useQueryGroupIfPossible, который отвечает за оптимизацию группировок в запросах СКД.
Проблема заключается в том, что старые версии платформы «1С:Предприятие 8.3» (например, 8.3.10, как в исходном вопросе) используют старые схемы XDTO-пакетов. Когда парсер платформы встречает в XML-структуре метаданных тег, который ему неизвестен, он не игнорирует его, а выбрасывает исключение. Несмотря на то, что в официальных требованиях к релизу может быть указана минимальная версия платформы 8.3.9, по факту для корректного чтения новых свойств СКД требуется платформа не ниже 8.3.14.1565.
Выясним наиболее эффективный алгоритм действий, если вам необходимо сохранить работу базы на старой платформе, но при этом успешно провести обновление. Этот метод можно назвать «прыжком» между версиями платформы. Проанализируем шаги:
.dt) или скопируйте файл 1Cv8.1CD.8.3.18.x, 8.3.22.x или выше.useQueryGroupIfPossible не возникнет, так как механизмы XDTO там обновлены и знают этот параметр.Рассмотрим ситуацию, когда временные меры нецелесообразны. Если конфигурация Бухгалтерия предприятия 2.0 продолжает развиваться, количество новых тегов в метаданных будет только расти. Посмотрим на преимущества полноценного обновления платформы до версии 8.3.18 или выше:
Во-первых, вы избавитесь от ошибок при чтении DataSet в схемах компоновки данных. Во-вторых, новые платформы стабильнее работают с современными операционными системами и СУБД.
Важный момент: если вы решите остаться на новой платформе, проверьте свойство конфигурации Режим совместимости. Для БП 2.0 он обычно установлен в 8.2.13 или 8.2.16. Не рекомендуется менять его без острой необходимости, так как это может повлечь за собой изменение поведения форм и запросов.
Иногда после обновления на новой платформе и возврата на старую, пользователи продолжают видеть ошибки. Это происходит из-за того, что старая платформа пытается использовать закэшированные структуры метаданных. Разберем, как правильно очистить кэш:
Для файловой базы удалите папки из каталогов пользователя:
%AppData%\1C\1Cv8\
%LocalAppData%\1C\1Cv8\
Если же ваша база работает в клиент-серверном варианте, выполните следующие действия:
1C:Enterprise Server.C:\Program Files\1cv8\srvinfo).snccntx.Перед началом обновления мы настоятельно рекомендуем провести процедуру «Тестирование и исправление». Рассмотрим, какие параметры стоит выбрать:
Это позволит убедиться, что ошибка XDTO не вызвана физическим повреждением структуры таблиц базы данных, а является именно проблемой несоответствия версий парсера XML в платформе.
Подведем итог: проблема useQueryGroupIfPossible решается исключительно за счет использования более свежих релизов платформы 1С для выполнения самой процедуры обновления конфигурации. Использование метода «транзита» через новую платформу позволяет успешно обновить даже те базы, которые по каким-то причинам привязаны к старым системным требованиям.