|
Получение содержимого чека из "Честного Знака" | ☑ | ||
---|---|---|---|---|
0
MWWRuza
гуру
25.02.24
✎
13:00
|
Добрый день!
Я хоть и пишушу свои разработки под клюшки, но это не имеет значения, тема общая... Вот такой отчет: ![]() Что выводить в поле с красными вопросиками? По логике(да и вообще, по здравому смыслу), 355, как сумма всех строк чека. НО!!! В JSON файле из API ЧЗ, 200... В описании API, это поле описано так: ![]() Но, в файле так: ![]() Почему? При этом, если в чеке одна позиция, или несколько, но они одинаковые, то все верно: ![]() Что за нах? Я чего-то не понимаю в их логике, или это ошибка в Честном Знаке - ? Такое ощущение, что они в "total" выводят сумму всех позиций по последней одинаковой позиции... Как так-то? Писать в поддержку? Не проблема, но, я хотел прежде услышать ваше мнение, может я чего-то туплю... Вот сам файл JSON чека тремя позициями: https://cloud.mail.ru/public/AAzk/RX6wz5gy1 |
|||
1
Смотрящий
25.02.24
✎
13:00
|
Скидку они так показывают. 355 - 200 = 155 рэ скидки
|
|||
2
MWWRuza
гуру
25.02.24
✎
13:19
|
Ну, можно было бы предположить, но нет в этих чеках никаких скидок... (Точнее, даже не только в этих чеках, а у этой фирмы вообще). Да даже, если бы и так, тогда почему на чек с одной позицией(или несколько, но одинаковых), такого нет? :-)
|
|||
3
stopa85
25.02.24
✎
15:21
|
Вы выгрузку сделали по товарной группе молочка. Вот по ней сумма 200.
|
|||
4
MWWRuza
гуру
25.02.24
✎
17:52
|
(3) Да, по ответу очень похоже на это.
Но, НЕТ. Было бы так, было бы все понятно, и вопроса бы не было... По описанию параметр "pg" не обязательный: ![]() и я его не указываю в адресе запроса(в этом запросе тела запроса нет, все в адресе): ![]() Так, что, причина не в этом... |
|||
5
MWWRuza
гуру
25.02.24
✎
19:01
|
Да, в в ответе на запрос, откуда я беру ID этого чека, он идет двумя строками, с одним ID:
![]() Хотя, не понятно почему - реквизит "productGroups" - это у них массив, в [], могли бы в одной строке, с одним ID сделать так: [13, 8]... но, нет, сделали почему-то 2 строки с группами [13] и второй [8]... Ну, хотя тут наверно можно понять почему - реквизит - "processingDateTime" - время обработки сервером отличается на 1 секунду, и у одного продукта есть вес, но нет объема, у другого наоборот... А делать эти параметры массивами или вложенными объектами JSON, они поленились :-( Ну, да ладно, когда я сам чек запрошиваю, это не должно влиять - я то не указываю группу, вообще... Чек прилетает один, общий, только общая сумма в нем расчитана для одной группы. |
|||
6
Гена
гуру
25.02.24
✎
19:39
|
(0) Мой ответ на первую картинку с пятью вскл: 200.
Ход размышлений. ЧМ не налоговая и ему не нужны полные фискальные суммы по чекам. Например, ЧестныйГена, которому поручили отслеживать всех ген. Мало ли какую ещё светотень накупил в одной тележке покупатель. Понятно, что касса отправила мне полный чек. Но мне в нём нужны только строчки по генам, их я и буду выдавать на запросы, только их и буду суммировать. |
|||
7
stopa85
25.02.24
✎
19:47
|
(5) к слову, а что это за идентификатор чека? Из чего он состоит и как его получают?
Я пока только понял, что там в середине номер фискального накопителя. Можно как-то получить чек зная его ФН, ФП, номер чека за смену? |
|||
8
MWWRuza
гуру
26.02.24
✎
00:24
|
(6) Да, но Гена покупает маркированный товар, пусть разных групп, в одном чеке молоко и вода... И отбор по конкретной группе нигде не установлен. Почему они считают, что можно посчитать сколько Гена заплатил за молоко, а воду, что, он хапнул нахаляву???
Кстати, немаркированные товары в эти чеки из ЧЗ не попадают, я много чеков просмотрел, в них нет немаркированной продукции, только молоко и вода. И это, в принципе понятно - ЧЗ нет дела до немаркированных товаров, поэтому, эти чеки все равно не соответствуют чекам в ФНС... В них однозначно кроме молока с водой есть и другие товары. Но, по маркированным, должны правильно сумму считать, ИМХО... (7) Да х.з... Как-то не задавался целью проанализировать это... Вот например: ![]() Его ИД: 23637281440501109803482 Ном ФД: 2363 Ном ФН: 7281440501109803 ФД + ФН, получается: 23637281440501109803 Остается 482. Что это такое, понятия не имею, видимо какя-то их константа, возможно привязка к фирме(хотя, три знака для этого явно мало), может вид документа-запроса, непонятно, но она неизменна для всех чеков... ФП они вообще не передают... Я сначала не посмотрел, был уверен, что есть, QR нарисовал, думал выведу такой-же как на чеке из ККТ :-) Ага, сЧаСт... Без ФП его не сформировать. Убирать пока не стал, мало-ли, вдруг начнут передавать в какой-нибудь следующей версии API :-) А получают его вот таким запросом: ![]() При этом, там, в ответе, не только чеки, а все доки, УПД со своими длинными ИД, как в именах файлов, АктыСписания, со своими ИД... PS Пока писал, подумал - надо еще отбор по виду доков в отчет добавить :-) |
|||
9
stopa85
26.02.24
✎
06:43
|
(9)
ФД + ФН, получается: 23637281440501109803
У меня это правило не всегда срабатывает |
|||
10
MWWRuza
гуру
28.02.24
✎
16:02
|
(9) Не знаю, почему не срабатывает.
Вот скриншот от клиента, у которго три кассы: ![]() Все то-же самое, номера ФД + ФН(естественно, разные для трех касс), и в конце те-же 482(что это такое, можно только гадать, но, ясно одно - с клиентом не связано). PS И, кстати, у этого клиента сигареты есть, они тоже туда попадают, вместе с молоком и водой, хотя, по описанию API - не должны, запрос типа только для этих двух ТГ. |
|||
11
MWWRuza
гуру
29.02.24
✎
12:49
|
+(10) хотя, по описанию API - не должны, запрос типа только для этих двух ТГ.
Скачал свежее описание API, в нем исправили: "Метод возвращает список документов, влияющих на баланс склада участника оборота товаров, за запрашиваемый период (разница между начальной и конечной датами не более 92 дней) для товарных групп «Антисептики и дезинфицирующие средства», «Биологически активные добавки к пище», «Молочная продукция» и «Упакованная вода»." Там все 4 группы, по которым ОСУ. Но, все равно, про сигареты нет ни слова, но они в ответ сервера попадают. "Не видишь суслика? А он есть!" :-) |
|||
12
stopa85
01.03.24
✎
11:46
|
(10) А я знаю. Нужно копать в сторону чеков Коррекции.
Если есть, указывается не его ФП, а исходного. Ну... похоже. |
|||
13
stopa85
01.03.24
✎
12:02
|
А вот тут описана формула этого волшебного кода
https://честныйзнак.рф/info/releasenotes/chto-novogo-v-sisteme-s-22-07-2022-po-28-07-2022/?sphrase_id=322970 |
|||
14
MWWRuza
гуру
01.03.24
✎
14:55
|
Ага, спасибо!
482 - получаетя: 4 - версия ФФД 1.2, а 82 - "Уведомление о реализации". |
|||
15
stopa85
01.03.24
✎
22:15
|
(12) нет чеки коррекции тут не причем
Чек на реализацию 555357280440500121123482 от 01.03.2024 от 17:00 А имеет он порядковый номер CheckNumber="84598" от 09:00 В ЧЗ он попадает с лагом в 8 часов, номера не соответствуют. Единственное как я могу сопоставить одно с другим: это коды маркировки в составе чека. |
|||
16
MWWRuza
гуру
02.03.24
✎
14:03
|
А что такое - "CheckNumber", где Вы его берете, как получаете?
В ответе JSON реквизит называется: "fiscalDocumentNumber" если что, может Вы что-то другое пытаетесь вместо него подтянуть? И по времени... Их там два: "docDate" - как я понял, это дата/время самого чека, и "receivedAt" это дата/время обработки документа сервером ЧЗ... Обычно разница в несколько секунд, но, иногда может отличаться часами, и даже сутками. |
|||
17
stopa85
03.03.24
✎
14:13
|
(16) это номер чека
Из драйвера кассы. |
|||
18
MWWRuza
гуру
03.03.24
✎
20:38
|
А что такое "номер чека Из драйвера кассы" - ?
Это порядковый номер чека(непонятно, за какой период?), или номер ФД(Фискального документа), сквозная нумерация всех ФД от "отчета о регистрации", до последнего фискального документа - чека, или отчета о закрытии смены(если она закрыта) - ? Номер ФД не совпадает с номером Чека, так, как в его счетчик попадают все ФД - отчеты о регистрации/перерегистации, отчеты об открытии/закрытии смены, отчеты о состоянии расчетов. В ЧЗ используется именно номер ФД, ни о каких номерах чеков они и не знают... |
|||
19
stopa85
03.03.24
✎
21:53
|
Номер ФД. Конечно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |