Проект

Общее

Профиль

QA Вопросы и ответы

Ссылки на документацию: aidl, примеры, описания функций, алгоритм формирования чека продажи с маркированной продукцией, Алгоритм проверки доступности работы с маркировкой

Приказ ФНС России от 14.09.2020 № ЕД-7-20/662@

Перед началом работы: какие модели поддерживаются?

В настоящий момент Фискальное ядро установлено на следующие модели ККТ серии MSPOS: MSPOS-K, MSPOS-T-Ф, MSPOS-Е-Ф, MSPOS-D-Ф, MSPOS-kiosk-Ф, MSPOS-SE-Ф, MSPOS-E-РФ, MSPOS-N-Ф.
Им соответствуют строковые константы моделей (Build.MODEL), бренда (Build.BRAND) и производителя (Build.MANUFACTURER) устройств:

BRAND = "SUNMI"
MODEL:
  • MSPOS-K: "V1S-G", "V1S", "V2"
  • MSPOS-T-Ф: "T1MINI-G", "T1MINI", "T2MINI", "T2MINI_S", "D2MINI"
  • MSPOS-Е-Ф: "P1_4G", "P1_4G-G", "P1_4G-EU", "P1_4G-R"
  • MSPOS-D-Ф: "P2_PRO"
  • MSPOS-kiosk-Ф: "K1"
  • MSPOS-SE-Ф: "P2_SE", "V2_SE"
BRAND = "DORO"
MANUFACTURER = "TIANYU"
MODEL:
  • MSPOS-E-РФ: "P30"
BRAND = "QCOM"
MANUFACTURER = "NEWLAND"
MODEL:
  • MSPOS-N-Ф: "N850"

Вопросы по маркировке тут

Q0

Любые обращения по поводу конкретного устройства/ККТ. Вопросы по переводу устройств между ТК и ОК, а также между субаккаунтами внутри ТК и ОК.

A0

При обращении по любым вопросам, которые касаются конкретного устройства, в чаты ТП и разработки
нужно указывать SN устройства (см. наклейку со штрих-кодами на обратной стороне аппарата).
Если вопрос связан с переводом устройства в тестовый контур или обратно в основной,
нужно прикладывать фото задней части устройства либо скриншот первой страницы mspos-expert с читаемым SN.
Перенос устройств между ТК и ОК, а также между их субаккаунтами осуществляется только после подтверждения права собственности на устройство.

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

Перенос устройств между ТК и ОК после 13-00 МСК выполняется с большой вероятностью только на следующий день.

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

Q1

Как добавить IFiscalCore.aidl в Android Studio?

A1

0. Скачать IFiscalCore.aidl, IAuth.aidl, IExceptionCallback.aidl с сервера
1. В корневой папке проекта создать папку aidl
2. Внутри папки aidl создать папку с именем, соответствуюим package (com.multisoft.drivers.fiscalcore).
3. Правый клик по папке с именем package -> New -> AIDL -> AIDL File
4. Во всплывающем окне ввести имя интерфейса (например, IFiscalCore). Подтвердить выбор.
5. Скопировать содержимое скачанного файла в текстовом виде в созданный без(!) замены файлов.
6. Повторить операции 3-5 для IAuth.aidl и IExceptionCallback.aidl

Q2

У меня ошибка вида Execution failed for task ':app:compileDebugAidl'. Либо .aidl:1: syntax error don't know what to do with "?"*

A2

Вероятно файлы содержат BOM.
Выполните инструкции, описанные в Q1.

Q3

Как зарегистрироваться в программе Sunmi Partners?

A3

После подписания партнёрского соглашения на указанную в нём почту придёт приглашение на регистрацию в Sunmi Partners. Регистрироваться без инвайта не нужно.
Откройте присланную ссылку с персонального компьютера (ПК) в Google Chrome. Рекомендуется использовать его и в дальнейшем для любых действий в личном кабинете.
Первая загрузка сайта может занять некоторое время, подождите полной загрузки и не обновляйте страницу, пока она не будет полностью загружена.
Если страница загрузилась, но открывается пустой список для выбора страны и/или кода телефона - очистите кеш браузера и обновите страницу.
Не обновляйте страницу повторно, пока она не загрузится полностью.

Следуйте шагам реристрации. Оформлять смс подтверждение не нужно.
По окончании дождитесь верификации аккаута. Она выполняется автоматически в течение 1 рабочего дня.
В процессе регистрации будет предложено загрузить Company Registration Certification. Подробнее в Q5.
После регистрации и успешной верификации нужно добавить фискальное ядро в свой магазин.
Для этого выполните пункты A3_1

При настройке личного кабинета (ЛК) разработчика установите триггеры в соответствии с картинкой.
Debugger access control рекомендуется установить в положение "выкл", иначе придётся периодически вводить в устройство временный пароль,
который присылается на почту, указанную в ЛК в Development -> Debugger.
Не включайте Google Play. В основном контуре Google Play выключен в целях безопасности.

Q3_1

На устройстве нет MSPOS-Expert. Что делать?
На устройстве нет прилоения %AppName%. Как его добавить?

A3_1

Зайдите в личный кабинет на вкладку App Store -> App List,
найдите MSPOS-Expert (или %AppName%) справа в "No apps added", выделите его галку и нажмите кнопку "Added apps".
После этого приложение появится в "Apps Selected".
Если приложения нет в списке справа, проверьте список слева.
Для добавления приложения, отсутствующего в обоих списках напишите разработчикам этого приложения.
Для того, чтобы приложение появилось в поиске в личном кабинете,
к этому кабинету должен быть привязан по крайней мере один терминал из списка поддерживаемых приложением моделей (выбирается при загрузке приложения в магазин).

При публикации приложения разработчик сам указвыает список поддерживаемых моделей и зону видимости: только для своего аккаунта / для своего и субаккаунтов / для всех аккаунтов.
Если приложения нет в поиске, но достоверно известно, что оно загружено, нужно обратиться к авторам приложения с просьбой расширить зону видимости их продукта.
Если разработчик - Вы, можете загружить приложение по инструкции.
Также рекомендуем добавить TeamViewerQS и TeamViewerQS —APPX.
В дальнейшем не удаляйте MSPOS-Expert из магазина.

Q4

Как подготовить устройство MSPOS к отладке?

A4

В тестовом контуре возможность отладки автоматически включена для всех устройств, привязанных к тестовому аккаунту.
На своём устройстве в "Настройки"->"Безопасность" разрешите установку приложений из неизвестных источников.

Сообщите серийный номер устройств(а) (SN) сотрудникам Multisoft/Альфа-Проект, которые занимаются интеграцией.
Они привяжут его к вашему аккаунту по завершении регистрации в Sunmi Partners.

