Перейти к основному содержанию
`Ctrl`+`K`

# Миграция Pos Type Gds Match Type

Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.

Место применения: `Сервис > Инструменты > Выполнить JEXL-скрипт`

Внимание

Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.

Тип: JEXL-скрипт

    var listNone = pgArrayToNLongList(null);
    var ropListAll =  sql(`
    	select id
    	from mct_docposset ds
    	where ds.bCanSetGoods = 1
    	and ds.bCanSetUnitProduct = 1
    	`).batchObjLoad(Mct_DocPosSetApi, "id");
    for (rop : ropListAll){
    	Mct_DocPosSetApi.setGdsMatchTypes(rop, true, listNone);
    }
    var arrGds = sql(`select array_agg(gg.id) as ida from gds_goodsandservicetype gg
    	where smnemocode != 'MSCH'`).asSingle().ida;
    var listGds = pgArrayToNLongList(arrGds);
    var ropListGds =  sql(`
    	select id
    	from mct_docposset ds
    	where ds.bCanSetGoods = 1
    	and coalesce(ds.bCanSetUnitProduct, 0) = 0
    	`).batchObjLoad(Mct_DocPosSetApi, "id");
    for (rop : ropListGds){
    	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listGds);
    }
    var arrUP = sql(`select array_agg(gg.id) as ida from gds_goodsandservicetype gg
    	where smnemocode = 'MSCH'`).asSingle().ida;
    var listUP = pgArrayToNLongList(arrUP);
    var ropListUP =  sql(`
    	select id
    	from mct_docposset ds
    	where coalesce(ds.bCanSetGoods, 0) = 0
    	and ds.bCanSetUnitProduct = 1
    	`).batchObjLoad(Mct_DocPosSetApi, "id");
    for (rop : ropListUP){
    	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listUP);
    }
    var ropListNone =  sql(`
    	select id
    	from mct_docposset ds
    	where coalesce(ds.bCanSetGoods, 0) = 0
    	and coalesce(ds.bCanSetUnitProduct, 0) = 0
    	`).batchObjLoad(Mct_DocPosSetApi, "id");
    for (rop : ropListNone){
    	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listNone);
    }
    commit();