Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Подсказкаinfo
iconfalse

Инструмент позволяет создать программную взаимосвязь субъектов, которая не представлена в базовом решении (например: замещающие и замещаемые, место регистрации)

Свойства страницыСтатус СтатусcolourGreentitleГОТОВОКомментарий
Информация
Подсказка
iconfalse

Реляции создаются/редактируются в разделе "Классификаторы\Реляции".

Могут поставляться как csv файл и загружаться через раздел "Структура системы\Инструменты\Загрузка конфигурации GUI" → Данные в формате csv

Image Removed

Свойства страницы
Статус

Статус
colourGreen
titleГОТОВО

Комментарий

Общие настройки

Реквизиты

Описание

Наименование

Название реляции, которое будет передаваться в коде как параметр. Название должно быть уникальным

Описание

Краткая информация о том, какую взаимосвязь реализует реляция

Формула

Алгоритм написанный на JavaScript, который на вход получает субъект 1 и возращает идентификатор субъетка 2 из организационной структуры.

Блок кода
languagejs
titleПример. Вычисление руководителя подразделения
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
ON app.person = sp.id 
LEFT JOIN (SELECT * FROM so_appointmentplain UNION SELECT * FROM so_appointmenthead) app1 
on
ON app1.id = app.id 
LEFT JOIN so_post post 
on
ON post.id = app1.post 
JOIN so_beard brd 
on
ON brd.id = app.beard 
WHERE sp.tabnum = \'' + boss_tabnum + '\' 
and
AND app.isprimary = \'1\' 
and

AND brd.isactive = \'1\' 
order
ORDER 
by
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

LEFT JOIN so_beard brd 
on
ON brd.id = str.beard 
' + 'left join

LEFT JOIN so_beard brd_chld 
on
ON brd_chld.hierparent = brd.id 
' + 'left join

LEFT JOIN so_appointment app 
on
ON app.beard = brd_chld.id 
' + 'left join

LEFT JOIN (select * from so_appointmentplain 
'
UNION 
+ 'union
select * from so_appointmenthead) app1 
on
ON app1.id = app.id 
' + 'left join

LEFT JOIN so_post post 
on
ON post.id = app1.post 
' + 'where

WHERE (post.isleader = \'1\' 
or
OR brd_chld.orig_type = \'1\') 
and

AND brd_chld.isActive = \'1\' 
and
 AND brd_chld.isNotVacancy = \'1\' 
' + 'and

AND str.id = ' + id.getId() + ' 
and
AND str.id_type = ' + id.getTypeId() + ' 
order
ORDER 
by
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)
панель
Настройки
titleНБР-Админка

Image Added

панель

Реквизиты

Оглавление