Формулировка проблемы: необходима возможность автоматического заполнения значений полей входящего документа из аналогичных полей исходящего.
Используется:
Конфигуратор -> Процессы -> Справочники;
Документооборот -> Карточка документа.
Решение:
Во-первых, для сопоставления
полей входящих документов 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» должна происходить вне настроек данного справочника и должна осуществляться следующим образом:
если форма Synergy является доп.карточкой исходящего документа, то значением исходящего поля «Subject» должно стать значение темы (при наличии) либо краткого содержания (при отсутствии темы);
если форма 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.
Действия при обновлении системы
При обновлении системы не должны быть создано никаких справочников.