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



Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС 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=20261005T1610&s=147.50&fn=8710000101719291&i=81697&fp=4178191531&n=1   вставляем в поле Строка QR-код (я передаю эту строку со смартфона через Telegram, можно через приложение Alt-C (спасибо VGHOST)) Или же вбиваем вручную значения в поля ФП, ФН, ФД;

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

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

 

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

В версии 2026-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 не будет опубликован. Обязательные поля помечены *