Как восстановить поддержку конфигурации 1С:УПП, если платформа не предлагает встать на поддержку

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

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

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

Анализируем причину: почему платформа не видит поставщика

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

Основная ошибка кроется в природе самого файла .cf. Платформа 1С различает несколько типов конфигураций внутри файлов:

  1. Основная конфигурация: то, что мы видим в дереве метаданных.
  2. Конфигурация поставщика: скрытый эталон, который хранится внутри базы и по которому система понимает, какие объекты изменены, а какие — нет.

Когда мы сохраняем конфигурацию через меню Конфигурация — Сохранить конфигурацию в файл, мы выгружаем основную конфигурацию. Даже если в ней есть «замочки», для системы это сторонний файл. Чтобы платформа предложила встать на поддержку, ей нужен именно файл конфигурации поставщика. Рассмотрим подробнее, как его получить.

Шаг 1. Правильная подготовка эталонного файла

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

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

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

Шаг 2. Восстановление поддержки через Сравнение/Объединение

Теперь, когда у нас есть правильный файл, разберем процесс постановки на поддержку по шагам. Этот метод предпочтительнее полной загрузки конфигурации (LoadCfg), так как он позволяет сохранить ваши доработки в 1С:УПП.

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

Шаг 3. Особенности работы с Хранилищем конфигурации

Проанализируем ситуацию, если база подключена к Хранилищу конфигурации. Это накладывает серьезные ограничения на манипуляции с поддержкой. Посмотрим на важные правила:

Рекомендуем следующий алгоритм: сначала выполните восстановление поддержки на копии базы, отключенной от хранилища. Убедитесь, что все «замочки» на месте и конфигурация поставщика соответствует нужному релизу. Затем в основной базе, подключенной к хранилищу, выполните захват корня и сделайте Конфигурация — Загрузить конфигурацию из файла, выбрав исправленный .cf. Это наиболее надежный способ обновить структуру хранилища.

Разберем мифы о версиях при восстановлении поддержки

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

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

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

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

Для закрепления материала рассмотрим структуру действий в виде таблицы объектов:


// Логическая последовательность действий в терминах функций платформы:
Если ТекущаяКонфигурация.НаПоддержке() = Ложь Тогда
    ФайлПоставщика = ПолучитьИзЭталона("SupplierConfig.cf");
    СравнитьИОбъединить(ФайлПоставщика, РежимПостановкиНаПоддержку);
КонецЕсли;

Не забывайте об очистке кэша. Если после всех манипуляций вы все еще не видите иконок поддержки, закройте Конфигуратор и удалите содержимое папок в %AppData%\1C\1Cv8. Это заставит платформу пересчитать состояние объектов метаданных и корректно отобразить статус поддержки вашей 1С:УПП.

← На главную