При сопровождении нетиповых или кастомизированных решений на платформе «1С:Предприятие 8» разработчики часто сталкиваются со сложной архитектурой баз данных. Типичный пример — использование основной типовой конфигурации (например, 1С:Зарплата и Управление Персоналом) совместно с интегрированным в неё отраслевым или специализированным решением от стороннего поставщика. В такой ситуации база данных находится на поддержке сразу у нескольких разработчиков.
Проблемы начинаются тогда, когда сторонний поставщик присылает обновление не в виде стандартного файла обновления (.cfu), а в виде обычного файла конфигурации (.cf). При попытке обновить систему стандартным путем через меню поддержки программа выдает крайне неприятную ошибку: «Файл не содержит доступных обновлений». В этой статье мы подробно разберем, почему возникает эта ошибка, как решить проблему с помощью «лайфхака» с чистой базой, а также рассмотрим альтернативные варианты обновления и современные стандарты разработки.
Для того чтобы понять природу этой ошибки, необходимо проанализировать логику работы платформы 1С с механизмами поддержки. Ошибка возникает из-за жестких требований системы к файлам, которые используются в процедуре обновления:
.cf, полученный с помощью команды Сохранить конфигурацию в файл из своей рабочей базы. Такой файл содержит структуру метаданных, но в нем отсутствует специальный заголовок конфигурации поставщика. Платформа 1С не видит в заголовках этого файла признаков «правильного» дистрибутива поддержки и отказывается принимать его для автоматического обновления..cf, в которые частично включены объекты основной конфигурации (например, некоторые документы ЗУП, как упоминалось на форуме). Это еще больше запутывает платформу при попытке автоматического сопоставления.Ниже мы разберем по шагам проверенное и наиболее безопасное решение этой проблемы.
Этот метод основан на рекомендации опытных специалистов и позволяет «вытащить» корректный файл поставщика, который платформа гарантированно примет без ошибок. Рассмотрим этот процесс во всех деталях.
Шаг 1. Создание временной пустой базы
Запустите стартер 1С и добавьте в список новую информационную базу. При создании выберите вариант «Создание информационной базы без конфигурации...». Назовите ее, например, «Буфер для обновления» и укажите любой пустой каталог на диске. Запустите созданную базу в режиме Конфигуратор.
Шаг 2. Загрузка присланного файла
В открывшемся конфигураторе пустой базы перейдите в меню Конфигурация -> Открыть конфигурацию (если она еще не открыта). Затем выберите пункт меню Конфигурация -> Загрузить конфигурацию из файла.... В диалоговом окне укажите тот самый проблемный файл .cf, который прислал вам поставщик дополнительного решения. Согласитесь на полную замену конфигурации. Этот процесс принудительно развернет структуру метаданных вместе со всеми исходными правилами поддержки во временной базе.
Шаг 3. Извлечение оригинального файла поставщика
Теперь, когда конфигурация загружена, перейдем к самому главному действию:
Конфигурация -> Поддержка -> Настройка поддержки....vendor_clean_update.cf) и сохраните его.Вы только что получили «очищенный» файл конфигурации поставщика, который содержит корректный заголовок обновления и лишен лишнего «мусора».
Шаг 4. Обновление основной рабочей базы
Закройте временную базу и откройте вашу реальную рабочую базу в режиме Конфигуратора. Обязательно сделайте резервную копию (выгрузку .dt) перед началом любых манипуляций!
После создания копии выполните следующие действия:
Конфигурация -> Поддержка -> Обновить конфигурацию....vendor_clean_update.cf.Этот способ позволяет обновить структуру метаданных поддержки, не нарушая логику работы встроенных механизмов 1С.
Если предыдущий способ по какой-то причине не дал нужного результата или если вам необходимо детально проконтролировать изменения в коде, мы можем применить механизм прямого сравнения и объединения. Проанализируем, как сделать это правильно:
Конфигурация -> Сравнить, объединить с конфигурацией из файла... и выберите присланный поставщиком исходный .cf.ЗУП), вам необходимо **снять флажки со всех объектов основной конфигурации**, которые вы не хотите затереть или откатить к старой версии. Оставьте флажки исключительно на тех объектах, которые относятся к дополнительному решению.Выполнить. В окне настройки правил поддержки для объединяемых объектов укажите режим «Редактируется с сохранением поддержки» для измененных объектов, чтобы не потерять возможность дальнейших обновлений.Иногда перед разработчиком стоит задача обновить исключительно внутреннюю модель конфигурации поставщика (хранящуюся в базе для последующих сравнений), не внося при этом никаких изменений в работающий программный код и метаданные основной базы. Это необходимо для того, чтобы зафиксировать новый номер версии в системе поддержки и корректно проходить последующие циклы обновлений.
Выполним это действие по следующему алгоритму:
Результат: Реальный код, экранные формы, реквизиты и справочники в вашей базе не изменятся ни на один символ. Однако платформа зафиксирует факт обновления конфигурации поставщика до нового релиза. Теперь при следующих обновлениях система будет знать, что вы находитесь на актуальной версии.
Внедрение дополнительной конфигурации стороннего разработчика непосредственно в тело основной конфигурации (например, интеграция отраслевых модулей внутрь типовой ЗУП) — это устаревший, сложный и трудоемкий в поддержке подход. При каждом обновлении главного решения вам приходится тратить часы на то, чтобы случайно не повредить или не затереть объекты второго поставщика.
Мы настоятельно рекомендуем рассмотреть возможность перехода на современный стандарт разработки — Расширения конфигурации (файлы с расширением .cfe):
ЗУП остается полностью типовой и закрытой на замок. Вы сможете обновлять ее в автоматическом режиме за несколько кликов.Администрирование -> Печатные формы, отчеты и обработки -> Расширения, что полностью исключает риски повреждения основных данных или сбоя типовых механизмов 1С.