Xml состоит из нескольких частей, формирующихся в разных модулях. Итоговый xml собирается конкатенацией строк отдельных тэгов в модуле MIDSERV\intfcash.pas->GetXMLText
CHECKDATA
Тэг CHECKDATA со всем содержимым формируется в модуле MIDSERV\ReceiptXML.pas. В CHECKDATA попадают не удаленные строки с блюдами, оплатами/предоплатами и скидками заказа.
Информация делится на данные о блюдах (тэг CHECKLINES), кастомных свойствах заказа (тэг ORDER - в текущий момент закоментирован) и данных по актуальному чеку (все остальные тэги).
Блок может быть пустым: например при проверке баланса карты.
EXTINFO - INTERFACES
Тэг INTERFACES формируется в модуле MIDSERV\intfcash.pas. В этом тэге указывается карта, добавление которой вызвало операцию, и все карты, добавленные с использованием текущего интерфейса в заказ. При добавлении карты в заказ она не выводится в блоке всех карт, т.к. выполняется только проверка на ее добавление.
Настройки, влияющие на формирование xml
Xml dish attributes
Формат заполнения:
[Код справочника].[Имя поля]
[Код справочника].[Название поля - ссылки на справочник].[Имя поля]
Можно указать сразу несколько значений, разделенных переносом каретки
где Код справочника - код справочника в Class Infos
Код справочника = RefNo*256+Num. Если Num не указан, то он считается нулевым
Например:
<Rec RefNo="10" Group="3" GUIDString="{E4D77859-5120-486E-A10D-EAB2650584BD}" ciNameOfClass="TRK7MenuItem" ciUserName="Menu Item" ciUserPlName="Menu Items" ciOptions="3" ciNamesUnique="1" ciParentPowCode="1">
10 * 256 + 0 = 2560 - TRK7MenuItem
При заполнении этого параметра в тэге CHECKDATA добавляется дочерний тэг ATTRS. В нем выводится:
type_id - гуид справочника (из ClassInfos)
type_name - Название справочника (из ClassInfos)
key_id - guid промежуточного справочника (из ClassInfos)
key_name - Название промежуточного справочника (из ClassInfos)
value - значение поля
Output mode of non-fiscal payment in xml
Этот параметр отвечает за формат вывода оплат валютами, которые должны печататься как скидки.
Если выбрано значение Write as discount, то такие оплаты будут выводиться, как скидки
Если выбрано значение Write as payment, то такие оплаты будут выводиться, как оплаты не смотря на настройки самой валюты