Как вырезать отраслевое решение ХБК из 1С:УПП и вернуть базу к типовому виду

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

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

Анализ структуры отраслевой конфигурации

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

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


//{modif
// Процедура добавления отраслевых реквизитов на форму
Процедура ХБКП_ДобавитьНетиповыеЭлементы()
    
    мВерхРяда = 28;
    мВысотаРяда = 19;
    
    // Работаем с основной панелью формы
    мПанель = ЭлементыФормы.ОсновнаяПанель;
    
    // Добавим новую страницу для отраслевых реквизитов ХБКП
    СтраницаПанели = ХБП_Дополнительный.ДобавитьСтраницуХБКП(ЭлементыФормы, мПанель, 642);
    
    // Добавление специфического поля "Склад покупателя"
    Элемент = ХБП_Дополнительный.ДобавитьЭлемент(ЭлементыФормы, "Надпись", "НадписьСкладПокупателя", 12, мВерхРяда, 107, мВысотаРяда, мПанель);
    Элемент.Заголовок = "Склад покупателя:";
    
    Элемент = ХБП_Дополнительный.ДобавитьЭлемент(ЭлементыФормы, "ПолеВвода", "СкладПокупателя", 113, мВерхРяда, 194, мВысотаРяда, мПанель);
    
    // Возвращаем фокус на исходную страницу
    мПанель.ТекущаяСтраница = СтраницаПанели;
    
КонецПроцедуры //modif}

Такие вставки могут находиться в сотнях объектов. Простое удаление отраслевых объектов через дерево метаданных приведет к тому, что база перестанет компилироваться из-за обращений к несуществующим процедурам типа ХБКП_ДобавитьНетиповыеЭлементы().

Шаг 1: Снятие отраслевой конфигурации с поддержки

Первым делом нам необходимо избавиться от зависимости на уровне конфигурации поставщика. Разберем порядок действий в Конфигураторе:

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

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

Шаг 2: Приведение конфигурации к типовому виду (Метод загрузки CF)

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

Важно: Все манипуляции проводим только на копии базы!

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

Этот метод разом удалит все лишние объекты, которых нет в типовой УПП, и очистит модули от отраслевых вставок. Однако будьте осторожны: если в отраслевых объектах (регистрах или справочниках) хранились важные данные, они будут безвозвратно удалены вместе с объектами метаданных.

Шаг 3: Ручная чистка метаданных и поиск зависимостей

Если метод полной загрузки cf кажется слишком рискованным, проанализируем ситуацию вручную. Нам потребуется очистить:

  1. Свойства конфигурации: Часто в отраслевых решениях изменены имя конфигурации, логотип и заставка. Зайдем в свойства корневого элемента конфигурации и вручную переименуем её обратно в УправлениеПроизводственнымПредприятием.
  2. Общие картинки: Найдем объекты Заставка и Логотип. Если они заменены отраслевыми, их нужно вернуть к стандартным или удалить.
  3. Поиск по тексту: Воспользуемся глобальным поиском по всей конфигурации. Ищем префиксы ХБК, ХБ_, а также маркеры modif. Все найденные вызовы в типовых модулях должны быть удалены.

Проблема ссылочной целостности

Проанализируем ситуацию с данными. Отраслевые решения часто добавляют измерения в типовые регистры накопления (например, в Затраты или Продажи). При удалении этих измерений через сравнение/объединение структура таблиц БД будет перестроена.

Рекомендация: Перед окончательным удалением отраслевых объектов выполните Тестирование и исправление (ТиИ). Убедитесь, что в базе нет битых ссылок на объекты, которые вы собираетесь удалить. Если отраслевые данные важны, их необходимо программно перенести в типовые реквизиты или дополнительные сведения до момента очистки конфигурации.

Итоговые проверки

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

Таким образом, процесс вырезания отраслевки — это не только работа с кнопками "Снять с поддержки", но и глубокий аудит кода и данных. Использование чистого cf файла является наиболее быстрым способом, но требует предварительной подготовки данных к удалению нетиповых реквизитов.

← На главную