Описание

Конфигурация DocToDoc определяет часть данных, которая будут передаваться из исходного документа в целевой. С помощью этой конфигурации Вы можете управлять правилами, когда и какие данные будут переданы между двумя документами. Кроме того, Вы можете добавлять поствычисление для целевого документа, которое будет выполнено сразу после передачи данных. Конфигурация также поддерживает множественную передачу данных multi-to-one, которая означает, что значения исходного документа размещаются в списке значений целевого документа.

Конфигурация DocToDoc состоит из её пунктов. Пишите каждый пункт на новой строке. Пункт конфигурации определяет данные для передачи ( пункт передачи ) или вызывает другую конфигурацию DocToDoc ( ссылочный пункт ). Пункты обоих типов могут быть написаны в конфигурации одновременно.

Вы можете обращаться к конфигурации DocToDoc из пункта конфигурации DocUpDoc и некоторый публичных функций библиотеки DocExtLib.


Добавление

Чтобы создать конфигурацию DocToDoc выполните:

Откройте представление Конфигурации \ DocToDoc и в его панели действий нажмите Создать конфигурацию DocToDoc;
На открывшейся форме в поле Наименование введите наименование конфигурации без пробелов. Это должно быть уникальное наименование среди всех конфигураций DocToDoc. С помощью указанного наименования Вы сможете обращаться к данной конфигурации из программного кода и других конфигураций;
Справа укажите, включена конфигурация или нет. К конфигурации, не отмеченной как включенная, невозможно будет обратиться вообще;
В поле Описание введите текст описания конфигурации. Например - Из Компании в Договор. Это справочная информация, которая не будет использована где-либо;
В полях Версия укажите номер и дату версии конфигурации. Это справочная информация, которая не будет использована где-либо.


Формат пункта

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

[ Префиксная часть ] Основная часть [ Целевая часть ]

Префиксная часть

Префиксная часть определяет, являются ли передаваемые данные значениями по умолчанию, является ли передача multi-to-one или добавляет другую конфигурацию DocToDoc в текущую. Определяется это тегами:

DFT - означает, что передаваемые данные являются значениями по умолчанию и не будут обновляться после передачи, если исходный документ будет изменен или удален. Это относится к обновлению документа с помощью пункта конфигурации DocUpDoc, где данная конфигурация DocToDoc используется. В программном коде Вы можете контролировать передачу по данному пункту с помощью входного параметра используемой функции.

MLT - означает, что значение исходного документа размещается в списке значений целевого документа ( передача multi-to-one ). Используйте этот тег, если хотите размещать значения из более чем одного документа в одном целевом документе. Вы можете написать этот тег в более чем одном пункте конфигурации.

KEY - имеет значение только при использовании в этом же пункте конфигурации тега MLT. Означает, что значение исходного документа является ключевым среди всех значений, передаваемых в список значений целевого документа. Все вместе пункты передачи в конфигурации с тегом KEY должны обеспечить уникальность передаваемых ими значений в целевом документе при добавлении или обновлении. Иначе конфигурация DocToDoc не будет обработана и будет показано окно сообщения об ошибке.

D2D - означает, что другая конфигурация DocToDoc будет добавлена в данную конфигурацию. Если Вы также используете в пункте теги DFT, MLT, KEY, то они будет применены ко всем пунктам добавляемой конфигурации DocToDoc. В добавляемой конфигурации Вы также можете использовать тег D2D, чтобы добавить другую конфигурацию и так далее.

COPY - означает копирование поля целиком вместо передачи его значения из исходного документа в целевой. Тег имеет значение только для пункта передачи данных между одноименными полями исходного и целевого документа.

TYPE[T] - означает преобразование поля целевого документа в указанный тип при передаче данных. Параметр тега T может принимать одно из значений: A - тип поля Authors, R - тип поля Readers, N - тип поля Names, D - тип поля Date/Time c оставлением только даты без времени. Тег имеет значение, если в пункте конфигурации не используются теги D2D и MLT.

Основная часть

Основная часть пункта конфигурации определяет какие данные исходного документа ( источник для краткости ) и в какое поле целевого документа ( получатель для краткости ) будут переданы. Используйте один из возможных формат, когда пишите основную часть пункта конфигурации DocToDoc:

наименование - означает наименование идентичных полей источника и получателя или наименование другой конфигурации DocToDoc, если написан тег D2D. Просто напишите наименование поля или конфигурации.

