Загрузка чека онлайн-касс (загрузка товаров из чека)



Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

Обработка предназначена для получения чеков онлайн-касс с сайта ФНС (proverkacheka.nalog.ru) по данным, указанным на QR-коде с чека. При разработке использовались материалы статьи https://habr.com/post/358966/

С помощью обработки можно:

  • Зарегистрироваться в сервисе proverkacheka.nalog.ru(на указанный номер телефона придет СМС с паролем);

  • Проверить по реквизитам существует ли чек;

  • Загрузить чек со всеми его реквизитами(Список товаров, адрес продажи, ИНН владельца)

Порядок работы

  1. Для того чтобы передавать текст со смартфона на компьютер, можно поставить приложение Alt-C (можно этого не делать, но так удобнее)

    1. Устанавливаем на PC программу Alt-С. Для корректной работы требуется последнее обновление .Net 4 — об этом сказано на странице скачивания;

    2. Устанавливаем на смартфоне приложение Alt-С;

    3. Запускаем Alt-С на PC, запускаем Alt-С на смартфоне, синхронизируем приложения. Все, можно пользоваться;

  2. Сначала необходимо зарегистрироваться(это выполняется в этой же обработке один раз, затем просто вбиваете свой пароль в поле)

    1. Для этого в поле Телефон указываете свой телефон в формате +79001234567;

    2. На нижней панели жмем Зарегистрироваться. В диалоге вас спросят e-mail(не знаю зачем он ФНС), ваше имя(тоже на знаю зачем);

    3. Если все верно, вам придет СМС от абонента KKT.NALOG с паролем. Пароль нужно вписать в поле Пароль.

  3. Сканируем QR-код с чека, получившуюся строку вида t=20241005T1610&s=147.50&fn=8710000101719291&i=81697&fp=4178191531&n=1   вставляем в поле Строка QR-код (я передаю эту строку со смартфона через Telegram, можно через приложение Alt-C (спасибо VGHOST)) Или же вбиваем вручную значения в поля ФП, ФН, ФД;

  4. Жмем кнопку Выполнить. Если все хорошо — будет заполнена таблица с товарами из чека

  5. Всю информацию из ответа можно посмотреть в виде JSON-строки или дерева, нажав на кнопку Посмотреть весь ответ.

 

 Функция получения детальной информации о чеке

В версии 2024-01-17 исправлена ошибка illegal public api usage

В рабочий стол конфигурации УЛФин добавил этот функционал

Обычное приложение

Тестировалось на платформе 8.3.12.1469, будет работать начиная с платформы 8.3.6, т.к. нужна работа с JSON

