Работа с устаревшими отраслевыми решениями, построенными на базе 1С:Управление производственным предприятием (УПП), часто превращается в проблему для администраторов и программистов. Отраслевые конфигурации (например, ХБК — Хлебобулочный комбинат) добавляют свои объекты и модули поверх типовых, что значительно усложняет процесс обновления. Если отраслевой функционал перестал использоваться, логичным шагом будет его «вырезание» для возврата к поддержке только типовой УПП. В этой статье мы подробно разберем, как очистить базу от отраслевых надстроек и какие технические нюансы необходимо учесть.
Прежде чем приступать к удалению, проанализируем, как именно отраслевое решение интегрировано в УПП. Обычно такие конфигурации имеют два поставщика: саму фирму 1С (УПП) и разработчика отраслевого решения (в нашем случае ХБК). Отраслевая часть может быть как «главнее» типовой, так и идти параллельно. Выясним причину сложности: разработчики отраслевых решений часто внедряют свой код непосредственно в типовые модули УПП, используя комментарии-маркеры.
Рассмотрим пример кода, который часто встречается в формах документов таких баз. Разработчики используют программное добавление элементов, чтобы не перерисовывать типовые формы вручную:
//{modif
// Процедура добавления отраслевых реквизитов на форму
Процедура ХБКП_ДобавитьНетиповыеЭлементы()
мВерхРяда = 28;
мВысотаРяда = 19;
// Работаем с основной панелью формы
мПанель = ЭлементыФормы.ОсновнаяПанель;
// Добавим новую страницу для отраслевых реквизитов ХБКП
СтраницаПанели = ХБП_Дополнительный.ДобавитьСтраницуХБКП(ЭлементыФормы, мПанель, 642);
// Добавление специфического поля "Склад покупателя"
Элемент = ХБП_Дополнительный.ДобавитьЭлемент(ЭлементыФормы, "Надпись", "НадписьСкладПокупателя", 12, мВерхРяда, 107, мВысотаРяда, мПанель);
Элемент.Заголовок = "Склад покупателя:";
Элемент = ХБП_Дополнительный.ДобавитьЭлемент(ЭлементыФормы, "ПолеВвода", "СкладПокупателя", 113, мВерхРяда, 194, мВысотаРяда, мПанель);
// Возвращаем фокус на исходную страницу
мПанель.ТекущаяСтраница = СтраницаПанели;
КонецПроцедуры //modif}
Такие вставки могут находиться в сотнях объектов. Простое удаление отраслевых объектов через дерево метаданных приведет к тому, что база перестанет компилироваться из-за обращений к несуществующим процедурам типа ХБКП_ДобавитьНетиповыеЭлементы().
Первым делом нам необходимо избавиться от зависимости на уровне конфигурации поставщика. Разберем порядок действий в Конфигураторе:
После этого действия объекты отраслевки останутся в базе, но они больше не будут защищены от изменений и не будут учитываться при автоматическом обновлении через cfu файлы отраслевого решения. Конфигурация УПП при этом должна остаться на поддержке (с возможностью изменения или без — в зависимости от ваших задач).
Самый радикальный и эффективный способ очистки — полная замена конфигурации на типовую. Посмотрим, как это сделать правильно, чтобы не потерять данные типовых объектов.
Важно: Все манипуляции проводим только на копии базы!
cf файл типовой УПП того же самого релиза, до которого мы только что обновились.Этот метод разом удалит все лишние объекты, которых нет в типовой УПП, и очистит модули от отраслевых вставок. Однако будьте осторожны: если в отраслевых объектах (регистрах или справочниках) хранились важные данные, они будут безвозвратно удалены вместе с объектами метаданных.
Если метод полной загрузки cf кажется слишком рискованным, проанализируем ситуацию вручную. Нам потребуется очистить:
УправлениеПроизводственнымПредприятием.Заставка и Логотип. Если они заменены отраслевыми, их нужно вернуть к стандартным или удалить.ХБК, ХБ_, а также маркеры modif. Все найденные вызовы в типовых модулях должны быть удалены.Проанализируем ситуацию с данными. Отраслевые решения часто добавляют измерения в типовые регистры накопления (например, в Затраты или Продажи). При удалении этих измерений через сравнение/объединение структура таблиц БД будет перестроена.
Рекомендация: Перед окончательным удалением отраслевых объектов выполните Тестирование и исправление (ТиИ). Убедитесь, что в базе нет битых ссылок на объекты, которые вы собираетесь удалить. Если отраслевые данные важны, их необходимо программно перенести в типовые реквизиты или дополнительные сведения до момента очистки конфигурации.
После того как конфигурация стала визуально «чистой», необходимо выполнить следующие действия:
Таким образом, процесс вырезания отраслевки — это не только работа с кнопками "Снять с поддержки", но и глубокий аудит кода и данных. Использование чистого cf файла является наиболее быстрым способом, но требует предварительной подготовки данных к удалению нетиповых реквизитов.