При сопровождении нетиповых конфигураций 1С (в нашем примере — 1С:Бухгалтерия государственного учреждения 2.0) специалисты часто сталкиваются с ситуацией, когда стандартное обновление через файл .cfu становится невозможным. Система выдает ошибку, сообщая, что текущая версия конфигурации не соответствует ожидаемой. При детальном анализе выясняется, что «версия конфигурации», которую видит пользователь в справке «О программе», отличается от «версии конфигурации поставщика» в окне настройки поддержки.
В данной статье мы подробно разберем, почему возникает такая ситуация, как правильно выровнять версии и какие методы являются наиболее безопасными для целостности ваших данных и доработок.
Разберем ситуацию: основная конфигурация базы имеет версию 2.0.65.20, а конфигурация поставщика застряла на 2.0.62.4. Это происходит, когда предыдущие обновления выполнялись некорректно. Рассмотрим типичную ошибку: вместо использования штатной процедуры «Конфигурация — Поддержка — Обновить конфигурацию», кто-то выполнил простое «Сравнение и объединение с конфигурацией из файла».
Проанализируем техническую сторону: в базе данных 1С хранятся три состояния конфигурации:
При простом объединении меняется только «Основная конфигурация», а «Конфигурация поставщика» остается старой версии. В итоге файл обновления .cfu, который ищет именно эталонную версию для применения своих патчей, не находит нужную «точку опоры» и прекращает работу.
Рассмотрим самый безопасный способ, который позволяет синхронизировать версии без радикального снятия с поддержки. Нам понадобится полный дистрибутив (файл .cf) той версии, которая фактически сейчас установлена как основная (в нашем случае 2.0.65.20).
Выполним следующие шаги вместе:
.dt)..cf файлу текущей версии (2.0.65.20).После этой процедуры версия поставщика станет 2.0.65.20. Теперь мы можем спокойно запускать штатное обновление на следующий релиз 2.0.67.22 через обычный .cfu.
Если первый метод по каким-то причинам не помогает или база была сильно повреждена предыдущими манипуляциями, рассмотрим метод, который использовал автор темы. Он заключается в снятии базы с поддержки и повторной постановке.
Разберем алгоритм по шагам:
.cf файл нужной версии (той, на которую хотим «равняться»).Выясним причину, почему не стоит бездумно использовать режим «С возможностью изменения для всех объектов». В сообщении №16 автор темы включил этот режим для всей конфигурации. Рассмотрим, к чему это может привести:
Во-первых, это значительно замедляет процесс последующих обновлений. При каждом сравнении система будет детально проверять каждый объект, даже если он типовой. Во-вторых, теряется визуальный контроль. В окне сравнения вы перестанете видеть, какие объекты реально изменены вами, а какие просто помечены как «изменяемые». В-третьих, есть риск случайного удаления или затирания важных исправлений от 1С в тех модулях, которые вы не планировали трогать.
Рекомендуемая практика:
Проанализируем ситуацию с кэшем. Иногда 1С может показывать неверные номера версий из-за локального кэша конфигуратора. Перед проведением сложных работ по поддержке выполните следующие действия:
%AppData%\1C\1Cv8).Использование пакетного режима через командную строку также может помочь опытным администраторам. Например, команда для принудительного обновления конфигурации выглядит так:
1cv8.exe DESIGNER /F "ПутьКБазе" /N "Логин" /P "Пароль" /UpdateCfg "ПутьКФайлу.cf"
Однако для визуального контроля процесса выравнивания версий лучше использовать интерактивные методы, описанные выше.
Таким образом, мы выяснили, что разрыв версий — это решаемая проблема, требующая наличия полных дистрибутивов и аккуратности при работе с окном настройки поддержки. Помните, что корректное дерево конфигурации поставщика — залог легких обновлений в будущем.