Для упрощения разработки в ТК в Вашем личном кабинете Device Configuration -> Common -> Debug Protect должен быть выключен.
В этом случае способ, описанный здесь, не актуален.
Там же Device Configuration -> Common -> Install by 3rd APP должен быть включен.

Подключите устройство к сети WiFi с открытым доступом и интернет.
Подключите включенное устройство по USB к компьютеру с установленным Android SDK.
Дождитесь установки драйверов (если используется Windows) и появления уведомления "Отладка по USB разрешена" на устройстве.
Если не удалось установить драйвера, и/или устройство не отображается в диспетчере устройств Windows,
попробуйте, если это Type-C, подсоединить разъём другой стороной и/или выбрать другой разъём в ПК для подключения.
Универсальные драйвера под Windows для android-устройств можно найти здесь
В AndroidSDKInstallDir\android-sdk\platform-tools\ выполните "adb devices" из консоли,
на экран должны быть выведены серийный номер аппарата и device, что означает, устройство готово к отладке.
Если эта команда показывает "unauthorized", проверьте подключение к интернет и перезагрузите аппарат.

Если после перезагрузки adb devices всё равно возвращает unauthorized, либо при отладке возникают ошибки доступа,
попробуйте включить режим разработчика вручную стандартным для android устройств способом:
многократными тапами по Build.Number (Номер сборки) в меню "о телефоне".
Также попробуйте отключить (если была включена) и включить снова опцию "Отладка по USB" в меню "Для разработчиков".

A4_1

Перевод MSPOS-Е-Ф, MSPOS-D-Ф в режим отладки (включение adb):
Данная процедура необратима. По завершении девайс перезагрузится, и на экране ККТ появится неудаляемый водяной знак.
Использование MSPOS-Е-Ф со включенной отладкой в боевом режиме недопустимо.
Будучи включённым, adb делает устройство небезопасным для конечного пользователя.
Последствия проведения транзакций при использовании устройства в режиме отладки ложатся на компанию, запросившую перевод в режим отладки.
Включение режима отладки разрешено только в целях разработки и тестирования.
При использовании устройства только в целях тестирования рекомендуем использовать механизм gray release.
Для включения adb на MSPOS-Е-Ф кроме передачи сотрудникам Мультисофт SN и фото с читаемым SN необходимо:

  • явно сообщить о своём намерении включить режим отладки (adb) на конкретном устройстве путём указания его SN в текстовой форме
  • явно указать намерение использовать устройство в целях разработки и тестирования
  • явно подтвердить, что последствия работы с включенным adb ясны

Пример: "Прошу предоставить код для adb на девайс PExxxxxxxxxx. В целях разработки и тестирования. Последствия ясны, риски приняты."
Включение режима отладки осуществляется путём ввода 4-значного одноразового временного кода.
Код необходимо вводить в специальное меню, которое открывается после 8 нажатий по TUSN в "Настройки" -> "О телефоне".
Срок действия кода: 24 часа.
Если после ввода появилось сообщение об ошибке, повторно вводить не нужно. Вместо этого сообщите о проблеме сотрудникам Мультисофт, по возможности передав текст сообщения.

Q5

Что делать с Company Registration Certification при регистрации аккаунта в sunmi partners?

A5

Прикрепите пустую картинку. Эта опция нужна китайским компаниям.

Q6

Как загрузить приложение в магазин Sunmi?

A6

Воспользуйтесь инструкцией по загрузке
При загрузке укажите правильные модели(Terminals): приложение будет доступно только на указанных моделях.
Поле price выставлять в соответствии с партнёрским соглашением.
После загрузки каждой версии в магазин требуется около 1 рабочего дня на автоматический аудит.
Если приложение было загружено в магазин в режиме пре-релиза (gray release),
аудит выполняется при первой загрузке и не распространяется на Change to official version.
Кнопка Change to official version нужна, чтобы применить грей релиз на все аппараты.
Изменение списка устройств для пре-релиза (в т.ч. применение пре-релизана все устройства - change to official version) не сопровождается аудитом.
Изменение атрибутов приложения, таких как скриншоты, описание, поддерживаемые модели и др. вызывает повторный аудит при применении этих свойств (кнопка Save внизу).
ТРЕБОВАНИЯ МАГАЗИНА ПРИЛОЖЕНИЙ К ПО

Для обновления приложения в магазине мы подготовили другую инструкцию

Q7

Что нужно знать о регистрации фискального накопителя (ФН)?

A7

Процедура регистрации выполняется один раз за время жизни ФН.
Регистрация ФН - часть процесса включения фискального режима работы ККТ.
Пока ККТ не зарегистрирована с ФН, она находится в учебном режиме. Об этом свидетельствует надпись * учебный режим * в начале чеков.
После регистрации ФН ККТ в процессе работы печатает фискальные документы, за исключением нефискальных документов (RecType.Unfiscal),
документов внесения/изъятия (RecType.PayIn/PayOut) и X-отчётов (PrintXReport).
Если ККТ зарегистрирована в неавтономном режиме (отсутствует флаг OperatingMode.Autonomous),
фискальные документы будут отправляться в ОФД по настроенному каналу связи (валидный сервер и порт ОФД,
выход в интернет по Wifi или через мобильную сеть).

Для регистрации фискального накопителя(ФН) нужно следующее:
а) ФН подключен и в состоянии "готов к регистрации" (FNGetState FnState.ReadyToFiscalization).
б) смена должна быть закрыта (GetDayState DayState.DayClosed)
в) не должно быть открыто ни одного документа (GetRecState RecState.Closed)
после этого можно начинать процедуру регистрации.

Q8

Как зарегистрировать ФН / включить фискальный режим ККТ?

A8

Процедура регистрации, в зависимости от желаемых параметров регистрации, может отличаться.
Основные операции при регистрации:
1) установка опций: см. блок "Запрос и установка параметров"
2) сохранение опций (см. SaveOptions )
3) регистрация (см. Register ).

при каждой регистрации обязательными для установки на шаге 1 являются:
SetOrgName
SetOrgAddress
SetPhysicalAddress
SetFnsServerAddress

Если при регистрации в битовом поле "режим работы" (op_mode) не установлен бит OperatingMode.Autonomous (0x02), обязательными на шаге 1 также являются:
SetSenderEmail
SetOfdHost
SetOfdPort
SetOfdName
SetOfdTaxId

Если при регистрации в битовом поле "режим работы" (op_mode) установлен бит OperatingMode.Automatic (0x04), на шаге 1 должен быть установлен номер автомата:
SetVendingSerial

