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

# Jexl Update OS Material List

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

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

Внимание

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

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

    var nvCount = sql(`
    	select count(distinct osv.gid )	 as "nCount"
    	from mct_ordersheet os
    	join mct_ordersheetver osv on osv.idmctdocument = os.id and osv.idstatemc = 300
    	join mct_ordersheetverdet d on d.idordersheetver = osv.id
    	join mct_journal j on j.gidsrcver = osv.gid
    	join mct_materiallist ml on ml.idjournal = j.id
    	where (os.bnotformingneed = 1
    	or d.bpurchnotreq = 1)
    	and ml.bNotFormNeed is null
    	`).asSingle().nCount;
    var nvIter = nvCount / 100 + 1;
    for (i : (1 .. nvIter)){
    	sql(`
    		select distinct
    			osv.gid as "gid"
    		from mct_ordersheet os
    		join mct_ordersheetver osv on osv.idmctdocument = os.id and osv.idstatemc = 300
    		join mct_ordersheetverdet d on d.idordersheetver = osv.id
    		join mct_journal j on j.gidsrcver = osv.gid
    		join mct_materiallist ml on ml.idjournal = j.id
    		where (os.bnotformingneed = 1
    		or d.bpurchnotreq = 1)
    		and ml.bNotFormNeed is null
    		order by osv.gid
    		limit 100`).foreach(function(f){
    			Mct_JournalPkg.fillByOrderSheet(f.gid);
    		});
    	commit();
    }