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

# Очистка Spaces Gds Lotos

Используется для создания, обновления или нормализации справочных данных. Требует проверки исходных условий, идентификаторов и используемых справочников.

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

Внимание

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

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

    sql(`
    with changed as (
    	select
    		gds.id as id
    		,gds.sArticle as sArticle
    		,regexp_replace(trim(gds.sArticle), '[\s]{2,}', ' ', 'g') as sArticleNew
    		,gds.sDesignation as sDesignation
    		,regexp_replace(trim(gds.sDesignation), '[\s]{2,}', ' ', 'g') as sDesignationNew
    		,gds.sDesignationOld as sDesignationOld
    		,regexp_replace(trim(gds.sDesignationOld), '[\s]{2,}', ' ', 'g') as sDesignationOldNew
    		,gds.sName as sName
    		,regexp_replace(trim(gds.sName), '[\s]{2,}', ' ', 'g') as sNameNew
    	from Bs_Goods gds )
    select
    	ch.id as "id"
    	,ch.sArticle as "sArticle"
    	,ch.sArticleNew as "sArticleNew"
    	,ch.sDesignation as "sDesignation"
    	,ch.sDesignationNew as "sDesignationNew"
    	,ch.sDesignationOld as "sDesignationOld"
    	,ch.sDesignationOldNew as "sDesignationOldNew"
    	,ch.sName as "sName"
    	,ch.sNameNew as "sNameNew"
    from changed ch
    where (ch.sArticle != ch.sArticleNew
    		or ch.sDesignation != ch.sDesignationNew
    		or ch.sDesignationOld != ch.sDesignationOldNew
    		or ch.sName != ch.sNameNew)
     `).foreach(function(r){
    @begin{
    	var rop = Bs_GoodsApi.load(r.id);
    	//правим код
    	if(r.sArticle != r.sArticleNew){
    		Bs_GoodsApi.setsArticle(rop, r.sArticleNew);
    	}
    	//правим Обозначение
    	if(r.sDesignation != r.sDesignationNew){
    		Bs_GoodsApi.setsDesignation(rop, r.sDesignationNew);
    	}
    	//правим Старое обозначение
    	if(r.sDesignationOld != r.sDesignationOldNew){
    		Bs_GoodsApi.setsDesignationOld(rop, r.sDesignationOldNew);
    	}
    	//правим наименование
    	if(r.sName != r.sNameNew){
    		Bs_GoodsApi.setsName(rop, r.sNameNew);
    	}
    	commit();
      }
    @exception
    function(exp){
    	println("[JEXL Exception] " + exp.getCause());
    }end;
    }) ;