В зависимости от того, является ли пользователь платёжным агентом (параметр agent в функции Register отличен от 0), на шаге 1 должны быть установлены следующие опции:
SetTransferOperatorName
SetTransferOperatorTaxId
SetTransferOperatorTelNum
SetTransferOperatorAddress
SetPaymentAgentTelNum
SetPaymentAgentOperation
SetCommissionAgentTelNum
SetContractorTelNum
Точный список требуемых параметров в зависимости от аргументов функции (пере)регистрации указан в Q25

Q9

Какие особенности работы с несколькими СНО?

A9

Пользователь может иметь несколько систем налогообложения (СНО). Запросить СНО, указанную при регистрации, можно функцией GetTaxation
При этом в чеках должна быть указана только одна из зарегистированных СНО.
Если пользователь зарегистрировал кассу с несколькими СНО, то перед каждым открытием документа (OpenRec )
текущая СНО должна быть установлена функцией SetTaxationUsing , в параметрах которой передаётся одна из зарегистрированных СНО.

Q10

Для чего нужна перерегистрация?

A10

Если параметры кассы и/или реквизитов пользователя изменились, об этом нужно уведомить Федеральную налоговую службу (ФНС)
посредством отправки оператору фискальных данных (ОФД) отчёта о перерегистрации в электронной форме.
Отчёт о перерегистрации формируется функцией CorrectRegistration.
Её параметры аналогичны функции Register, но нужно установить дополнительный - причину перерегистрации.
Причин перерегистрации может быть 4: замена ФН, смена ОФД, смена реквизитов пользователя и смена настроек ККТ.

Q11

Как выполнить перерегистрацию?

A11

Выполняется аналогично регистрации за исключением пункта 0):
0) убедиться, что в очереди на отправку в ОФД нет документов (OFDGetFirstQueuedDocNumber 0), иначе перерегистрация не будет выполнена.
1) установка опций, которые необходимо изменить, в связи с причиной перерегистрации: см. блок "Запрос и установка параметров"
Точный список требуемых параметров в зависимости от аргументов функции (пере)регистрации указан в Q25
2) сохранение опций (см. SaveOptions )
3) перерегистрация(см. CorrectRegistration ).

В связи с ограничениями ФН нельзя выполнить 1 перерегистрацию с несколькими причинами одновременно.
Например, нельзя поменять настройки ОФД и реквизиты пользователя одновременно,
нужно выполнить последовательно 2 перерегистрации в связи с этими причинами, выполняя шаги 1-3.
При этом устанавливаются и сохраняются только те параметры, которые соответствуют причине данной перерегистрации (при условии, что все остальные присутствуют).

Q11_1

Какую причину перерегистрации выбрать при переключении режима между онлайн и оффлайн?

A11_1

Правильный подход: при перерегистрации выбрать "смена настроек ккт" CorrectionReason.ChangeKKTSettings.
Однако, некоторые ФН не позволяют это сделать, отвечая, например, BadFormat.
В таком случае нужно отменить документ и перерегистрировать с причиной "смена параметров ОФД" CorrectionReason.ChangeOFD.
Перед началом перерегистрации необходимо убедиться, что все необходимые параметры(опции) установлены Q25.

Q12

Как напечатать чек?/ Как сформировать фискальный документ? / Как сформировать нефискальный документ?

A12

В общем случае печать документа состоит из открытия OpenRec, наполнения документа и закрытия CloseRec.
Пока документ не закрыт, его можно отменить функцией RecVoid

Если ФН зарегистрирован с несколькими системами налогообложения (СНО),
перед открытием фискального документа с типом Sell/SellRefund/Buy/BuyRefund, либо чека коррекции,
необходимо из зарегистрированных СНО выбрать одну и установить её
функцией SetTaxationUsing.
Настраивать СНО не обязательно для каждого документа.
Установленная после соединения с ядром СНО действует до следующей выгрузки ядра из оперативной памяти либо до следующей вызванной SetTaxationUsing.

Наполнение нефискального документа (RecType.Unfiscal) выполняется командами печати:
PrintLine
PrintLineAligned
PrintQRCode
PrintBarCode
SetFont
PrintRaster

Наполнение фискальных документов с типом Sell/SellRefund/Buy/BuyRefund, а также нефискальных с типом PayIn/PayOut выполняется по общему алгоритму:
1. Позиции. В случае PayIn/PayOut команда также обязательна.
PrintRecItem - добавление позиции, можно вызывать сколь угодно много раз.
Только для Sell/SellRefund/Buy/BuyRefund:
Перед PrintRecItem необходимо установить налоги функцией SetItemTaxes.
2. Печать итога.
PrintRecTotal - подведение итога. разрешено вызывать не более 1 раза на документ. После итога добавление позиций запрещено, можно вызывать только команды оплаты:
3. Оплата.
PrintRecItemPay - добавление оплаты, можно вызывать сколь угодно много раз, рекомендуется не более 6 раз на документ (с учётом сдачи).

В некоторых случаях требуется передать телефон или электронный адрес покупателя (тег 1008), об этом в Q13, Q14.

Добавление нефискальной информации в фискальный чек допустимо только при следующем условии:
выводимый на печать текст, штрих-код, QR-код и/или картинка не содержит данных, формат которых похож и/или повторяет формат фискальных данных, печатаемых на чеке.
При обнаружении нарушений печати нефискальных данных в фискальном чеке приложение удаляется из магазина приложений до устранения нарушений.

Q12_1

Как сформировать чек коррекции?

A12_1

Чек коррекции отличается от остальных чеков наполнением: оно происходит единственной командой FNMakeCorrectionRec, повтор которой недопустим.
Для формирования суммовых налогов в чеке коррекции перед FNMakeCorrectionRec нужно вызвать SetSumTaxes.
В этом случае параметр taxNum (порядковый номер используемого налога) функции FNMakeCorrectionRec игнорируется.
Резюмируя: для формирования чека коррекции нужно последовательно и без повторов вызывать:
(если несколько СНО) SetTaxationUsing
OpenRec
(если нужны суммовые налоги)SetSumTaxes
FNMakeCorrectionRec
CloseRec

Q13

Как передать телефон или электронный адрес покупателя (тег 1008)?

A13

Для передачи этого тега необходимо использовать функцию SendClientAddress
Она выполняется один раз на весь документ в любой момент после открытия и до закрытия. Повторная передача ведёт к нарушению ФФД.
Установка одновременно электронного адреса и телефона покупателя не предусмотрена ФФД 1.05 от 21.03.2017.
Точно так же покупатель не может иметь нескольких телефонов и/или email одновременно.
При использовании SendClientAddress в опциях заранее должен быть установлен эл. адрес отправителя SetSenderEmail

Q14