SRC{ формула } - означает вычисление наименования идентичных полей источника и получателя или наименование другой конфигурации DocToDoc, если написан тег D2D. Напишите формулу, которая будет вычислена на источнике, чтобы получить наименования поля или конфигурации.

TRG{ формула } - означает вычисление наименования идентичных полей источника и получателя или наименование другой конфигурации DocToDoc, если написан тег D2D. Напишите формулу, которая будет вычислена на получателе, чтобы получить наименования поля или конфигурации.

BOTH{ формула } - означает вычисление наименования идентичных полей источника и получателя или наименование другой конфигурации DocToDoc, если написан тег D2D. Напишите формулу, которая будет вычислена одновременно на источнике и на получателе, чтобы получить наименование поля или конфигурации. Внутри формулы вводите теги SRC[ наименование ] и TRG[ наименование ], чтобы использовать значения полей с указанными наименованиями в источнике и в получателе соответственно. Результат, полученный тегом SRC или TRG, будет всегда заключен в кавычки. Если результатом является списком, то каждое его значение будет заключено в кавычки с разделением значений списка двоеточием между собой, чтобы представить их в формате текстового списка Языка Формул.

Все теги, описанные ниже, могут быть использованы, только если тег D2D не указан в пункте конфигурации.

наименование1 или { формула } >> наименование2 - означает, что поля источника и получателя не идентичны или вместо наименования поля источника используется формула. Впишите наименование поля или формулу ( в скобках ) источника слева от ">>" и наименование поля получателя справа.

наименование или { формула } >> SRC{ формула } - означает, что поле получателя будет вычислено на источнике. Напишите наименование поля или формулу ( в скобках ) источника слева от ">>" и формулу в теге SRC{ } справа, которая будет вычислена на источнике, чтобы получить наименование поля получателя.

наименование или { формула } >> TRG{ формула } - означает, что поле получателя будет вычислено на самом получателе. Напишите наименование поля или формулу ( в скобках ) источника слева от ">>" и формулу в теге TRG{ } справа, которая будет вычислена на получателе, чтобы получить наименование его поля.

наименование или { формула } >> BOTH{ формула } - означает, что наименование поля получателя будет вычислено одновременно на источнике и на получателе. Напишите наименование поля или формулу ( в скобках ) источника слева от ">>" и формулу в теге BOTH{ } справа, которая будет вычислена одновременно на источнике и на получателе, чтобы получить наименование поля получателя. Как работает тег BOTH описано немного выше.

Во всех случаях, когда используется формула, чтобы вычислить наименование поля получателя или другой конфигурации DocToDoc, пустой текст в качестве результата означает, что данный пункт конфигурации не будет применен.

Целевая часть

После основной часть пункта DocToDoc Вы можете написать целевую часть в следующем формате:

D4D[ наименование ] - означает, что вместо измененного значения исходного документа будут использованы список значений из документов, полученных для целевого документа по пункту конфигурации DocForDoc с указанным наименованием. Вы также можете написать тег D4D{ формула }, чтобы вычислять пункт конфигурации DocForDoc на целевом документе. Если исходный документ не является новый ( не сохраненным ), он должен быть среди полученных, иначе это вызовет ошибку. Вы можете оставить полученный список значений как результат или обработать его с помощью тега { формула }, написанного далее. Если тег D2D был написан в префиксной части пункта конфигурации, то тег D4D будет применен ко всем пунктам добавляемой конфигурации DocToDoc.

{ формула } - означает, что значением поля получателя будет являться результат вычисления формулы на нем. Но это случится только если значение источника, определенное в данном пункте конфигурации, было изменено. Имеет значение только для пункта конфигурации без тега D2D. Передача значения источника в поле получателя перед вычислением формулы будет выполняться только при наличии наименования этого поля в формуле ( с учетом регистра ).

FAIL{ условие } - определяет когда результат передачи вызовет ошибку. Напишите в формуле наименование поля, измененного данным пунктом конфигурации, и другие наименования полей получателя, если это потребуется. Результат формулы @True (1) или любой непустой текст вызовет ошибку с окном сообщения и остановит передачу по конфигурации. Если конфигурация DocToDoc вызывается из пункта DocUpDoc конфигурации DocExt перед сохранением исходного документа, то процесс обновления связанных целевых документов будет остановлен и метод Update ( класс DocExt ) вернет False (0).


Ссылки по теме:

Конфигурация DocExt\DocUpDoc

Конфигурация DocExt\DocForDoc

Смотрите также:

Документы конфигурации