Описание
Через конфигурацию связей можно настроить:
- Связь с объектом в модуле (Входящий документ, Договор, Исходящий документ и т.д.)
- Выбор вариантов типов связей и их направление
- Отображаемую информацию о связанных документах
Параметры
<link>
<source doc-type="<Название формы объекта>">
<modue-id id="<ReplicaID>"/>
<module ident="<Module 1>"/>
<module ident="<Module N>"/>
</source>
<target>
<modue-id id="<ReplicaID>"/>
<module ident="<Module 2>"/>
<module ident="<Module N>"/>
</target>
<get-doc way="byDocID" />
<link-types>
<link-type-ref ref="<Тип связи 1>" direction="from" back-ref="<Тип связи 2>" link-on="now" select="true"/>
<link-type-ref ref="<Тип связи 1>" direction="from" back-ref="<Тип связи 2>" link-on="now" select="true"/>
</link-types>
<calc-name lang="JavaScript">
<![CDATA[]]>
</calc-name>
<!-- Колонка 3. Вычисляется Док инфо документа -->
<calc-doc-info lang="JavaScript">
<![CDATA[]]>
</calc-doc-info>
</link>
source/target
source - отвечает за список модулей, от которых проставляется связь; target - отвечает за список модулей, на которые проставляется связь.
В данном параметре указывается список модулей, через тег module или module-id.
Если в модуле содержится несколько объектов и для каждого объекта нужно настроить свой набор связей, то это делается через атрибут doc-type
doc-type
Указывается название формы объекта, с которым будет осуществляться связь. К примеру, для Документа по договору будет указан идентификатор DocDogovor, а для Доп. соглашения - AddAgr
Для связи основных объектов в модуле данный атрибут остается пустым. Такими являются: РКК, Договор, Заседание и т.д.
module
Для указания модуля используются атрибуты:
- ident - тип программы (например: InputDocs, OutputDocs и т.д.) или * (все модули)
- complect - комплект, в котором находится модуль. Не обязательный атрибут. Используется в случае комплектной конфигурации.
module-id
Указывается реплика модуля, через атрибут id
get-doc
Указывается способ получения документа. Атрибут way определяет варианты:
- byDocID - по полю DocID в объекте
- byId - по идентификатору документа
link-types
В данном параметре указывается список типов связей, через тег link-type-ref
link-type-ref
Для указания типов связей используются следующие атрибуты:
- ref - тип связи (вставить ссылку на тип связи)
- direction - направление связи. Варианты:
- from - от документа
- to - на документ
- without - без направления
- back-ref - обратный тип связи (вставить ссылку на тип связи)
- link-on - событие, по которому проставляется связь. Варианты:
- now - сразу
- registration - по факту регистрации
- select - выбор типа связи вручную. По умолчанию выключен.
- default - установка типа связи по умолчанию в колонке [1] таблицы связей
calc-name
Вычисляется название заголовка, который располагается в колонке [2] таблицы связей
<calc-name lang="JavaScript">
<![CDATA[var result;
var Form = ctx.get('Form');
Form = Form.size() > 0 ? Form.get(0) : '';
var context = ctx;
if ("resolution".equals(Form)) {
var rkkDocId = ctx.get('RkkDocId');
rkkDocId = rkkDocId.size() > 0 ? rkkDocId.get(0) : '';
if (rkkDocId !== '') {
context = session.findByStrId(rkkDocId);
}
}
var vers = context.get('Cm6$Subject');
vers = vers.size() > 0 ? vers.get(0) : '';
if (vers != '') {
var subj = context.get('title');
subj = subj.size() > 0 ? subj.get(0) : '';
result = subj;
} else {
result = context.get('Subject');
result = result.size() > 0 ? result.get(0) : '';
}
ctx.setResult(result);]]>
</calc-name>
calc-doc-info
Вычисляется докинфо, который располагается в колонке [3] таблицы связей
<calc-doc-info lang="JavaScript">
<![CDATA[var result;var Reqtype = ctx.get('Reqtype');var rprist = ctx.get('rprist');var RNumber = ctx.get('RNumber');var rfin = ctx.get('rfin');var Outdate = ctx.get('Outdate');Reqtype = Reqtype.size() > 0 ? Reqtype.get(0) : '';rprist = rprist.size() > 0 ? rprist.get(0) : '';RNumber = RNumber.size() > 0 ? RNumber.get(0) : '';rfin = rfin.size() > 0 ? rfin.get(0) : '';Outdate = Outdate.size() > 0 ? Outdate.get(0).toString() : '';var result = Reqtype + " " + rprist + RNumber + rfin + " от " + Outdate;ctx.setResult(result);]]>
</calc-doc-info>
calc-version-fix
Текущая версия документа в связях

