Привет, Хабр!
Выполнял я недавно обновление 1С:Документооборот. Много доработок, расширения. Но самое плохое – конфигурации поставщика нет в списках 1С, и не хочет с этой версии ни на что обновляться.

Возился долго. На копии удалось всё победить, проверили – работает. При старте только ругается:

Стал я рабочую базу обновлять. Вариант оставался только один: выгрузил конфигурацию из копии, загрузил в рабочую. И жду, когда пользователи выйдут на ночь, и я на базу конфигурацию обновить смогу.
А тут как раз Бухгалтерию параллельно обновляли, и она тот же вопрос ставит, но в резких формах: совсем работать отказывается. Тормознули моё обновление на ночь и обновили платформу с 24 на 27.
На следующий день расширения загрузил новые – и на обновление базы поставил. Проходит полтора часа, и вылезает вот такая ошибка (сообщение - backend - src\backend\src\DBStruImpl.cpp (4257)):

Повторил ещё раз - то же самое.
Конфигурация уже стоит на рабочей, но на базу не обновляется. Технологическое окно закончилось, так и оставил. С этой базы далее делал копии и ставил эксперименты.
Днём полез в интернеты. Нашёл обсуждение в форуме. Текст тот же, а номер ошибки другой (не как в моём сообщении). В комментариях нашёл зарегистрированную ошибку № 70062326. Обращаю внимание: в версии 24 ошибка исправлена, а про 27 – ни слова.

Вроде логично: 27 платформа появилась после исправления ошибки в 24 – значит, в 27 быть ошибки не должно. Но она есть. По описанию – связана с расширениями. Но расширения я просто убрать не могу: там данные есть. Значит, пытаюсь как-то иначе обойтись:
Поправил системный файл, про который в комментариях пишут – неудача, та же ошибка.
Чистка всех кэшей – неудача.
Попробовал сравнением конфигураций – неудача.
Выгрузка/загрузка dt – неудача.
Выполнил ТиИ – неудача.
Спросил у коллег – идей почти нет.
Может, у вас идеи есть? У меня не было, но старался, думал как мог, и появлялись новые варианты:
Загрузил через файлы – неудача.
Установил 24 платформу, сделал копию рабочей, попробовал обновить – неудача.
Расширения на копии удалил, обновляю – неудача.
И каждая попытка – не менее 2 часов. Было ещё несколько разных идей. И везде вылезала неугомонная ошибка.
Потом подумал: а вдруг конфигурация поставщика битая? Надо проверить. Сделал копию, в ней рабочую конфигурацию сравнил с конфигурацией базы

Все флажки оставил, обновил на базу. Конфигурация поставщика осталась теперь новая, а рабочая подгрузилась из базы – старая.
Обновляю на базу - установилось. Значит, конфигурация поставщика ни при чём.
Сделал новую копию, снова обновил из базы. Но теперь на базу не обновлял, а сравнением обновил до нужной, финальной конфигурации.
Теперь на базу конфигурация обновилась. Победа!!! Базу отдал заждавшимся пользователям.
А меня уже азарт подгоняет найти, что же такое было в этой конфигурации.
И началось половинное деление. Делал копии "необновляемой" базы, проводил сравнение рабочей с конфигурацией базы, изменяя состав флажков. Если не ставится – ещё добавляю объекты из базы. Если поставилось – приходится снова копию восстанавливать.
И причина нашлась! В новой типовой конфигурации - той, на которую я обнвлялся, стоял режим совместимости: платформа 24.
На платформе 24, естественно, нет режима совместимости с собой же. Целевая финальная конфигурация была сделана мной на 24 платформе, и у неё записался такой режим. Как он записывается физически, я слабо представляю, но по всей видимости помнит где-то, что это не просто путой режим совместимости. А вот загружался cf в рабочую конфигурацию уже на платформе 27. И вот такая редкая совместимость непоправимо портилось при переносе конфигурации, становясь жёсткой несовместимостью.
Только когда я это выяснил, вспомнил, что в комментариях к статье на инфостарте упоминался сброс совместимости как возможное решение. Но так как я проверял другие варианты, очередь так и не дошла до него. А жаль. В какой-то момент правильно было не придумывать свои варианты, а проверить предложенный.
Выводы:
Все ошибки такого вида, независимо от номера, могут быть связаны с режимом совместимости.
Решение – перевыбор режима совместимости. Причём устанавливать надо только тот, который был ранее: 24 – для платформы 27, а для 24 платформы – без совместимости.
При установке релиза с режимом совместимости, равным или новее применяемой платформы, надо соблюдать осторожность и контролировать значение режима совместимости.
Надо быть последовательным и перебрать все найденные и предложенные варианты решений до конца.