В каком формате передавать телефон или электронный адрес покупателя (тег 1008) в функции SendClientAddress ?

A14

Телефон или электронный адрес покупатеся следует передавать в соответствии с ФФД 1.05 от 21.03.2017 Таблица 5, тег 1008:
Формат: +{Ц} или {С}@{C},
где Ц - "атрибут, обозначающий, что данные реквизита должны быть представлены в виде цифры",
С- "атрибут, обозначающий, что данные реквизита должны быть представлены в виде символа".
Символы и цифры должны быть представлены в электронной форме "в соответствии с кодовой таблицей CP866".

Q15

Как изменить параметры автоинкассации при закрытии смены?

A15

Включение или отключение автоинкассации выполняется функцией SetDayCloseAutoPayOut
Если необходимо сохранить значение параметра для применения его во всех следующих функциях закрытия смены (CloseDay ),
в т.ч. после перезагрузки, нужно сохранить опции (SaveOptions ).

Q16

Какие типы документа доступны для чека коррекции в аргументе "operation" функции FNMakeCorrectionRec ?
Почему в чеке коррекции не работает OperationType.SellRefund и OperationType.BuyRefund )?

A16

В соответствии с ФФД 1.05 от 21.03.2017 Таблица 25 "Реквизит «Признак расчета» (тег 1054) для кассового чека коррекции (БСО коррекции)
может принимать одно из следующих значений: «1» – приход, «3» – расход."
Поэтому чек коррекции на возврат прихода и возват расхода возвращает ошибку.

Q17

ФН не даёт закрыть архив / зарегистрировали mspos-е-Ф с некорректной датой, и он заблокировался, нет возможности откатить время назад.
Как закрыть ФН аварийно?

A17

Нужно убедиться, что нет иных способов решить проблему. Часто ФН блокируется, т.к. чеки долго не уходили в ОФД.
Часто причиной могут быть отсутствие связи, отсутствие продлённого договора с ОФД.
Если при регистрации указан ИНН несуществующего ОФД, чеки могут не приниматься, и необходимо аварийное закрытие архива.
Все операции, связанные с аварийным закрытием необходимо согласовывать с ФНС.
После выполнения шагов данной инструкции старый ФН останется в том же состоянии, что и был
.
Процедура не закрывает архив в самом ФН. Она лишь позволяет зарегистрировать ККТ с новым ФН.
Для выполнения аварийного закрытия архива в ККТ необходимо:*
0. выключить ККТ и заменить ФН на незарегистрированный.
1. включить ККТ и открыть mspos-expert. войти в сервисное меню.
2. ввести номер ФН, с которым ККТ была зарегистрирована,
в поле для ввода ЗН ККТ (единственное поле для ввода на сервисной странице).
3. нажать "аварийное закрытие архива", подтвердить выбор. Кнопку "записать ЗН" нажимать ну надо.

Q18

Как передать признак предмета расчета и признак способа расчета (теги 1212 и 1214)?

A18

Для передачи свободных тегов используется функция SetTagAttribute (начиная с 1.8.28).
Её нужно вызывать перед добавлением позиции (PrintRecItem ), в которой необходимо установить соответствующий тег.

Обращаем внимание на примечания 1 и 2 к таблице 29 ФФД (введены Приказом ФНС России от 09.04.2018 N ММВ-7-20/207@):

1. В случае если в составе кассового чека (БСО) реквизит "предмет расчета" (тег 1059) содержит реквизит "признак предмета расчета" (тег 1212), имеющий значение "15",
то такой кассовый чек (БСО) при передаче в ОФД в электронной форме в реквизите "наименование предмета расчета" (тег 1030)
должен содержать одно из значений от "1" до "25", указанных в таблице 29.1.
2. В случае если в составе кассового чека (БСО) реквизит "предмет расчета" (тег 1059) содержит реквизит "признак предмета расчета" (тег 1212), имеющий значение "16",
то такой кассовый чек (БСО) при передаче в ОФД в электронной форме в реквизите "наименование предмета расчета" (тег 1030)
должен содержать одно из значений от "26" до "31", указанных в таблице 29.1._

В случае передачи в 1212 значений 15 или 16, в PrintRecItem
в аргумент itemName необходимо передавать значение реквизита из таблицы 29.1 ФФД без дополнительного текста: значения от "1" до "31".
Печатная форма формируется ядром.

Q19

Какие значения передать при установке тегов 1212 и 1214?

A19

Значения реквизита «признак способа расчета» (тег 1214) в соответствии с ФФД 1.05 от 21.03.2017 Таблица 28:

1 ПРЕДОПЛАТА 100%
2 ПРЕДОПЛАТА
3 АВАНС
4 ПОЛНЫЙ РАСЧЕТ
5 ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ
6 ПЕРЕДАЧА В КРЕДИТ
7 ОПЛАТА КРЕДИТА

Значения реквизита «признак предмета расчета» (тег 1212) в соответствии с ФФД 1.05 от 21.03.2017 в ред. Приказа ФНС России от 09.04.2018 Таблица 29:

1 ТОВАР
2 ПОДАКЦИЗНЫЙ ТОВАР
3 РАБОТА
4 УСЛУГА
5 СТАВКА АЗАРТНОЙ ИГРЫ
6 ВЫИГРЫШ АЗАРТНОЙ ИГРЫ
7 ЛОТЕРЕЙНЫЙ БИЛЕТ
8 ВЫИГРЫШ ЛОТЕРЕИ
9 ПРЕДОСТАВЛЕНИЕ РИД
10 ПЛАТЕЖ
11 АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ
12 СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА
13 ИНОЙ ПРЕДМЕТ РАСЧЕТА
14 ИМУЩЕСТВЕННОЕ ПРАВО (с 1.12.37+)
15 ВНЕРЕАЛИЗАЦИОННЫЙ ДОХОД (с 1.12.37+)
16 СТРАХОВЫЕ ВЗНОСЫ (с 1.12.37+)
17 ТОРГОВЫЙ СБОР (с 1.12.37+)
18 КУРОРТНЫЙ СБОР (с 1.12.37+)
19 ЗАЛОГ (с 1.12.37+)

Q20

Как пробить сдачу?

A20

Сначала пробейте оплату наличными, сумму, которую передал клиент, например, 100р.

IFiscalCore.PrintRecItemPay((int)PayType.Cash, "100.00", "ПРИНЯТО ОТ КЛИЕНТА НАЛИЧНЫМИ:",callback);

После этого выполните вызов PrintRecItemPay с параметрами PayType.Cash, в total передайте сумму со знаком "минус".
Например, сдача в 15 рублей 1 копейку оформляется вызовом:

IFiscalCore.PrintRecItemPay((int)PayType.Cash, "-15.01", "СДАЧА:",callback);