33 Comments

  1. akela2014

    можно QR-код просто со сканера в рисунок, подцепить zxing для распознания и так получать строку

    Reply
  2. akela2014

    а еще проще сканер штрих-кода подключить и с него сразу читать)))

    Reply
  3. echo77

    (2) согласен, но нему всех сканер штрих-кодов есть. Данное решение я разрабатывал для личного использования, для дома.

    Возможно есть какой-то способ прочитать QR-код на смартфоне и отправить текст в другую систему

    Reply
  4. VGHOST

    Cognex Barcode Sacanner

    Scanner settings

    Effort Level = Try Harder

    Scanning resolution = Full HD

    Result Settings/Automatic…/Auto Copy = 1

    +

    Alt-C // облачный буфер обмена

    Запустить, получить код и добавить его в ПК-версию на вкладке Devices

    Reply
  5. echo77

    Друзья, эта штука пока не работает. У меня ошибка 500 irkkt db timeout. Судя по всему сервис ФНС лежит…

    Reply
  6. echo77

    Похоже, ребята из ФНС починили сервис — все снова работает.

    Reply
  7. echo77

    Друзья, опять какие-то траблы с ФНС. Опять ошибка 451 illegal public api usage.

    Reply
  8. AntonSm

    (7) Ну так выходные же.

    У меня чеки в приложении ФНС на телефоне перестали приходить аккурат 30 числа.

    Я думаю 9го специалисты выйдут на работу и восстановят.

    Reply
  9. echo77

    (8) Поправил! Выложил новую версию обработки.

    Сначала надо сделать запрос на проверку существования чека, затем запрос получения чека, если вернет ответ с кодом 202, подождать, потом еще раз запрос на получение чека — здесь уже будет результат.

    Reply
  10. TerminusMKB

    (9) День добрый! Не являюсь разработчиком 1С, но тоже ищу возможность обхода illegal API usage. Вы описали спасительную последовательность запросов к API, то пример в посте, насколько я вижу, содержит только получение детальной информации о чеке, без запроса на проверку существования. Скачать аттач я тоже, к сожалению, не могу )

    Не могли бы вы привести пример именно запроса на проверку существования чека? Заранее спасибо, если это будет возможно )

    Reply
  11. Zero_nv

    Ждал ответа от автора статьи, но не дождался. На гитхабе нашел вот такую картинку и все заработало. http://prntscr.com/mq4f81

    Reply
  12. echo77

    (11) Ну да, в (9) я уже писал про это 🙂

    Reply
  13. Zero_nv

    (12) Но пример запроса существования чека можно было посмотреть скачав Вашу разработку. Мне эта информация нужна была что бы доработать вот эту разработку https://infostart.ru/public/617208/. Одна строчка кода более чем за 200 рублей для меня дороговато.

    Reply
  14. echo77

    (13) Ссылка на первоисточник по которому создавались все процедуры указан в статье (https://habr.com/post/358966/). Кто хочет писать сам — можно посмотреть статью, если нужно готовое решение — вот оно.

    Reply
  15. user1222533

    Всем добрый день!

    А кто-нибудь сталкивался с ответом 402 Payment Required?

    Нигде не найду информацию, в чем причина

    Reply
  16. echo77

    (15) какой запрос вы делаете?

    Reply
  17. user1222533

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

    Сейчас эти же самые чеки работают.

    Такое ощущение, что был достингут какой-то лимит на запрос чеков в сутки (хотя там вроде бы должен быть другой ответ), либо был какой-то временный сбой в ФНС. потому что я пробовал эти же самые чеки через разные приложения пробивать — результат одинаков

    Reply
  18. user1234490

    Присоединяюсь к вопросу про 402 статус Payment Required

    Видимо когда больше 20 запросов на получение данных делается то такая ошибка. У всех так? Как решить такую проблему? Готов даже заплатить за услугу получения данных только куда 🙂

    Reply
  19. user1234490

    После того как 202 вернулся критично делать запрос на получение а не валидация->получение?

    Reply
  20. echo77

    (19) Нет, именно так и делается:

    1. Валидация

    2. Получение — Ожидание — Получение.

    Потом можно еще получение делать. Я именно так делаю. Время ожидания 3 сек, но в последнее время 3 секунд мало.

    Reply
  21. user1234490

    Спасибо за ответ. Понял!

    В другом треде задавал вопрос — а у вас большой объем запросов данных по чекам? Сколько примерно (порядок)? Вы сталкивались с ошибкой 402 Payments Required?

    Reply
  22. echo77

    (21) Объем маленький — до 10 чеков в день, использую для личных нужд(домашняя бухгалтерия https://infostart.ru/public/602254/)

    Reply
  23. user1234490

    (22) Понял вас, спасибо за оперативный ответ!

    Reply
  24. MaiorovYury

    Плюсик поставил, потому что уже ооочень помогло)

    Один вопрос — у меня чеки из Ленты не находятся через этот API — это нормально?

    Сама Лента присылает мне чек на почту и там есть все данные и есть так же ссылка на проверку чека в системе Такском

    В Такскоме чек находится. Но почему он не находится через API ФНС? Я думал там должны быть все чеки.

    скрин чека

    https://yadi.sk/i/XFVbwh_-VCtIfw

    Reply
  25. echo77

    (24) Пока что я не знаю ответ на этот вопрос, но Такском

    Reply
  26. MaiorovYury

    (25) но Такском что?)

    Сейчас проверил — через мобильное приложение «Проверка чеков» чек находится

    Reply
  27. echo77

    (26) Чек находится, но при загрузке состава чека получаем ту же ошибку. Вы натолкнули меня на мысль, что надо попробовать поиск через https://receipt.taxcom.ru/

    Reply
  28. MaiorovYury

    (27) написал в Такском с вопросом можно ли делать запросы на https://receipt.taxcom.ru/, которые будут возвращать json или xml

    Жду ответа

    Reply
  29. user-sergey

    А можете подсказать как зарегистрироваться в ФНС? Какая используется строка запроса? чтобы не устанавливать приложение. Как у вас реализовано в обработке?

    Reply
  30. echo77

    (29) Можно приложение ФНС скачать на телефон.

    Можно этой функцией:

    Функция Зарегистрироваться(email, name, phone) Экспорт
    
    //https://proverkacheka.nalog.ru:9999/v1/mobile/users/signup
    //Content-Type: application/json; charset=UTF-8
    //
    //Содержимое:
    //
    //{«email»:»some@mail.com»,»name»:»SomeName»,»phone»:»+79991234567″}
    СтруктураПараметров = Новый Структура(«email, name, phone», email, name, phone);
    Parameter = JSON(СтруктураПараметров);
    
    Хост = «proverkacheka.nalog.ru»;
    SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
    Соединение = Новый HTTPСоединение(Хост, 9999, , , ,30,SSL);
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить(«Content-Type», «application/json»);
    Заголовки.Вставить(«Content-Charset», «utf-8»);
    
    Попытка
    HTTPЗапрос = Новый HTTPЗапрос(«/v1/mobile/users/signup», Заголовки);
    HTTPЗапрос.УстановитьТелоИзСтроки(Parameter, КодировкаТекста.UTF8);
    
    HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
    
    Если HTTPОтвет.КодСостояния <> 204 Тогда
    Сообщить(«Не удалось зарегистрироваться, код ответа=» + HTTPОтвет.КодСостояния + » » + HTTPОтвет.ПолучитьТелоКакСтроку(), СтатусСообщения.Важное);
    Возврат Ложь;
    КонецЕсли;
    
    Возврат Истина
    
    Исключение
    Сообщить(«Не удалось зарегистрироваться», СтатусСообщения.Важное);
    
    Возврат Ложь
    
    КонецПопытки;
    
    КонецФункции
    

    Показать

    Reply
  31. user-sergey

    Спасибо большое. Можно функцией пользоваться вашей? для своего приложения.

    Reply
  32. echo77

    (31) Да, пожалуйста

    Reply
  33. user1290969

    А как распознать при помощи вебки на пк?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *