Что делать, если при обновлении 1С предлагается неверная версия конфигурации?

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

В процессе сопровождения сложных и сильно кастомизированных баз, таких как «1С:Управление производственным предприятием» (УПП) ред. 1.3, программисты часто сталкиваются с ситуацией, когда штатный механизм обновления перестает работать корректно. Система либо не видит файлы обновления (.cfu), либо предлагает «откатиться» на версию, которая была актуальна несколько лет назад. Рассмотрим подробно, почему возникает эта проблема и как ее безопасно решить, сохранив при этом все свои доработки.

Почему 1С предлагает не ту версию? Разбираем теорию трех конфигураций

Для понимания сути проблемы разберем внутреннее устройство системы 1С. В любой базе, стоящей на поддержке, одновременно существуют три конфигурации:

  1. Основная конфигурация: Это та часть, с которой вы работаете в конфигураторе. Именно в нее вносятся изменения и доработки.
  2. Конфигурация базы данных: Реально работающая структура в SQL или файловом варианте, с которой взаимодействуют пользователи в режиме «Предприятие».
  3. Конфигурация поставщика: Это «эталонная» конфигурация от фирмы 1С, которая хранится внутри вашей базы как скрытый объект. Именно на ее номер версии ориентируется помощник обновления.

Проблема, описанная в теме, возникает из-за того, что предыдущие разработчики обновляли базу некорректно. Вместо использования штатного режима «Конфигурация — Поддержка — Обновить конфигурацию», они просто использовали «Сравнение и объединение». В результате код в «Основной конфигурации» менялся, а «Конфигурация поставщика» застряла на старом релизе (например, 1.3.21.1). Когда вы пытаетесь применить файл обновления .cfu, система видит, что ваша конфигурация поставщика имеет версию 1.3.21.1, и предлагает только те обновления, которые предназначены именно для этого старого релиза.

Проверка текущего состояния поддержки

Прежде чем приступать к активным действиям, проанализируем текущую ситуацию в вашей базе. Перейдем в меню «Конфигурация — Поддержка — Настройка поддержки». В открывшемся окне в верхней части вы увидите колонку «Версия». Если там указано 1.3.21.1, а в окне «О программе» или в функции ВерсияБиблиотеки() фигурирует 1.3.91.2, значит, налицо разрыв версий между реально работающим кодом и учетными данными поставщика.

Посмотрим на пример функции, которая часто вводит в заблуждение:


Функция ВерсияБиблиотеки()
    // Этот номер версии может быть изменен вручную программистом,
    // но он не влияет на работу механизма обновления конфигуратора.
    Возврат "1.3.91.2";
КонецФункции

Помните: номер версии в коде — это просто строка. Настоящий контроль версий происходит на уровне метаданных поддержки.

Пошаговое решение: Обновление конфигурации поставщика через полный CF-файл

Поскольку стандартные файлы обновления .cfu требуют строгой последовательности, они нам не подходят. Нам необходимо «подтянуть» версию поставщика сразу до актуального состояния. Для этого выполним следующие действия:

  1. Подготовка: Найдите или скачайте полный дистрибутив (файл 1cv8.cf) той версии, которая фактически сейчас установлена у вас в основной конфигурации (в нашем примере это 1.3.91.2).
  2. Запуск обновления: Перейдем в меню «Конфигурация» — «Поддержка» — «Обновить конфигурацию».
  3. Выбор источника: Выберем вариант «Выбор файла обновления» и укажем путь к нашему полному .cf файлу версии 1.3.91.2.
  4. Подтверждение: Система увидит, что конфигурация в файле отличается от конфигурации поставщика, и предложит обновиться. На вопрос «Выполнить обновление конфигурации поставщика?» отвечаем «Да».

Критически важный момент: Сравнение и объединение

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

В окне сравнения ОБЯЗАТЕЛЬНО снимите все галочки! Мы не хотим менять код основной конфигурации (он и так у нас версии 1.3.91.2), нам нужно только обновить «подложку» — конфигурацию поставщика.

Рассмотрим алгоритм в окне сравнения:

После выполнения этой операции система обновит только версию поставщика в таблицах метаданных. Теперь, если вы снова зайдете в «Настройку поддержки», вы увидите долгожданную версию 1.3.91.2. Теперь штатные файлы обновления .cfu для версии 1.3.92.1 станут видимыми и доступными для установки.

Что делать, если версия все равно «не встает»?

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

  1. Сделайте полную резервную копию базы (это обязательно!).
  2. В окне «Настройка поддержки» нажмите кнопку «Снять с поддержки». Конфигурация станет полностью редактируемой.
  3. Затем выберите «Конфигурация — Сравнить, объединить с конфигурацией из файла» и выберите тот самый полный .cf версии 1.3.91.2.
  4. На вопрос о постановке на поддержку ответьте утвердительно.
  5. Важно: Как и в предыдущем методе, снимите ВСЕ галочки в окне сравнения, чтобы сохранить свои доработки. После этого база снова будет на поддержке с правильным номером версии.

Риски и проверка данных (БСП)

Проанализируем ситуацию после успешного выравнивания версий. Есть риск, что предыдущие программисты перенесли только программный код модулей, но не создали новые реквизиты, регистры или справочники, которые появились в типовой конфигурации между версиями 1.3.21 и 1.3.91. Это называется «неполное обновление метаданных».

Проверим это следующим образом:

Также проанализируем работу Библиотеки Стандартных Подсистем (БСП). При первом запуске в режиме «Предприятие» после ваших манипуляций должны запуститься обработчики обновления. Проверить их статус можно через консоль запросов или в регистре сведений СведенияОбОбновлении (название может варьироваться). Если обработчики не запустились, возможно, потребуется принудительно вызвать процедуру обновления, иначе новые функции (например, расчет НДС 20%) не будут работать корректно в пользовательском интерфейсе.

Резюме и рекомендации

Мы выяснили, что основной причиной проблемы является разрыв между основной конфигурацией и конфигурацией поставщика. Для исправления ситуации мы использовали метод обновления через полный .cf файл с отключением всех изменений в окне сравнения.

Золотые правила при такой работе:

  1. Всегда делайте BackUp перед любыми манипуляциями с поддержкой.
  2. Используйте только полные .cf файлы для выравнивания версий.
  3. Никогда не оставляйте включенными флажки в окне сравнения, если ваша цель — только обновить номер версии поставщика.
  4. После процедуры очистите кэш конфигуратора и сервера, чтобы избежать призрачных ошибок.

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

← На главную