В предыдущих двух командах параметр itemText может быть любым.
В результате после закрытия документ, если "принято" - "сдача" == сумме стоимости всех позиций по документу, на чеке появится 2 последовательные надписи:
"ПРИНЯТО ОТ КЛИЕНТА НАЛИЧНЫМИ: 100.00"
"СДАЧА: 15.01"
и ниже, в соответствии с ФФД:
"НАЛИЧНЫМИ 84.99"

Q21

Как работать по старому законотадельству в режиме ЧПМ ?

A21

Если клиент по закону имеет право пользоваться ЧПМ, переход в режим ЧПМ осуществляется при соблюдении следующих условий:
1. ККТ не зарегистрирована
2. К ККТ не подключен (зарегистрированный) ФН
3. ПО умеет работать в режиме ЧПМ без обращений к ФН.
4. ПО умеет определять текущий режим работы через вызов функции DirectIO

Внимание! Режим работы ККТ, определяемый перечислением Mode отличается от режима работы ФН, описанного в OperatingMode
Численные значения перечислений лежат в начале страницы

Запрос текущего режима работы ККТ (Mode) выполняется следующим образом:
1. Создаётся экземпляр IAuth, который реализует все функции интерфейса.
2. Создаётся экземпляр IExceptionCallback по аналогии с любым другим коллбеком об ошибке
3. Выполняется команда DirectIO с параметрами DirectIOCmd.GetMode,
в качестве второго параметра необходимо передать идентификатор пользовательского ПО, либо package приложения, из которого функция вызывается.
4.1 Если команда выполнена успешно, ядро вызовет auth.Result(currentMode) с параметром currentMode, равном текущему режиму работы ККТ (Mode).
4.2 Пользовательское ПО сохраняет это число и сравнивает с Mode.OFD и Mode.ENVD, определяя текущий режим работы.
5.1 Если команда завершилась с ошибкой, коллбек об ошибке передаётся стандартно, через IExceptionCallback

Переход в режим ЧПМ осуществляется через программный вызов DirectIO при выполнении условий 1-3 аналогично запросу текущего режима работы ККТ (Mode).
В качестве первого параметра необходимо использовать константу DirectIOCmd.ChangeMode
При смене режима в auth.Result возвращается новый режим работы. Был режим: Mode.OFD. Сменили режим => в auth.Result возвращается Mode.ENVD

Q22

Какие особенности у режима ЧПМ ?

A22

В режиме ЧПМ все обращения к ФН отключены и будут возвращать ErrCode.Hardware, ExtHardwareErr.Nack кроме FNGetNumber.

Функции, начинающиеся с FN, OFD, FDI, QueryOFD, OfdOut, QueryFiscal созданы для работы в режиме ОФД,
обращаются к ФН и будут возвращать указанную выше ошибку в режиме ЧПМ.
В любой момент из режима ЧПМ можно перейти обратно в режим ОФД с потерей всех счётчиков и состояний по вызову команды DirectIO с параметрами для смены режима работы.

Для корректной работы устройства в режиме ЧПМ его необходимо зарегистрировать.
Перед регистрацией необходимо установить и сохранить следующие опции:
SetOrgName
SetOrgAddress
Регистрация выполняется стандартной функцией Register
В качестве параметров необходимо передать: reg_num, равный "00000", а также корректный ИНН и имя кассира. Остальные параметры не влияют на результат выполнения.

Q23

Как проверить, к какому магазину привязано устройство?

A23

Откройте App Store или Магазин приложений.
Дождитесь полной загрузки.
Нажмите иконку пользователя справа вверху.
Открывшееся меню прокрутите вниз.
В поле "Service provider" или "поставщик услуг" показывается текущий магазин, к которому привязано устройство. По умолчанию это Multisoft.

Q24

На устройстве не применяются настройки магазина, что делать?

A24

Проверьте A23 ^. Если наименование магазина соответствует ожидаемому, убедитесь, что устройство подключено по Wifi к интернет,
и выполните перезагрузку. Допускается подключение через сеть sim-карты с доступом в интернет, но предпочтительнее пользоваться Wifi.
Если перезагрузка не помогла, зайдите в POS Steward -> network -> network test -> start testing.
Тест пройден успешно, если все три галочки - зелёные.
Если хотя бы одна из них красная, рекомендуется подключиться к другой Wifi сети, где тест пройдёт успешно,
т.к. корректное применение всех параметров магазина гарантируется только при полностью исправном соединении с интернет.

Q25

Как работать с признаком агента? Что делать, если пользователь - агент/поверенный/комиссионер?

A25

Если пользователь - агент/поверенный/комиссионер, соответствующий признак агента указывается в параметрах регистрации.

После регистрации можно установить текущий признак агента функцией SetAgentTagUsing (аналогично установке СНО, выполняется перед открытием чека).
Установка признака агента может быть нужна в случае, если необходимо сформировать документ с одним(несколькими) из зарегистрированных признаков агента, к примеру:
при регистрации указан PayAgent и BankPaySubAgent, а предмет расчёта в чеке относится только к PayAgent).
Текущий признак агента распространяется на все предметы расчёта (товары, услуги, ...) в чеке.
По умолчанию текущий признак агента равен указанному при регистрации.
Запросить признак агента в ФН (указывается при регистрации) можно функцией GetAgentTag
В зависимости от выбранного текущего признака агента в чеке должны быть установлены следующие параметры:

если пользователь - платёжный агент или платёжный субагент (установлены биты AgentTag.PayAgent и/или AgentTag.PaySubAgent)
SetCommissionAgentTelNum
SetPaymentAgentTelNum
SetContractorTelNum

если пользователь - банковский платёжный агент или банковскиий платёжный субагент (установлены биты AgentTag.BankPayAgent и/или AgentTag.BankPaySubAgent)
SetTransferOperatorName
SetTransferOperatorTaxId
SetTransferOperatorTelNum
SetTransferOperatorAddress
SetPaymentAgentOperation
SetPaymentAgentTelNum
SetContractorTelNum

