Добрый день.
Имеется УТ 10.3 крайнего релиза с добавленным версионированием. Платформа 8.2.19.130

Сейчас на части документов, при попытки просмотреть версию документа валится по ошибке в этом коде:

```1c
    ЧтениеXML = Новый ЧтениеFastInfoSet;

    ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);

    // уровень позиции маркера в иерархии XML:
    // 0 - уровень не задан
    // 1 - первый элемент (имя объекта)
    // 2 - описание реквизита или табличной части
    // 3 - описание строки табличной части
    // 4 - описание поля строки табличной части
    УровеньЧтения = 0;

    МетаданныеОбъекта = Ссылка.Метаданные();
    ТабличныеЧастиМТД = МетаданныеОбъекта.ТабличныеЧасти;

    ТипЗначения = ";

    ТипЗначенияПоляТЧ = ";

    // основной цикл разбора по XML
    Пока ЧтениеXML.Прочитать() Цикл
```

Ошибка:

{Отчет.ОтчетПоИзменениямВерсийОбъектов.МодульОбъекта(1388)}: Ошибка при вызове метода контекста (Прочитать)

    Пока ЧтениеXML.Прочитать() Цикл

по причине:
Illegal array index when decoding EII

Ошибка возникает в разных документах.
Берем один заказ покупателя - открываем список версий - открываем первую попавшуюся - валится по ошибке. Перезаписываем документ, открываем вновь добавленную версию - та же ошибка.

Берем другой заказ покупателя - открываем список версий - открываем первую попавшуюся - версия открывается. Перезаписываем документ, открываем вновь добавленную версию - тоже открывается.

Не могу понять закономерность.
В отладчике в обоих случаях в качестве версии получаются двоичные данные для ЧтениеFastInfoSet. Пытался двоичные данные записать в файл и посмотреть хмл - там что-то похожее на структуру хмл но с кучей иероглифов.
Пробовал двоичные данные записать как строку и подсунуть в обычное Чтение ХМЛ - не понимает.

куда копать?
---
Они могли поменять формат так, что некоторые атрибуты могут записываться по разному в новой версии в зависимости от их значения. При этом некоторые значения будут одинаково записаны как в новом так и в старом формате
---
spezc, Тестирование и исправление делали?
---
мне кажется ТиИ здесь не при чем. ведь речь о файле ХМЛ, который храниться в виде двоичных данных в хранилище значений.
---
spezc, Дело в том, что, когда я гуляла по сервису ЭДО в типовых, у меня была та же ошибка, не ушла она, пока не поставила платформу последнюю из 8.2, то есть 8.2.19.130.
Может и тут какой-нить в платформе косяк по отношению к конфе(
---
spezc, аналогичная проблема, причем появилась после того, как конфигурация была обновлена из хранилища (доработанная УТ 10.3, версионирование аккуратно перенесено из БСП 2.2). Примечательно, что в хранилище версии объектов прекрасно открываются, а в рабочей базе - нет. Версии платформы используются одинаковые, конфигурации, по понятным причинам, идентичны. Чистка кеша не помогла. Еще вчера, до обновления, версионирование работало нормально, а сегодня не работает совсем. Изменения в хранилище касались в том числе и системы версионирования, Рабочая база была обновлена через динамическое обновление. Именно с этим и связываю проблему. Как лечить, пока неясно. Перезапустить сервер пока нет возможности.
---
Сообщение было скрыто модератором.
---
http://www.forum.mista.ru/topic.php?id=736260
---
уже находил эту ветку. у меня последняя актуальная платформа. единственно вариант - попробовать откатится на ту, что 8.2.19.80 (но она считается устаревшей для текущих релизов УТ 10.3).
---
Видно они, что то поменяли в формате FastInfoSet
---
так все дело то в том, что два соседних документа - у одного записывается версия и восстанавливается, у другого записывается и не восстанавливается
---
А нельзя настроить хранение в XML? Посмотри содержимое в каком нибудь редакторе
---
переписать код на запись версии в виде простого хмл (а не в FastInfoSet) несложно, и чтение простого ХМЛ тоже можно сделать (посути несколько строк кода поменять). однако получается уже не смогу читать версии, которые были сделаны до сегодняшнего дня
---
Если откатишься до 80 и перезапишешь все версии то сможешь.
---
хм... наверно вариант... хотя не самый лучший...
---
Они могли поменять формат так, что некоторые атрибуты могут записываться по разному в новой версии в зависимости от их значения. При этом некоторые значения будут одинаково записаны как в новом так и в старом формате
---
нашел. Это официальный баг платформы, причем в 8.2 исправлять не планируют.

https://partners.v8.1c.ru/forum/message/1361547

там же есть описание лечения:

в функции РазборПредставленияОбъектаXML общего модуля ВерсионированиеОбъектов найти строку:
    ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);

и вставить после неё текст:

```1c
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    Пока ЧтениеXML.Прочитать() Цикл
    ЗаписьXML.ЗаписатьТекущий(ЧтениеXML);
    КонецЦикла;
    СтрокаXML = ЗаписьXML.Закрыть();

    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(СтрокаXML);
```

но мне не помогло. все равно валится на Прочитать
---
Наверное советуют как в 80 перегнать в XML :-)
---
spezc, а можно поточнее описание ошибки? а то у меня доступа к партнерской части нет :-(
---
вообщем итог:
1. выгрузил базу в файловую
2. открыл базу на платформе 8.2.18...
3. прошелся по всем записям версий, прочитал хмл как ЧтениеFastInfoSet и перезаписал как обычный хмл.
4. в конфигурации запись и чтение версий пепеписал как обычный хмл.
5. загрузил в рабочую базу.
6. профит.
---
Спасибо. Вообще проблема версий бинарной сериализации она была всегда и не только в 1с. Самый универсальный формат это XML. Размер всегда можно ужать за счет сжатия.