Jexl Update OS Material List

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();
}