Миграция типов позиций по таблице соответствия

Миграция типов позиций по таблице соответствия#

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

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

Внимание

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

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

var list = [["Pk", "ТК", "Техкомплект"], ["TK", "УР", "Укрупненная работа"], ["ПТК", "ПК", "Технологический подкомплект"], [null, "ГТК", "Группа техкомплектов"], [null, "ГТЧ", "Группа техкомплектов по чертежу"]];
for (posType : list){
	var idvPosTypeOld = Mct_PosTypeApi.findByMnemoCode(posType.get(0));
	if (idvPosTypeOld != null) {
		//если нашли старый тип позиции - меняем код на новый
		println(posType.get(0) + " -> " + idvPosTypeOld);
		var ropPosType = Mct_PosTypeApi.load(idvPosTypeOld);
		Mct_PosTypeApi.setsCode(ropPosType, posType.get(1));
	}
	else {
		//ищем новый тип позиции
		var idvPosTypeNew = Mct_PosTypeApi.findByMnemoCode(posType.get(1));
		if (idvPosTypeNew == null) {
			//если не нашли - создаем
			println("Создаем новый тип позиции " + posType.get(2));
			Mct_PosTypeApi.register(posType.get(1), posType.get(2), null);
		}
	}
}
commit();