Дерево страниц
Skip to end of metadata
Go to start of metadata



Статус

ГОТОВО

РазделJavaScript
Комментарий

Формула поиска счетчика

Тип программы (поле Complect) + Идентификатор подразделения (поле Code в документе)
ctx.setResult(session.counterFormulas().complect(ctx) + session.counterFormulas().code(ctx))
Тип программы (вычисляется из модуля) + Вид документа+ Идентификатор подразделения
ctx.setResult(session.counterFormulas().programPlusDocTypePlusIds(ctx));

Подробнее описано здесь 6.3.1. Счетчик и 6.3.2. Способ поиска счетчика

Получение данных из документа

Первая буква обратившегося в РКК Обращении граждан
if (ctx.get('AuthorType').get(0) == "0") {
    ctx.setResult(ctx.get('LName').substring(0, 1) + '-');
} else if (ctx.get('AuthorType').get(0) == "1") {
    ctx.setResult('Кол-');
} else if (ctx.get('AuthorType').get(0) == "2") {
    ctx.setResult('Ан-');
}
Индекс дела
var p = ctx.get("Inventory_BelongToFile");
var z = "";
if (p != null) {
	if (p.getClass().getName().endsWith("ArrayList") && p.size() > 0) {
		z = p.get(0);
	};
	if (p.getClass().getName().endsWith("String")) {
		z = p;
	};
	if (z.length() > 0) {
		z = z.substring(0, z.indexOf("%"));
	};
};
ctx.setResult(z);

Бизнес-правило

Выбор шаблона согласования взависимости от суммы договора
var result = false;var summ=ctx.get('Summ').get(0); if(summ>1000000){result = true;} ctx.setResult(result);

Реляции

Сотрудник
ctx.setResult(doc.getParentDatabase().getReplicaID()+'%'+ctx.getString('docId'))
Замещающие
ctx.setResult(ctx.get('GroupZam_My_Beards'));
Руководитель подразделения
var result;
var formText;
var parentId;
var query;
var parent = ctx;
var find_up_hierarhy = true;
var idConverter = session.getIdConverter();
do {
	formText = parent.getString('Form');
	parentId = 'f3'.equals(formText) ? parent.getString('OName_1Id') : parent.getString('HeadOfficeId');
	if (!find_up_hierarhy || (('f1'.equals(formText) || '1'.equals(parent.getString('Leader')) 
|| '1'.equals(parent.getString('IsWho'))) && !''.equals(parent.getString('EPost_PersonId')))) {
		result = parent.getString('docId');
		break;
	} else if ('f0'.equals(formText) || 'f2'.equals(formText)) {
		find_up_hierarhy = false;
		var id = idConverter.unid2PlatformId(parent.getString('docId'));
		var boss_tabnum = parent.getString('struct_boss_ac');
		if (boss_tabnum != null && !''.equals(boss_tabnum)) {
			query = 'SELECT post.id, app.created_date 
FROM SO_PersonSys sp 
JOIN so_appointment app ON app.person = sp.id 
LEFT JOIN (SELECT * FROM so_appointmentplain UNION SELECT * FROM so_appointmenthead) app1 ON app1.id = app.id 
LEFT JOIN so_post post ON post.id = app1.post 
JOIN so_beard brd ON brd.id = app.beard 
WHERE sp.tabnum = \'' + boss_tabnum + '\' AND app.isprimary = \'1\' 
AND brd.isactive = \'1\' ORDER BY post.isleader desc';
			var collection = session.getCollectionService().findCollectionByQuery(query);
			if (collection != null && collection.size() > 0 && collection.get(0) != null) {
				parentId = idConverter.buildUnid(collection.get(0).getId(), collection.get(0).getTimestamp('created_date'));
			} else {
				find_up_hierarhy = true;
			}
		} else {
			find_up_hierarhy = true;
		}
		if (find_up_hierarhy) {
			query = 'SELECT post.id, app.created_date 
FROM so_structureunit str 
LEFT JOIN so_beard brd ON brd.id = str.beard 
LEFT JOIN so_beard brd_chld ON brd_chld.hierparent = brd.id 
LEFT JOIN so_appointment app ON app.beard = brd_chld.id 
LEFT JOIN (select * from so_appointmentplain UNION select * from so_appointmenthead) app1 ON app1.id = app.id 
LEFT JOIN so_post post ON post.id = app1.post 
WHERE (post.isleader = \'1\' OR brd_chld.orig_type = \'1\') 
AND brd_chld.isActive = \'1\'  AND brd_chld.isNotVacancy = \'1\' 
AND str.id = ' + id.getId() + ' AND str.id_type = ' + id.getTypeId() + ' ORDER BY post.isleader desc';
			var collection = session.getCollectionService().findCollectionByQuery(query);
			if (collection != null && collection.size() > 0 && collection.get(0) != null) {
				parentId = idConverter.buildUnid(collection.get(0).getId(), collection.get(0).getTimestamp('created_date'));
			} else if ('f0'.equals(formText)) {
				result = '';
			}
		} else {}
	}
	parent = session.findByStrId(parentId);
} while (result == null && parent != null) ctx.setResult(result)
Функциональная роль "Куратор АХД"
var result;
var roleId;
var role;
var idConverter = session.getIdConverter();
var id = idConverter.unid2PlatformId(ctx.getString('BaseDocId'));
var query = 'SELECT role.id, unit.created_date, role.headorbranchoffice, role.headorbranchoffice_type ' + 'FROM so_role role ' + ' LEFT JOIN so_unit unit ON unit.id = role.id LEFT JOIN so_beard sb on sb.id = role.beard ' + 'WHERE role.accessredirect is null and (role.fullname = \'Куратор АХД\' OR role.shortname = \'Куратор АХД\') AND sb.isactive = 1 AND role.headorbranchoffice =  ' + id.getId() + ' AND role.headorbranchoffice_type = ' + id.getTypeId();
var collection = session.getCollectionService().findCollectionByQuery(query);
if (collection != null && collection.size() > 0 && collection.get(0) != null) {
	roleId = idConverter.buildUnid(collection.get(0).getId(), collection.get(0).getTimestamp('created_date'));
	role = session.findByStrId(roleId);
	result = role.getString('BaseDocId');
} else {
	result = null;
}
ctx.setResult(result);