Как исправить ошибку преобразования данных XDTO useQueryGroupIfPossible при обновлении Бухгалтерии 2.0

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Обновление типовых конфигураций «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.

Способ 1: Метод «Транзитного обновления» на новой платформе

Выясним наиболее эффективный алгоритм действий, если вам необходимо сохранить работу базы на старой платформе, но при этом успешно провести обновление. Этот метод можно назвать «прыжком» между версиями платформы. Проанализируем шаги:

  1. Создание резервной копии. Это обязательный этап перед любыми манипуляциями. Сделайте выгрузку информационной базы (файл .dt) или скопируйте файл 1Cv8.1CD.
  2. Подготовка «чистой» среды. Установите на рабочий компьютер или отдельный сервер одну из актуальных версий платформы. Рекомендуется использовать релизы 8.3.18.x, 8.3.22.x или выше.
  3. Перенос базы. Загрузите вашу базу в новую версию платформы. Если база файловая, достаточно просто добавить её в список и запустить в режиме «Конфигуратор» под новой платформой.
  4. Процедура обновления. Выполните обновление конфигурации с версии 2.0.67.17 на 2.0.67.19 (или актуальную на данный момент). На новой платформе ошибка useQueryGroupIfPossible не возникнет, так как механизмы XDTO там обновлены и знают этот параметр.
  5. Завершение обновления. Обязательно запустите базу в режиме «1С:Предприятие» под новой платформой. Дождитесь окончания выполнения всех обработок обновления (реструктуризация данных, заполнение новых регистров). Это критически важно для корректной работы логики конфигурации.
  6. Возврат на старую платформу. Закройте клиент и выгрузите базу обратно. Теперь вы можете запустить её на старой платформе (например, 8.3.10), если это необходимо по условиям эксплуатации (например, из-за совместимости с другим ПО).

Способ 2: Окончательный переход на актуальную платформу

Рассмотрим ситуацию, когда временные меры нецелесообразны. Если конфигурация Бухгалтерия предприятия 2.0 продолжает развиваться, количество новых тегов в метаданных будет только расти. Посмотрим на преимущества полноценного обновления платформы до версии 8.3.18 или выше:

Во-первых, вы избавитесь от ошибок при чтении DataSet в схемах компоновки данных. Во-вторых, новые платформы стабильнее работают с современными операционными системами и СУБД.

Важный момент: если вы решите остаться на новой платформе, проверьте свойство конфигурации Режим совместимости. Для БП 2.0 он обычно установлен в 8.2.13 или 8.2.16. Не рекомендуется менять его без острой необходимости, так как это может повлечь за собой изменение поведения форм и запросов.

Очистка кэша и техническое обслуживание

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

Для файловой базы удалите папки из каталогов пользователя:

%AppData%\1C\1Cv8\
%LocalAppData%\1C\1Cv8\

Если же ваша база работает в клиент-серверном варианте, выполните следующие действия:

  1. Остановите службу 1C:Enterprise Server.
  2. Перейдите в каталог данных сервера (обычно это C:\Program Files\1cv8\srvinfo).
  3. Найдите папку вашей информационной базы и удалите в ней содержимое папки snccntx.
  4. Запустите службу заново.

Дополнительные рекомендации по тестированию

Перед началом обновления мы настоятельно рекомендуем провести процедуру «Тестирование и исправление». Рассмотрим, какие параметры стоит выбрать:

Это позволит убедиться, что ошибка XDTO не вызвана физическим повреждением структуры таблиц базы данных, а является именно проблемой несоответствия версий парсера XML в платформе.

Подведем итог: проблема useQueryGroupIfPossible решается исключительно за счет использования более свежих релизов платформы 1С для выполнения самой процедуры обновления конфигурации. Использование метода «транзита» через новую платформу позволяет успешно обновить даже те базы, которые по каким-то причинам привязаны к старым системным требованиям.

← На главную