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

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

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

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

Выясняем причину: почему возникает ошибка «Файл не содержит доступных обновлений»?

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

  1. Разница между файлом сохранения и официальной поставкой. Поставщик мог прислать вам обычный файл .cf, полученный с помощью команды Сохранить конфигурацию в файл из своей рабочей базы. Такой файл содержит структуру метаданных, но в нем отсутствует специальный заголовок конфигурации поставщика. Платформа 1С не видит в заголовках этого файла признаков «правильного» дистрибутива поддержки и отказывается принимать его для автоматического обновления.
  2. Несоответствие идентификаторов и цепочки версий. Платформа строго контролирует историю версий (так называемую цепочку релизов). Если присланный файл не содержит явных указаний на то, что он является обновлением для вашей текущей установленной версии дополнительного решения, система заблокирует процесс, чтобы предотвратить затирание данных.
  3. Наличие объектов основной конфигурации. Часто сторонние разработчики присылают файлы .cf, в которые частично включены объекты основной конфигурации (например, некоторые документы ЗУП, как упоминалось на форуме). Это еще больше запутывает платформу при попытке автоматического сопоставления.

Ниже мы разберем по шагам проверенное и наиболее безопасное решение этой проблемы.

Решение по шагам: выгрузка «чистой» конфигурации поставщика из временной базы

Этот метод основан на рекомендации опытных специалистов и позволяет «вытащить» корректный файл поставщика, который платформа гарантированно примет без ошибок. Рассмотрим этот процесс во всех деталях.

Шаг 1. Создание временной пустой базы

Запустите стартер 1С и добавьте в список новую информационную базу. При создании выберите вариант «Создание информационной базы без конфигурации...». Назовите ее, например, «Буфер для обновления» и укажите любой пустой каталог на диске. Запустите созданную базу в режиме Конфигуратор.

Шаг 2. Загрузка присланного файла

В открывшемся конфигураторе пустой базы перейдите в меню Конфигурация -> Открыть конфигурацию (если она еще не открыта). Затем выберите пункт меню Конфигурация -> Загрузить конфигурацию из файла.... В диалоговом окне укажите тот самый проблемный файл .cf, который прислал вам поставщик дополнительного решения. Согласитесь на полную замену конфигурации. Этот процесс принудительно развернет структуру метаданных вместе со всеми исходными правилами поддержки во временной базе.

Шаг 3. Извлечение оригинального файла поставщика

Теперь, когда конфигурация загружена, перейдем к самому главному действию:

  1. Откройте меню Конфигурация -> Поддержка -> Настройка поддержки....
  2. В открывшемся окне вы увидите дерево конфигурации и список поставщиков, от которых зависит эта система. Найдите в списке строку вашего дополнительного поставщика.
  3. Выделите эту строку и нажмите кнопку «Сохранить в файл».
  4. Укажите имя для нового файла (например, vendor_clean_update.cf) и сохраните его.

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

Шаг 4. Обновление основной рабочей базы

Закройте временную базу и откройте вашу реальную рабочую базу в режиме Конфигуратора. Обязательно сделайте резервную копию (выгрузку .dt) перед началом любых манипуляций!

После создания копии выполните следующие действия:

  1. Перейдите в меню Конфигурация -> Поддержка -> Обновить конфигурацию....
  2. В окне выбора источника обновления выберите вариант «Выбор файла обновления вручную» и нажмите «Далее».
  3. Укажите путь к только что созданному файлу vendor_clean_update.cf.
  4. Платформа успешно распознает файл. Проверьте сопоставление версий в открывшемся окне и подтвердите процедуру обновления.

Этот способ позволяет обновить структуру метаданных поддержки, не нарушая логику работы встроенных механизмов 1С.

Альтернативный метод: Сравнение и объединение с постановкой на поддержку

Если предыдущий способ по какой-то причине не дал нужного результата или если вам необходимо детально проконтролировать изменения в коде, мы можем применить механизм прямого сравнения и объединения. Проанализируем, как сделать это правильно:

  1. Откройте рабочую базу в конфигураторе. Нажмите Конфигурация -> Сравнить, объединить с конфигурацией из файла... и выберите присланный поставщиком исходный .cf.
  2. Если связь объектов дополнительной конфигурации с поддержкой была утеряна, платформа выведет предупреждение и предложит поставить конфигурацию на поддержку. Обязательно согласитесь с этим предложением.
  3. В появившемся окне сравнения и объединения нужно быть предельно внимательными. Так как присланный файл может содержать объекты типовой конфигурации (например, ЗУП), вам необходимо **снять флажки со всех объектов основной конфигурации**, которые вы не хотите затереть или откатить к старой версии. Оставьте флажки исключительно на тех объектах, которые относятся к дополнительному решению.
  4. Нажмите кнопку Выполнить. В окне настройки правил поддержки для объединяемых объектов укажите режим «Редактируется с сохранением поддержки» для измененных объектов, чтобы не потерять возможность дальнейших обновлений.

Важный прием: Обновление конфигурации поставщика «вхолостую»

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

Выполним это действие по следующему алгоритму:

  1. Запустите стандартную процедуру обновления через меню поддержки и выберите файл обновления.
  2. Когда платформа завершит анализ и откроет окно сравнения основной конфигурации и новой конфигурации поставщика, снимите абсолютно все флажки со всех объектов (можно воспользоваться контекстным меню и снять пометку со всего дерева метаданных).
  3. Нажмите кнопку «Выполнить».

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

Рекомендация на будущее: Использование расширений конфигурации

Внедрение дополнительной конфигурации стороннего разработчика непосредственно в тело основной конфигурации (например, интеграция отраслевых модулей внутрь типовой ЗУП) — это устаревший, сложный и трудоемкий в поддержке подход. При каждом обновлении главного решения вам приходится тратить часы на то, чтобы случайно не повредить или не затереть объекты второго поставщика.

Мы настоятельно рекомендуем рассмотреть возможность перехода на современный стандарт разработки — Расширения конфигурации (файлы с расширением .cfe):

← На главную