Перенос в SVN кода из пакета Custom (версия 7.6)

Добрый день, коллеги!

Являюсь новичком на форуме, хотя уже достаточно перелопатил по теме SVN, но так и не понял.

Возможно ли загрузить каким-то средствами и зафиксировать уже имеющийся код(из пакета Custom) в хранилище SVN?
С новыми пакетами проблем нет. При попытке зафиксировать пакет Custom всплывает такое сообщение.

"Пользовательский пакет не может быть зафиксирован в хранилище".

Насколько я понимаю логику, этот пакет(Custom) вообще нельзя фиксировать в хранилище.
Но не буду забегать вперед.

Подскажите, пожалуйста, кто что знает по данной теме.

Нравится

8 комментариев

Здравствуйте!

Пакет Custom не предназначен для работы с SVN. Перенесите доработки в свой пакет, затем уже выполняйте фиксацию в хранилище.

Илья, спасибо за ответ.

Продолжу вопрос :smile:

На данный момент (досталось в наследство) в пакете "Custom" находится около 400 элементов и разнести их по отдельным пакетам будет делом всей моей жизни. Есть идея, что эти элементы можно скопировать в новый пакет, который уже будет синхронизирован с SVN. Но есть один момент.

Была найдена информация про пакет Custom.

В процессе своей работы мастер разделов или мастер деталей не только создает различные схемы, но и привязывает данные к текущему пакету. Однако, если текущим пакетом является пакет [Custom], то перенести привязанные данные в другой пользовательский пакет практически невозможно. Поэтому рекомендуется в качестве текущего пакета использовать любой пользовательский пакет, но не [Custom].

Как вы думаете можно ли скопировать элементы в новый пакет, который уже будет синхронизирован с SVN? Может есть ещё варианты?

Ох, как я вас понимаю...
А особенно если с "выездом" в отдельные пакеты паралельно вам надо будет разрабатывать в своих пакетах расширяя то что в Custom это боль.
Предлагаю грязный трюк:
Создаете пустой пакет между Custom и редакционнымSoftKey_RUS
Потом прям на уровне бд в SysSchema - все схемы которые дочерние для Custom, апдейтите для них колонку SysPackageId на значение нового созданного вами пакета.
В теории - всё...
Дальше фиксируете его в SVN ну и собственно сможете вклинить любые ваши пакеты доработок между ним и Custom-ом если надо будет что-то расширять.

Отпишитесь пожалуйста - вышел каменный цветок или нет.
По идее все делается за 15 мин :)

Илья, спасибо за совет. Грязный трюк сработал и конфа компилировалась удачно.
Единственно, что пришлось исправить ещё кое-какие зависимости пакета(внешние сборки, sql-сценарии, данные). Скрипт выглядит примерно так.

update SysSchema set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageSchemaData set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageReferenceAssembly set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom
 
update SysPackageSqlScript set SysPackageId = '42C32F84-0E99-4A7B-8CEF-0A2BD30CF8F7' -- newPackage
where SysPackageId = 'AC5A5588-77FF-4CD0-B5D6-9561546E3D22' -- Custom

Отразится ли это на последующей работе конфигурации неизвестно, буду тестировать.

Ну да я как-то забыл про "Данные" и "Скрипты" но вы по аналогии сделали все верно.
Последствий быть не должно...
Фактически вы можете произвести по базе поиск ID-ника пакета Custom и собственно посмотреть где он там еще задействован, но скорее всего со схемами и модулями он уже никак связан не будет.
Нет связи - нет проблем... остальные Id и UId остались без изменений.

Теперь вы можете при необходимости спокойно расширять/замещать логику и объекты объявленные ранее в Custom и размещать это в обособленных пакетах между Custom и пакетов в который переехали.

Да и схемы в самом пакете куда переехали - вы можете потихоньку переносить в обособленные пакеты просто создавая их - выстраивая их зависимость от "пакета с переездом", и просто в конфигураторе, открывая "Все" свойства, схем и объектов - просто меняйте пакет.

И таким образом "дело всей вашей жизни", окажется делом нескольких недель или максимум месяцев, и у Вас останется еще целая жизнь на разработку нового функционала :)
Приятной работы.

Илья, благодарю за помощь!

Надеюсь новый функционал уже не за горами!:smile:

"Шумков Виталий" написал:Отразится ли это на последующей работе конфигурации неизвестно, буду тестировать.


подскажите, пожалуйста, безболезненно ли прошла данная манипуляция? в метаданных не пришлось править отдельно? указанных запросов достаточно?

Всё прошло нормально, могут возникнуть какие-то мелкие вопросы, но всё решаемо. К метаданным даже не пришлось обращаться. Сделайте бэкап и наслаждайтесь свободным полётом по бд.

Показать все комментарии