В практике сопровождения программ 1С иногда возникают ситуации, когда необходимо изменить версию используемой конфигурации «сверху вниз», например, с КОРП на ПРОФ. Это может быть связано с изменением масштаба бизнеса, экономией на лицензиях или необходимостью внедрения отраслевого решения, которое базируется исключительно на версии ПРОФ. Основная сложность здесь заключается в том, чтобы сохранить все накопленные данные и оставить специфические объекты КОРП-версии в качестве «пользовательских доработок», при этом поставив общую часть метаданных на поддержку типовой ПРОФ.
В рамках данной статьи мы подробно разберем, как технически реализовать этот процесс, проанализируем риски потери данных в регистрах и выясним, как правильно манипулировать файлами конфигурации cf для достижения корректного результата.
Перед тем как приступать к активным действиям в конфигураторе, нам необходимо четко понимать, чем эти конфигурации отличаются на уровне структуры данных. Проанализируем ситуацию: конфигурация КОРП содержит ряд объектов и измерений, которых нет в ПРОФ. Самое критичное различие — это учет по подразделениям. В версии КОРП измерение Подразделение является сквозным для регистра бухгалтерии Хозрасчетный, в то время как в ПРОФ логика работы с подразделениями может существенно отличаться (используются другие механизмы или аналитики на конкретных счетах).
Если мы просто «накатим» версию ПРОФ поверх КОРП, мы рискуем потерять данные в тех полях, которых нет в целевой конфигурации. Поэтому наша задача — не просто заменить одну конфигурацию другой, а перевести систему на поддержку нового поставщика, сохранив структуру метаданных КОРП как «расширенную» версию ПРОФ.
Рассмотрим наиболее распространенный метод, который позволяет оставить объекты на замке. Пошагово разберем алгоритм действий:
1cv8.cf именно версии ПРОФ того же релиза, который сейчас установлен в КОРП. Это крайне важно для корректного сопоставления объектов.cf от версии ПРОФ.В результате этой операции мы получим конфигурацию, которая по факту является КОРП, но 1С «считает», что она находится на поддержке ПРОФ. Объекты, которые есть и в ПРОФ, и в КОРП, встанут «на замок», а специфические объекты КОРП останутся в статусе «Объект редактируется с сохранением поддержки» или будут выглядеть как добавленные пользователем.
Если задача стоит более радикально — полностью избавиться от «тяжелого» наследия КОРП и оставить только чистую ПРОФ — рассмотрим альтернативный путь. Этот метод безопаснее с точки зрения будущих обновлений, но сложнее в плане переноса остатков.
Разберем процесс по этапам:
cf от ПРОФ-версии.Конвертацию данных.Важный нюанс: при таком подходе мы столкнемся с проблемой идентификаторов UUID. Если в базе КОРП объект Справочник.Контрагенты имеет один внутренний идентификатор, а в новой базе ПРОФ — другой, то при простом копировании данных через COM-соединение или простые обработки могут возникнуть дубли. Рекомендуется использовать сопоставление по коду или ИНН/КПП.
Проанализируем ситуацию с внутренними идентификаторами объектов метаданных. Даже если имена справочников в КОРП и ПРОФ совпадают (например, Справочник.СтатьиЗатрат), их UUID в дереве конфигурации могут быть разными. Это происходит потому, что ветки разработки КОРП и ПРОФ в 1С хоть и синхронизированы, но являются разными конфигурациями.
При выполнении сравнения и объединения (Способ 1) платформа пытается сопоставить объекты сначала по идентификаторам, а затем по именам. Если вы видите в окне объединения, что 1С предлагает «удалить» старый справочник и «добавить» новый с таким же именем — это значит, что UUID не совпали. В этом случае необходимо вручную выполнить сопоставление (перетащить один объект на другой), иначе вы получите дубли метаданных, и данные в базе «исчезнут», так как они привязаны к старым идентификаторам.
Выясним причину, по которой многие программисты опасаются такого перехода. Основная «мина замедленного действия» заложена в модулях проведения. Рассмотрим пример кода, который часто встречается в КОРП:
Движение = Проводки.Добавить();
Движение.СчетДт = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
Движение.ПодразделениеДт = СсылкаНаПодразделение; // Это поле есть в КОРП
В типовой конфигурации ПРОФ поле ПодразделениеДт в объекте РегистрБухгалтерииЗапись.Хозрасчетный может отсутствовать или иметь другую логику заполнения. После того как вы поставите конфигурацию на поддержку ПРОФ, при первом же обновлении через cfu (файл обновления) система попытается заменить ваши модули проведения на типовые от ПРОФ. В этих модулях нет обращения к подразделениям КОРП. Как результат — при перепроведении документов данные о подразделениях в старых периодах могут очиститься, если вы не адаптируете код под свои нужды.
Подводя итог, можно сказать, что технически поставить КОРП на поддержку ПРОФ возможно, но это требует ювелирной работы в окне сравнения и объединения.
Основные правила для успешного перехода:
dt) перед любыми манипуляциями с поддержкой.cf обязательно снимайте все флажки и проверяйте соответствие объектов по именам..cfu для автоматического обновления в один клик. Каждое обновление придется проводить через «Сравнение и объединение», внимательно отслеживая, чтобы типовой код ПРОФ не затер ваши КОРП-специфичные реквизиты.Конвертацию данных 2.1 — это самый чистый способ с точки зрения дальнейшей эксплуатации базы.Таким образом, мы рассмотрели процесс трансформации поддержки конфигурации. Главное здесь — не спешить на этапе сопоставления объектов и четко понимать, какие именно данные в регистрах являются критически важными для вашего учета.