если пользователь - поверенный, комиссионер и/или иной агент (установлен любой из бит AgentTag.Attorney, AgentTag.CommissionAgent, AgentTag.Agent
SetContractorTelNum

В предмете расчёта можно устанавливать признак агента по предмету расчёта функцией SetTagAttribute.

Текущий признак агента (current) добавляется в чек, если он отличен от 0.
При этом предмет расчёта может содержать признак агента по предмету расчёта.
Его значение должно быть подмножеством значений текущего признака агента в чеке (current), иначе ФЯ возвращает ошибку "неверный параметр".
Добавление признака агента по предмету расчёта и прочих реквизитов агента в предмет расчёта осуществляется вызовом функции SetTagAttribute до добавления позиции, в которой данный признак необходимо установить.

В докмуент теги, относящиеся к признаку агента (далее - теги агента), добавляются при выполнении следующих условий:
текущий признак агента требует того по ФФД И значение тега не пустое.
Значения тегов агента для документа устанавливаются в ФЯ через функции из блока "Установка дополнительных настроек".
Пример: теги X, Y и Z установлены в непустое ненулевое значение, признак агента требует установки X, Y и K, которй null.
В этом случае в докмуент будут переданы теги X и Y.

В предмет расчёта теги, относящиеся к признаку агента (далее - теги агента), добавляются при выполнении следующих условий:
тег был передан в SetTagAttribute, И значение тега не пустое.
Пример: теги X, Y и Z установлены в непустое ненулевое значение через SetTagAttribute, признак агента по предмету расчёта требует установки X, Y и K, который null.
В этом случае в предмет расчёта будут переданы теги X, Y и Z.

Q26

Когда необходимо менять ФН?

A26

Самый действенный способ - периодически проверять FNGetWarningFlags
Если WarningFlag содержит FNMemoryOverflow или UrgentCSReplace -> пора менять.
Если в ответе на фискальную операцию (открытие/закрытие смены/документа) в коллбеке об ошибке возвращается ErrCode.Hardware и ExtHardwareErr.Fatal,
а также установлены эти флаги -> пора менять уже прямо сейчас.

Q27

Как менять ФН?

A27

1. Закрыть смену, если была открыта
2. Если ккт находится в неавтономном режиме, нужно дождаться отправки всех документов в ОФД (OFDGetQueuedMessagesCount равно нулю)
и состояние ФН (FNGetState) равно FNArchiveRead
3. Закрыть архив ФН CloseFiscalMode
4. Если ккт в неавтономном режиме - дождаться отправки отчёта о закрытии архива в ОФД (аналогично п.2)
5. Вставить новый ФН.
6. Выполнить перерегистрацию CorrectRegistration в связи с заменой ФН

Q28

Где посмотреть логи MSPOS-Expert? как выгрузить логи?

A28

Откройте MSPOS-Expert, перейдите на страницу "статус", внизу нажмите кнопку "выгрузка лога".
Если выпадет диалог с запросом разрешений, подтвердите их.
После этого логи появятся в корне карты памяти в папке "mspos"
Далее их можно будет выгрузить, подключив устройство к ПК, либо по teamviewer (более быстрый способ).

Начиная с 1.15.41 логи будут храниться по пути /sdcard/Android/data/com.multisoft.drivers.fiscalcore в 2 файлах: архиве и текущем логе.
Текущий лог - текстовый файл, используемый ФЯ в процессе работы для записи.
Архив - файл с расширением .zip.txt (для возможности выгрузки через ЛК sunmi),
содержит все логи с момента последней очистки, включая логи с предыдущей версии mspos-expert, хранящиеся во внутренней памяти.
Архивация текстовых файлов с логами выполняется при каждом старте ФЯ и закрытии смены.
После архивации запускается механизм ротации.
Алгоритм работы ротации:
если суммарный размер архива превышает 200 МБ и количество файлов в архива больше 2,
наиболее ранние логи удаляются, плока выполняется условие выше.
После выгрузки файла архива его необходимо переименовать, удалив расширение .txt в конце.
После этого его можно будет разархивировать и просматривать файлы с логами.

Q29

Как будет происходить переход на НДС 20% в 2019 году?

A29

Ниже при упоминании НДС 18% имеются ввиду ставки 18 и 18/118, которым соответствуют коды налогов TaxNum._18 (0) и TaxNum._18_118(2).
В соответствии с ФФД, 01.01.2019 НДС 18% должен быть заменён на НДС 20%. При этом номера ставок не изменились.
Мы сделали соответствующие изменения, согласно которым индексы останутся прежними, но в чеках, открытых после 1го января 2019 года включительно,
сумма НДС вместо 18% будет рассчитываться по ставке 20%.
Чеки, открытые до полуночи с 31 декабря на 1е января закрываются по времени открытия, т.е. ставка в них будет 18%.
Печатные формы будут также соответствовать ФФД, при условии, что MSPOS-Expert обновлён.
Для перехода с 18% на 20% от пользовательского ПО не требуется изменений в части общения с ФЯ, т.к. установка ставки НДС ведётся по её индексу.
Рекомендуется с 1го января контролировать версию ФЯ через GetAidlVersion, чтобы пользователь обновил mspos-expert.

Q30

Как выполнить возврат с НДС 18% в 2019 году?

A30

Ниже при упоминании ставки 18% имеется ввиду ставка НДС 18% или 18/118%.
До 2019 года кодам налогов TaxNum._18 (0) и TaxNum._18_118(2) соответствуют ставки НДС 18% и 18/118%.
После полуночи с 31.12.2018 на 1.01.2019 этим кодами будут соответствовать ставки 20% и 20/120%.
Для возвратов мы расширили ставки налогов TaxNum: добавлены индексы _REFUND_18 = 6 и _REFUND_18_118 = 7.
Чтобы после 01.01.2019 сделать возврат со ставкой 18%, необходимо использовать коды _REFUND_18 или _REFUND_18_118.
Добавлена блокировка установки ставок налогов _REFUND_18 и _REFUND_18_118 в чеках Sell и Buy. Чеки коррекции можно формировать с любой доступной ставкой.
В сформированном чеке сумма налогов по ставке будет рассчитана корректно.

Q31

При закрытии чека (CloseRec) получаем ошибку errCode 1 (ErrCode.WrongArgument), extErrCode 9, message "Некорректное значение параметров команды ФН", хотя параметры заведомо корректные. В логах BadArgument. Что делать?

A31

Согласно документации на ФН, так он сигнализирует о переполнении итогов смены. Необходимо аннулировать чек и закрыть смену.

Также имеется информация, что ФН на 36 месяцев под СНО, рассчитанный на работу только под услуги, отвечает BadArgument, если в 1212 указвыается 1 (товар).

Q32

Как программно посмотреть системную информацию об устройстве (номер сборки, firmware version и т.д.)?

A32

Программный доступ к системной информации на сайте SUNMI Developers

Q32_1

Где найти документацию ко встроенному сканеру?

A32_1

Документация к встроенному сканеру лежит здесь

Q32_2

Как открыть страницу определённого приложения в App Store (магазине приложений) программно?

A32_2

Программно открыть App store со страницей определённого приложения, ещё ссылка.

Q32_3

Где найти API для пользовательских действий по кнопкам громкости?

A32_3

Настройка пользовательских действий по нажатию на кнопки громкости.

Q33

Как открыть денежный ящик на MSPOS-Т-Ф?

A33

Воспользуйтесь функцией aidl OpenDrawer (добавлена в 1.13.39)

Q34

Какая распиновка разъёма денежного ящика на MSPOS-Т-Ф? Куда подключать считыватель карт в MSPOS-Т-Ф ?

A34

Ответы на эти вопросы, а также полный перечень разъёмов доступны по ссылке или ещё

Q35

Какие собенности при подключении тестового ФН (МГМ) ?

A35

1. МГМ может быть использован только в целях разработки и тестирования
2. МГМ можно сбросить в состояние по умолчанию (готов к регистрации). FNResetDebug в AIDL.
3. ККТ с МГМ регистрируется только в тестовом контуре ОФД. Информацию по подключению к тестовому контуру нужно уточнять у ОФД, к которому Вы собираетесь подключиться.

Q36

Переданный в аргументе функции SetTagAttribute код товара отображается в ОФД некорректно или указан как имеющий невалидный формат. Что делать?
Как передать код товара (КТ, КТН) 1162 в виде массива байтов ?
В каком формате нужно кодировать символы для передачи 1162 через SetTagByteAttribute ?

A36

Некоторые ОФД придумали собственный способ кодирования 1162.
По многочисленным запросам для поддержки передачи кода товара в виде массива байт в 1.14.40 была добавлена функция SetTagByteAttribute
Вопросы, связанные с форматом/представлением/кодированием данных тега 1162 при передаче в виде массива байт, следует адресовать технической поддержке конкретного ОФД.
UPD: 05.06.2019
Cтало известно, что некоторые из операторов фискальных данных перестали считать собственные алгоритмы кодирования 1162, противоречащие ФФД, единственно верными.
В личном кабинете ОФД данные тега 1162, переданные через SetTagAttribute отображаются как валидные в бинарном виде, хотя и искажены при представлении в виде строки.

Q37

Как работать с подакцизными товарами (признак торговли подакцизными товарами) 1207?

A37

Установите Tag.ExceiseTag функцией SetTagAttribute до вызова функции (пере)регистрации.
Это нужно, чтобы в последствии можно было передавать 1212 со значением 2.

Q38

Как быстро применяются настройки в Личном кабинете (ЛК)? Как ускорить применение настроек ТК после изменения?

A38

Настройки, установленные в ЛК SUNMI влияют только на устройства, привязанные к этому аккаунту.
Настройки магазина прилетают на устройство в течение нескольких минут при наличии стабильного интернет-соединения.
Если устройство в момент изменения настроек было не подключено к сети интерент или выключено, настройки применятся при следующем подключении к интернет.

Для ускорения применения настроек на устройстве необходимо:
0. Обеспечить стабильное подключение к интернет
1. Если приложение "Магазин приложений" было открыто ранее, смахнуть его из списка недавних приложений.
2. Зайти в "Магазин приложений" на устройстве
3. Дождаться полной загрузки магазина. В этот момент настройки применены.
Если устройство было подключено к ПК, настройки adb применятся при следующем подключении к ПК.
4. Если настройки не применены, нужно проверить, к какому магазину привязано устройство (см. Q23)
5. Если название магазина совпадает с названием ТК, перезагрузите устройство и повторите пп. 1-4, иначе настройки устройства поменять нельзя.

Q39

Надпись "ККТ блокирована" на автотесте. Что делать?

A39
Список ошибок на автотестировании, которые блокируют ККТ:

  • ККТ зарегистрирована, ФН не подключен (GetFiscalMemoryFiscalized возвращает true, FnGetNumber возвращает NACK).
    Необходимо установить корректный ФН.
  • ФН зарегистрирован с другой ККТ (ФН зарегистрирован, ККТ - нет и наоборот. ErrCode.Hardware, ExtHardwareErr.Fatal)
    Необходимо установить корректный ФН.
  • Фискальная плата клонирована (ЗН не установлен, на запрос GetSerial возвращает "XXXXXXXXXXXX").
    Необходимо установить ЗН, с которым ККТ была зарегистрирована. ЗН долен совпадать с тем, что в паспорте.
  • ККТ зарегистрирована с другим ФН (номер ФН не совпадает. ErrCode.Hardware, ExtHardwareErr.Fatal).
    Необходимо установить корректный ФН.

Q40

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

A40

Для фискальных документов коллбек об ошибке печати не вызывается в следующем случае:
Документ отправлен в ФН, и датчик бумаги сработал после этого во время печати ФП и ФД, а в случае кассового чека - ещё и QR.
Это особенность реализации, которая продиктована работой ФН: ФП и ФД возвращаются после передачи документа в ФН.
Если ленты хватило на печать документа, но не хватило на печать QR, коллбека об ошибке печати не будет.
В этом случае ПО верхнего уровня не уведомляется об ошибках печати чека, чтобы избежать дублирования чека в ФН.
Если бумага закончилась посередине чека, когда чек ещё не ушёл в ФН, ФЯ вызовет коллбек об ошибке.
Рекомендуем уведомить пользователя в UI об отсутствии бумаги и предложить сформировать документ заново.
Перед повторным формированием документа необходимо отменить текущий открытый документ.

Q41

При печати строки накладываются одна на другую. Что делать?

A41

Зайдите в "Обновление системы" или "Обновление" на домашнем экране устройства. Если есть обновления, установите их.
Если пробелма не решилась, или обновлений нет, воспользуйтесь A42.

Q42

У нас новая ошибка, которой нет в этом QA. Что делать?

A42

Сообщите максимум информации об устройстве: * SN (на первой странице mspos-expert, либо в настройки -> о телефоне -> общая информация) * версию ОС (настройки -> о телефоне -> номер сборки) * версию PrinterService либо SunmiPrinterService либо InnerPrinter (в разных версиях ОС приложение называется по-разному).
Посмотреть версию можно зайдя в настройки -> пиложения -> справа сверху меню -> показать системные процессы. После этого сервис печати появится в списке * версию mspos-expert (на первой странице приложения либо в настройки -> пиложения -> mspos-expert). * по возможности, логи mspos-expert * если речь про терминал с эквайрингом (MSPOS-Е-Ф, MSPOS-D-Ф) также сообщить версию платёжного сервиса SunmiPayHardwareService.

Q43

Куда пропали с чека реквизиты: номер ФД, номер чека\смены и адрес сайта ФНС?

A43

  • Адрес сайта ФНС можно не выводить на печать в случае, если он был передан при регистрации.

Q44

Как пробить чек с маркировкой?

A44

1. Проверка КМ в ФН: SendMarkupCodeFnCheck;
2. Проверка КМ в ОИСМ: SendMarkupCodeOismCheck;
3. (Опционально) Получение результата проверки в ОИСМ: GetMarkupCodeOismResult;
4. Сохранение результатов проверки: SaveMarkupCodeCheckResult(true);
5. Открыть чек: OpenRec;
6. Передать КМ (тег 1163) с помощью SetTagAttribute(КМ должен быть идентичен отправленному в SendMarkupCodeFnCheck);
7. Пробить позицию PrintRecItem;
...
8. Закрыть чек: CloseRec.

Обращаем внимание, что вызов SendMarkupCodeOismCheck после SendMarkupCodeFnCheck является обязательным вне зависимости от условий оперирования ККТ.

Q45

В каком виде передавать КМ в ФЯ?

A45

Следует передавать КМ в том виде, в котором он пришёл со сканера, без символа FNC1 в начале, если он присутствует. Сканер должен поддерживать символ разделителя GS для GS1 кодов и его также нужно передавать внутри КМ БЕЗ дополнительного экранирования.

Q46

Что передавать в параметрах команды SendMarkupCodeFnCheck?

A46

У команды есть два варианта работы:

1. Указать тип(тег 2100) 0 - тогда ФЯ использует встроенный парсер, который пытается на основе предоставленного КМ сам определить, тип и смещения, если они требуются.
2. Указать тип отличный от 0, - ФЯ использует данные которые получит через параметры команды. Т.е. для типа 2 и 4 (gs1m с длиной кода проверки в 44(с верным crc32) и 88 символов) необходимо передать смещения.

Парсер внутри ФЯ должен поддерживать все типы КМ и первый вариант команды является самодостаточным. Но, если необходимо самостоятельно определять тип и смещения, то можно использовать второй вариант.

Q47

*Как использовать ClearAllMarkupCodeCheckResult? *

A47

Команда ClearAllMarkupCodeCheckResult очищает список уже сохранённых КМ (до 128) и начинает новую сессию проверки КМ.

Согласно протоколу ККТ-ФН, отмена чека не удаляет уже сохранённые результаты проверки КМ, т.е. их не нужно проверять заново, если в чеке после отмены пробиваются товары с тем же КМ. Однако, для полной отмены чека с маркированными товарами (допустим, покупатель отказался от товара и ушёл) необходимо после отмены чека также вызвать команду ClearAllMarkupCodeCheckResult.

Команду ClearAllMarkupCodeCheckResult нельзя вызвать при открытом чеке.

Q48

Как проверить и сохранить КМ?

A48

1. Проверить КМ в ФН: SendMarkupCodeFnCheck;
2. Проверить КМ в ОИСМ: SendMarkupCodeOismCheck;
3. Получить результаты проверки в ОИСМ: GetMarkupCodeOismResult;
4. Сохранить результаты проверки: SaveMarkupCodeCheckResult(true);

Сохранённым КМ считается только после вызова SaveMarkupCodeCheckResult(true).

Q49

Как исключить товар из уведомления с проверенным, но НЕ сохранённым КМ?

A49

Товар c КМ, который НЕ был передан с помощью SetTagAttribute и PrintRecItem НЕ будет включён ни в чек, ни в уведомление, даже если не было вызова SaveMarkupCodeCheckResult(false).
Важно, что товар с КМ, который был передан с помощью SetTagAttribute и PrintRecItem будет включён в чек, но НЕ будет включён в уведомление, даже если не было вызова SaveMarkupCodeCheckResult(false).
Отменять чек, если он открыт, и вызывать ClearAllMarkupCodeCheckResult также является рабочим вариантом, но потребуется повторная проверка всех ранее сохранённых КМ.

Q50

Как исключить товар из уведомления с проверенным и сохранённым КМ?

A50

Товар с КМ, который НЕ был передан с помощью SetTagAttribute и PrintRecItem НЕ будет включён ни в чек, ни в уведомление.
Делать повторную проверку КМ и вызывать SaveMarkupCodeCheckResult(false) в таком случае не нужно.
Отменять чек, если он открыт, и вызывать ClearAllMarkupCodeCheckResult также является рабочим вариантом, но потребуется повторная проверка всех ранее сохранённых КМ.

Q51

Можно ли повторно проверить КМ в ФН и ОИСМ внутри той же сессии?

A51

Да, можно, если это сделать ДО пробития позиции через PrintRecItem. В случае повторного вызова SaveMarkupCodeCheckResult(true) с новыми данными при добавлении в уведомление и чек будут использованы данные последней проверки.

Q52

Как получить возможность пробивать чек с маркировкой по ФФД 1.2?

A52

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

  1. Проверить что ФН поддерживает 1.2 командой FNGetFnFfdVersion, должен быть ответ 4, ФФД 1.2 ;
  2. Проверить что ККТ поддерживает 1.2 командой GetKktFfdVersion, должен быть ответ 4, ФФД 1.2 ;
  3. Зарегистрировать (или перерегистрировать) ККТ под ФФД 1.2 командой Register1_2 \ CorrectRegistration1_2 с признаком продажи маркированных товаров (marking = true).

Далее можно открыть смену и пробить чек с маркированным товаром Q44.

Q53

Как подключиться к ФЯ на Android 12?

A53

Для того что бы приложение увидело ФЯ в manifest надо добавить:

<queries>  
 <package android:name="com.multisoft.drivers.fiscalcore"/>
</queries>

И перед bindService:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 
{
    startForegroundService(intent);
}
else
{
    startService(intent);
}

Примеры работы с ФЯ: Visual Studio и Android Studio.

Q54

Как выгрузить логи на сервер?

A54

В приложении Mspos Expert во вкладке "Статус" нажать на кнопку "Выгрузить логи на сервер" и подтвердить действие. Передать в multisoft информацию о том, что логи были выгружены, SN устройства, дату и время выгрузки логов и возникновения ошибки и описание возникшей проблемы.

--------------------------------------------------------------------------------------------------------------
Ресурсы:

1.png Просмотреть (4,28 МБ) as multisoft, 21.06.2018 10:35

2.png Просмотреть (2,71 МБ) as multisoft, 21.06.2018 10:59

add_mspos.png Просмотреть (39,4 КБ) as multisoft, 24.12.2018 10:43

currentSettings.png Просмотреть (26,4 КБ) as multisoft, 24.12.2018 10:43

tk_setttings1.png Просмотреть (31,8 КБ) as multisoft, 24.12.2018 10:43

MC_example.png Просмотреть (4,77 КБ) Михаил Суханов, 29.07.2021 20:24

ffd12_1038_1042.png Просмотреть (58,2 КБ) Михаил Суханов, 30.09.2021 13:11