Проект

Общее

Профиль

QA » История » Версия 28

« Предыдущее - Версия 28/338 (Разница(diff)) - Следующее » - Текущая версия
as multisoft, 06.06.2018 16:59


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

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. Рекомендуется использовать его и в дальнейшем для любых действий в личном кабинете.
Первая загрузка сайта может занять некоторое время, подождите полной загрузки и не обновляйте страницу, пока она не будет полностью загружена.
Если страница загрузилась, но открывается пустой список для выбора страны и/или кода телефона - очистите кеш браузера и обновите страницу.
Не обновляйте страницу повторно, пока она не загрузится полностью.

Q4:

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

A4:

В тестовом контуре возможность отладки автоматически включена для всех устройств, привязанных к тестовому аккаунту.
На своём устройстве в "Настройки"->"Безопасность" разрешите установку приложений из неизвестных источников.
Сообщите серийный номер устройств(а) (SN) сотрудникам Multisoft/Альфа-Проект, которые занимаются интеграцией.
Они привяжут его к вашему аккаунту по завершении регистрации в Sunmi Partners.
Для упрощения разработки в ТК в Вашем личном кабинете device configuration -> common -> debugger access control должен быть выключен.
В этом случае способ, описанный здесь , не имеет смысла и его не нужно использовать.
Подключите устройство к сети WiFi с открытым доступом и интернет.
Подключите включенное устройство по USB к компьютеру с установленным Android SDK.
Дождитесь установки драйверов (если используется Windows) и появления уведомления "Отладка по USB разрешена" на устройстве
В AndroidSDKInstallDir\android-sdk\platform-tools\ выполните "adb devices" из консоли,
на экран должны будут выведены серийный номер аппарата и device, что означает, устройство готово к отладке.
Если эта команда показывает "unauthorized", проверьте подключение к интернет и перезагрузите аппарат.
Если после перезагрузки adb devices всё равно возвращает unauthorized, либо при отладке возникают ошибки доступа,
попробуйте включить режим разработчика вручную стандартным для android устройств способом:
многократными тапами по Build.Number (Номер сборки) в меню "о телефоне".
Также попробуйте отключить (если была включена) и включить снова опцию "Отладка по USB" в меню "Для разработчиков".

Q5:

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

A5:

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

Q6:

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

A6:

Воспользуйтесь инструкцией по загрузке
При загрузке укажите правильные модели(Terminals): приложение будет доступно только на указанных моделях.
Поле price выставлять в соответствии с партнёрским соглашением.
После загрузки каждой версии в магазин требуется около 1 рабочего дня на автоматический аудит.
Если приложение было загружено в магазин в режиме пре-релиза (gray release), аудит выполняется при первой загрузке.
Изменение списка устройств для пре-релиза (в т.ч. применение пре-релизана все устройства - 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 являются:
SetOfdHost
SetOfdPort
SetOfdName
SetOfdTaxId
SetOrgName
SetOrgAddress
SetPhysicalAddress
SetSenderEmail
SetFnsServerAddress
в зависимости от того, является ли пользователь платёжным агентом (параметр agent в функции Register отличен от 0), на шаге 1 должны быть установлены следующие опции:
SetTransferOperatorName
SetTransferOperatorTaxId
SetTransferOperatorTelNum
SetTransferOperatorAddress
SetPaymentAgentTelNum
SetPaymentAgentOperation
SetCommissionAgentTelNum
SetContractorTelNum
Если при регистрации в битовом поле "режим работы" (op_mode) установлен бит OperatingMode.Automatic (0x04), на шаге 1 должен быть установлен номер автомата:
SetVendingSerial

Q9:

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

A9:

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

Q10:

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

A10:

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

Q11:

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

A11:

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

Q12:

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

A12:

В общем случае печать документа состоит из открытия OpenRec, наполнения документа и закрытия CloseRec.
Пока документ не закрыт, его можно отменить функцией RecVoid
Если ФН зарегистрирован с несколькими системами налогообложения (СНО),
перед открытием фискального документа с типом Sell/SellRefund/Buy/BuyRefund, либо чека коррекции,
необходимо из зарегистрированных СНО выбрать одну и установить её
функцией SetTaxationUsing.
Настраивать СНО не обязательно для каждого документа.
Установленная после соединения с ядром СНО действует до следующей выгрузки ядра из оперативной памяти либо до следующей вызванной SetTaxationUsing.
Наполнение нефискального документа (RecType.Unfiscal) выполняется командами печати:
PrintLine,
PrintQRCode
PrintBarCode
Наполнение фискальных документов с типом Sell/SellRefund/Buy/BuyRefund, а также нефискальных с типом PayIn/PayOut выполняется командами:
PrintRecItem - добавление позиции, можно вызывать сколь угодно много раз.
PrintRecTotal - подведение итога. разрешено вызывать не более 1 раза на документ. После итога добавление позиций запрещено, можно вызывать только команды оплаты:
PrintRecItemPay - добавление оплаты, можно вызывать сколь угодно много раз, рекомендуется не более 6 раз на документ (с учётом сдачи).
Только для Sell/SellRefund/Buy/BuyRefund:
Перед PrintRecItem необходимо установить налоги функцией SetItemTaxes.
В некоторых случаях требуется передать телефон или электронный адрес покупателя (тег 1008), об этом в Q13, Q14.
Наполнение чека коррекции происходит единственной командой FNMakeCorrectionRec, повтор которой недопустим.

Q13:

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

A13:

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

Q14:

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

A14:

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

Q15:

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

A15:

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

Q16, Q17:

Какие типы документа доступны для чека коррекции в аргументе "opertation" функции FNMakeCorrectionRec ?

Почему в чеке коррекции не работает RecType.SellRefund и RecType.BuyRefund )?

A16, A17:

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

Q18:

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

A18:

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

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 Таблица 29:
1 ТОВАР
2 ПОДАКЦИЗНЫЙ ТОВАР
3 РАБОТА
4 УСЛУГА
5 СТАВКА АЗАРТНОЙ ИГРЫ
6 ВЫИГРЫШ АЗАРТНОЙ ИГРЫ
7 ЛОТЕРЕЙНЫЙ БИЛЕТ
8 ВЫИГРЫШ ЛОТЕРЕИ
9 ПРЕДОСТАВЛЕНИЕ РИД
10 ПЛАТЕЖ
11 АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ
12 СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА
13 ИНОЙ ПРЕДМЕТ РАСЧЕТА

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 сети, где тест пройдёт успешно,
т.к. корректное применение всех параметров магазина гарантируется только при полностью исправном соединении с интернет.

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