Главная категория > Посцентр (ШТРИХ-М)
Агенты в АПИ Штрих-М
(1/1)
kkmspb:
Чего-то непонятки с протоколом Штриха - а где команда передачи данных агентов/поставщиков.
Реализовывал подобное на Атоле, там все вроде понятно, есть специальные для этого методы и напрямую и в json формате.
А у Штриха как я начинаю подозревать есть тупо fnSendTlv и пиши сам в ФН все что хочешь.
Кто нибудь сталкивался с такой фигней?
pavel_net:
Да, просто заполняешь нужные теги и пихаешь в чек. У атола в принципе тоже самое просто названия агентов буковками прописаны.
kkmspb:
Спасибо, понял , примерно так уже работает:
/*
ttByte = 0. Тип Byte
ttUint16 = 1. Тип Uint16
ttUint32 = 2. Тип UInt32
ttVLN = 3. Тип VLN
ttFVLN = 4. Тип FVLN
ttBitMask = 5. Тип "битовое поле"
ttUnixTime = 6. Тип "время"
ttString = 7. Тип "строка"
ttSTLV = 8. Тип STLV
*/
setProp("TagNumber" , 1222 );
setProp("TagType" , 0 );
setProp("TagValueInt" , 32 ); // Регистр битов {1,2,4,8,16,32, 64}
if( ! dynamic_Call( "FNSendTagOperation()"))
{
}
Прикольно, что в чек признак агента добавляется и чек печатается нормально, а вот на отсутствие инн поставщика похоже Штриху наплевать.
Получается, что это все под ответственность разработчика верхнего софта.
kkmspb:
Остался небольшой вопрос.
Чего-то не понять как очищать не правильно начатые команды FNAddTag.
Если начать формирование stlv тега через FNBeginSTLVTag() и потом тупо выйти (например мы заметили не валидное значение), то заметил такую странность, что следующий чек закончится с ошибкой. Даже если перед этим сделать FNCancelDocument() и/или SysAdminCancelCheck()
То есть если не выполнять в конце FNSendSTLVTagOperation().
Но это в принципе мелочь можно конечно всё проверки производить до FNBeginSTLVTag().
Навигация
Перейти к полной версии