Создания связанного документа
<link>
<calc-doc-info lang="JavaScript">
<![CDATA[var result;var Reqtype = ctx.get('Reqtype');var rprist = ctx.get('rprist');var RNumber = ctx.get('RNumber');var rfin = ctx.get('rfin');var Outdate = ctx.get('Outdate');Reqtype = Reqtype.size() > 0 ? Reqtype.get(0) : '';rprist = rprist.size() > 0 ? rprist.get(0) : '';RNumber = RNumber.size() > 0 ? RNumber.get(0) : '';rfin = rfin.size() > 0 ? rfin.get(0) : '';Outdate = Outdate.size() > 0 ? Outdate.get(0).toString() : '';var result = Reqtype + " " + rprist + RNumber + rfin + " от " + Outdate;ctx.setResult(result);]]>
</calc-doc-info>
<source doc-type="">
<module ident="InputDocs"/>
<module ident="InputDocsPrev"/>
</source>
<target doc-type="">
<module ident="Directives"/>
</target>
<link-types>
<link-type-ref ref="BECAUSE_2" direction="to" back-ref="LINK_WITH_3" select="true" link-on="now"/>
<link-type-ref ref="LINK_WITH_3" direction="to" back-ref="LINK_WITH_3" select="true" link-on="now" default="true"/>
</link-types>
<calc-name lang="JavaScript">
<![CDATA[var result;
var Form = ctx.get('Form');
Form = Form.size() > 0 ? Form.get(0) : '';
var context = ctx;
if ("resolution".equals(Form)) {
var rkkDocId = ctx.get('RkkDocId');
rkkDocId = rkkDocId.size() > 0 ? rkkDocId.get(0) : '';
if (rkkDocId !== '') {
context = session.findByStrId(rkkDocId);
}
}
var vers = context.get('Cm6$Subject');
vers = vers.size() > 0 ? vers.get(0) : '';
if (vers != '') {
var subj = context.get('title');
subj = subj.size() > 0 ? subj.get(0) : '';
result = subj;
} else {
result = context.get('Subject');
result = result.size() > 0 ? result.get(0) : '';
}
ctx.setResult(result);]]>
</calc-name>
<get-doc way="byDocID"/>
</link>


<link>
<calc-doc-info lang="JavaScript">
<![CDATA[var result;var Reqtype = ctx.get('Reqtype');var rprist = ctx.get('rprist');var RNumber = ctx.get('RNumber');var rfin = ctx.get('rfin');var Outdate = ctx.get('Outdate');Reqtype = Reqtype.size() > 0 ? Reqtype.get(0) : '';rprist = rprist.size() > 0 ? rprist.get(0) : '';RNumber = RNumber.size() > 0 ? RNumber.get(0) : '';rfin = rfin.size() > 0 ? rfin.get(0) : '';Outdate = Outdate.size() > 0 ? Outdate.get(0).toString() : '';var result = Reqtype + " " + rprist + RNumber + rfin + " от " + Outdate;ctx.setResult(result);]]>
</calc-doc-info>
<source doc-type="">
<module ident="InputDocs"/>
<module ident="InputDocsPrev"/>
</source>
<target doc-type="">
<module ident="Directives"/>
</target>
<link-types>
<link-type-ref ref="BECAUSE_2" direction="to" back-ref="LINK_WITH_3" select="true" link-on="now"/>
<link-type-ref ref="LINK_WITH_3" direction="to" back-ref="LINK_WITH_3" select="true" link-on="now" default="true"/>
</link-types>
<calc-name lang="JavaScript">
<![CDATA[var result;
var Form = ctx.get('Form');
Form = Form.size() > 0 ? Form.get(0) : '';
var context = ctx;
if ("resolution".equals(Form)) {
var rkkDocId = ctx.get('RkkDocId');
rkkDocId = rkkDocId.size() > 0 ? rkkDocId.get(0) : '';
if (rkkDocId !== '') {
context = session.findByStrId(rkkDocId);
}
}
var vers = context.get('Cm6$Subject');
vers = vers.size() > 0 ? vers.get(0) : '';
if (vers != '') {
var subj = context.get('title');
subj = subj.size() > 0 ? subj.get(0) : '';
result = subj;
} else {
result = context.get('Subject');
result = result.size() > 0 ? result.get(0) : '';
}
ctx.setResult(result);]]>
</calc-name>
<get-doc way="byDocID" />
</link>