Задача [INT15]: Заполнение данных в карточке документа из остальных полей DT

Формулировка проблемы: необходима возможность автоматического заполнения значений полей входящего документа из аналогичных полей исходящего.

Используется:

Решение:

Во-первых, для сопоставления полей входящих документов DT-INT должен использоваться справочник dtint_internal_fields следующего вида:

Код поля Название Назначение

document_type_id

Код типа документа

Код типа документа, содержащего форму с доп.карточкой документа Synergy

incoming_field_id

Код поля во входящем документе

Код поля в карточке входящего документа, из которого должно браться значение для автозаполнения в форме Synergy

synergy_field_id

Код поля в форме Synergy

Код поля в форме Synergy, которое должно быть автоматически заполнено значением из входящего документа

Примечание: для того, чтобы обратиться к значению поля, обернутого в исходном xml-файле в несколько тегов, в справочнике необходимо их (теги) разделять между собой точками (т.н. «точечная нотация», см. пример ниже). Кроме того, все идентификаторы данного справочника регистрочувствительны.

Во-вторых, при получении исходящего документа, созданного как интеграцией с «Эвридок», так и с Synergy, в журнале входящего документа Synergy необходимо обрабатывать те поля карточки, что настроены согласно вышеописанного справочника dtint_internal_fields. Т.е. поля карточки формы Synеrgy synergy_field_id должны автоматически заполняться значениями из соответствующих полей incoming_field_id. В результате такой обработки полям типа «выпадающий список» и «переключатель вариантов» должно установиться значение, содержимое таких компонентов измениться не должно.

Если справочник dtint_internal_fields отсутствует, то поля с одинаковыми кодами как во входящем документе, так и в форме Synergy, должны автоматически заполняться.

Кроме того, обработка поля «Subject» должна происходить вне настроек данного справочника и должна осуществляться следующим образом:

Приведем пример.

Пусть форма карточки входящего документа содержит следующий набор полей:

    ...
    <DocumentNumber>104-27-02-2015</DocumentNumber>
    <Tos><To>Бобров</To></Tos>
    <Date>2015-02-27T11:54:34</Date>
    <Language>Русский</Language>
    <DocumentView>Альбомный</DocumentView>
    ...

Форма карточки документа Synergy содержит следующий набор полей:

    ...
    <DocumentNumber>104-27-02-2015</DocumentNumber>
    <Tos><To>Бобров</To></Tos>
    <Date>2015-02-27T11:54:34</Date>
    ...

Примечание: поля должны быть одинаково объявлены в модели данных.

Чтобы данные поля заполнились автоматически, необходимо заполнить справочник следующим образом:

document_type_id incoming_field_id synergy_field_id

document_type_id

DocumentNumber

DocumentNumber

document_type_id

Tos.To

Tos.To

document_type_id

Date

Date

где document_type_id - код типа документа, содержащего форму Synergy.

Действия при обновлении системы

При обновлении системы не должны быть создано никаких справочников.