IRPTeam / IRP

IRP Core
85 stars 101 forks source link

Import/Export object from DB #1836

Closed DitriXNew closed 1 year ago

DitriXNew commented 1 year ago

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

DitriXNew commented 1 year ago

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

DitriXNew commented 1 year ago

После этого заходим в другую базу, и а вкладке Импорт вставляем эти данные: изображение

Надо учесть, что если база куда импортируются данные, находтся в статусе прод, то система данные не запишет, пока на вкладке настроек не поставят галочку, что разрешают грузить в прод

andreyvorobyov2 commented 1 year ago

Перед тем как загружать нужно сравнить структуру метаданных "отправителя" и "получателя", по тем объектам которые будут выгружатся \ загружатся Если совпадают то загрузка проходит.

DitriXNew commented 1 year ago

Если они отличаются, то истема не сможет десериализовать объект, и ничего не загрузится.

andreyvorobyov2 commented 1 year ago

Если реквизит в одной конфигурации имеет один тип, а в другой это же реквизит имеет составной тип то платформа вылетит в крит, это старый баг надо проверить, возможно уже исправлен

andreyvorobyov2 commented 1 year ago

https://infostart.ru/1c/articles/1481155/

DitriXNew commented 1 year ago

Если реквизит в одной конфигурации имеет один тип, а в другой это же реквизит имеет составной тип то платформа вылетит в крит, это старый баг надо проверить, возможно уже исправлен

Ну хз, система то никак не узнает какой там тип, крит будет только если тип другой, которого нет. Но это норм ситуация, нехер тянуть что попало :)

DitriXNew commented 1 year ago

https://infostart.ru/1c/articles/1481155/

Чтобы сделать тоже самое - надо поменять две строки кода, чтобы он брал сериализацию JSON. Но она не удобна. Нифига не читабельна, и в Excel ее не откоешь.