Загрузка кассовых чеков с сервера ФНС. Расширение для 1С: Деньги



Для тех, кто ведет домашние финансы в 1С:Деньги. Расширение поможет сократить время на ввод данных о расходах, вместо набивания данных руками, данные чека (сумму и товары) можно загрузить из электронного чека, который хранится на сервере ФНС.

Теперь есть возможность не вводить чеки руками с большим количеством позиций, а загружать данные чека с сервера ФНС. Получение электронных чеков стало возможным с 01.02.2024 г., все кассовые чеки хранятся на сервере ФНС России.

Алгоритм взят из мобильного приложения Проверка кассового чека. Для получения чеков используются данные авторизации из этого приложения, поэтому для использования расширения необходимо установить мобильное приложение и зарегистрироваться в нем. В качестве логина используется мобильный телефон, пароль придет в СМС.

Получение чека делается GET-запросом на сервер ФНС вида: 
http://proverkacheka.nalog.ru:8888/v1/inns/*/kkts/*/fss/XXXXXXXXXXXXXXXX/tickets/YYYYY?fiscalSign=ZZZZZZZZZZ&sendToEmail=no

Где:

  •  XXXXXXXXXXXXXXXX — номер фискального накопителя (ФН)
  •  YYYYY — фискальные данные(ФД)
  •  ZZZZZZZZZZ — фискальный признак документа(ФПД)

Обязательные заголовки в запросе:

  • Authorization — строка "basic <строка "телефона:пароль" зашифрованные в base64>". Строка вида "basic FkdDp3d;fm". Номер телефона, на который зарегистрировано мобильное приложение и пароль из СМС.
  • Device-Id — любой набор символов, в обработке используется строка "androidID";
  • Device-OS — идентификатор ОС, возможно тоже произвольный, в обработке используется строка "Adnroid 6.0.1".

Ответ сервера приходит в формате JSON, который просто разбирается средствами платформы.

Описание запроса на сервер ФНС найдено здесь. Код у расширения открыт. 

Требования

1С:Деньги 8, редакция 2.0 (2.0.33.7). Платформа 8.3.10.2580. На других релизах платформы возможна ошибка "Неизвестное имя формы."

Установка

1. В главном меню выбрать пункт "Все функции".
2. В открывшейся форме открыть ветвь "Стандартные", выбрать пункт "Управление расширениями конфигурации".
3. В открывшемся списке расширений, нажать кнопку "Добавить", откроется окно выбора файла, в котором необходимо выбрать файл расширения.
4. Для расширения снять галочку "Безопасный режим".
5. Перезапустить сеанс нажав на гиперссылку "перезапустить", либо закрыть и снова открыть 1С.
6. В форме документа "Расход" появится команда "Получить чек с сервера ФНС".

Бонус

Бонусом обработка для получения чека для любой конфигурации на управляемых формах с платформой 8.3.6.1977 и выше.

49 Comments

  1. koks17v

    неудобно же. надо их сначала в официальном приложении нафоткать.

    лучше бы для мобильной версии. а с бэком обмен.

    вот тут я начал, но не закончил.

    Reply
  2. Bazil

    (1) Не понял про нафоткать в официальном приложении.

    Если не используешь мобильное приложение, то это удобнее чем ничего.

    Reply
  3. koks17v

    (2)как чеки появятся в базе ФНС?

    Reply
  4. Bazil

    (3) Продавец их отправляет.

    Reply
  5. Bazil

    +4 Точнее не продавец, а ОФД. Продавец отправляет в ОФД.

    Reply
  6. koks17v

    (5)то есть пользователю предлагается в каждом ларьке кассиру вслух диктовать свой номер телефона, правильно я понимаю?

    Reply
  7. Bazil

    (6) Нет, не правильно. Условно сейчас каждый ларек (почти каждый ларек) отправляет в электронном виде кассовый чек в налоговую, пользователь используя данные на бумажном чеке (ФД, ФПД, ФН) делает запрос на сервер ФНС и получает детализацию по чеку.

    Reply
  8. koks17v

    (7)ну наконец-то понял задумку. то есть по каждому чеку вручную надо вводить фискальные данные чека? огонь))

    Reply
  9. olegmedvedev

    Шикарно! Автору тыща плюсов. Хотел такую написать, но так и не понял какой нужно запрос сделать к ФНС.

    Reply
  10. sssss_aaaaa_2011

    (8)

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

    Нет, всего лишь пользоваться мобильным приложением ФНС по сканированию и проверке чеков. Можно не отходя от кассы.

    Reply
  11. sssss_aaaaa_2011

    (9) Это параметры авторизации на сервере ФНС. Заводятся при первом обращении через приложение ФНС по сканированию и проверке чеков.

    Reply
  12. olegmedvedev

    (11) Спасибо) я уже прочитал повторно публикацию и понял что это. Единственное что пока еще не знаю что делать — как зарегистрироваться на этом сайте без приложения. Наверное поставлю Bluestacks и внего скачаю это приложение и там попробую зарегаться, тк телефон у меня это приложение не поддерживает.

    Reply
  13. koks17v

    Напишите ваше сообщение

    (10) я же первым вопросом это спросил в (1). что по вашей задумке привязку чеков к номеру телефона нужно делать через официальное приложение ФНС.

    вот мое мобильное приложение, которое сканирует чеки. и которое проще привязать к мобильной версии 1С миниденьги или к любому другому мобильному приложению по учету личных финансов.

    Reply
  14. Bazil

    (12) Кстати, это хорошая идея. Можно посмотреть какой запрос отправляет приложение при регистрации, слать такой же запрос из 1С.

    Reply
  15. SmokySKY

    {ЗагрузкаЧековССервераФНС Документ.Расход.Форма.ФормаДокумента.Форма(24)}: Ошибка при вызове метода контекста (ОткрытьФорму)

    ОткрытьФорму(«Документ.Расход.Форма.зчФормаВводаДанныхЧека», СтруктураПараметры, ЭтаФорма, , , ,Новый ОписаниеОповещения(«Расширение_ЗагрузкаЧека_ПриЗакрытииФормыФормаВводаДанныхЧек­а», ЭтаФорма), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

    по причине:

    Неизвестное имя формы. Имя: «Документ.Расход.Форма.зчФормаВводаДанныхЧека»

    Reply
  16. Bazil

    (15) Платформа 8.3.11?

    Reply
  17. Bazil

    (15) Попробуйте запустить на 8.3.10.

    Reply
  18. olegmedvedev

    а список ошибок сервера где можно посмотреть? например 202 или 406

    Reply
  19. SmokySKY

    8.3.10.2466(16) (17)

    Reply
  20. Bazil

    (18) Например Вики

    Reply
  21. SmokySKY

    (17) Запускаю на платформе 8.3.10.2466.

    Reply
  22. Bazil

    (21) Есть возможность запустить на 8.3.10.2580? Клиент 32-х разрядный? У меня такая ошибка возникала на 8.3.11. Вот

    здесь человек пишет про такую же ошибку, только на 8.3.9.

    Reply
  23. Bazil

    (21) К сожалению, это ошибка платформы.

    Reply
  24. SmokySKY

    (23)1С:Предприятие 8.3 (8.3.10.2580) заработало

    Reply
  25. SmokySKY

    Небольшая путаница с ФД № и ФП, расширение рабочее, если добавить соответствие номенклатуры и позиций чека будет отлично)

    Reply
  26. Famza

    Почему проверка только через ФНС? Можно расширение настроить под другие сервисы без регистрации http://online-kassa.pro/ispolzovanie/proverka-cheka-onlajn-kassy.html ?

    Reply
  27. Famza

    Подключил расширение по инструкции платформа 8.3.10. На 8.3.11 не работает?

    Reply
  28. Bazil

    (26) Да, только ФНС. Единого API у операторов нет, у всех свои запросы и ответы.

    Reply
  29. Bazil

    (27) Да. На 8.3.11 из-за ошибки платформы может не работать.

    Reply
  30. Famza

    (26), А можно любого оператора привести пример? Я думаю, кому надо сами по образцу сделают.

    Reply
  31. Bazil

    (30) Вот например, отсюда.

    У Такскома такой запрос https://receipt.taxcom.ru/v01/show?fp=%5Bfpd%5D&s=%5Bsumm%5D&sf=False&sfn=False

    где fpd — фискальная подпись документа

    summ — итоговая сумма чека

    А возвращает он html страницу, которую надо парсить.

    Я начинал писать эту обработку для чеков Такскома, но потом решил сделать универсальную для всех чеков.

    Reply
  32. olegmedvedev

    Лично для себя я допилил это расширение на два предмета:

    1) автоматическое проставление статьи затрат (передается из формы «Получение чека из ФНС»), тк если у меня чек из аптеки, то все товары пойдут по статье «Медицина», если какие-то позиции будут отличаться по статье — проще руками поправить.

    2) Прикрутил https://infostart.ru/public/157814/ (как вариант можно и https://infostart.ru/public/359549/ но там дороже обработка) по считыванию QR кодов с камеры.

    * Еще есть нюанс — ошибка 202 выдается если чек найден — но еще в процессе добавления кабинет. То есть при появлении 202 ошибки я вызываю запрос на сервер повторно.

    В остальном конфигурация офигенна)

    Reply
  33. sikvel2012

    (32) а ни поделитесь своим решением?

    Reply
  34. Kaavan

    В мобильном приложении есть возможность считывать штрих-коды.

    Он пишется в комментарий как «Заполнено по штрихкоду fn=8710000101314129 fp=3808942063 i=6500»

    Я просто добавил автозаполнение этих полей в обработке

    Reply
  35. Kaavan

    Туда же: Возможность сопоставить статью магазину по номеру аппарата.

    при закрытии (ОК) сохранять, при открытии восстанавливать

    Теоретически можно так проделать и с магазином, но нет необходимости.

    Reply
  36. Kaavan

    и да, автору спасибо за разработку!

    Reply
  37. echo77

    (0) Идея хорошая, правильная. Это три числа с чека надо вбить?

    Reply
  38. Bazil

    (37) Да.

    Reply
  39. echo77

    Сделал такую же, но с перламутровыми пуговицами возможностью вбивать текст QR-кода. Для любой конфигурации(обычное приложение)

    https://infostart.ru/public/917821/

    Сейчас почему-то не работает, при отправке запроса выдает ошибку: код ответа=500 irkkt db timeout или код ответа=451 illegal public api usage

    Советую в вашей обработке, в случае получения ответа <> 200 возвращать код и тело ответа, так будет понятнее в чем дело

    HTTPОтвет.КодСостояния + » » + HTTPОтвет.ПолучитьТелоКакСтроку()
    Reply
  40. RSA512

    Присоединяюсь код не работает, видимо кто-то поставил блокировку

    в Ответе пишет «illegal public api usage» незаконное публичное использование api

    Reply
  41. Alex_grem

    Если кто-то знает как обойти, прошу написать!

    Reply
  42. Bazil

    (40) Да, видимо прикрыли лавочку.

    Reply
  43. Bazil

    (41) Могу предложить механизм загрузки с сервера Такском.

    Reply
  44. toonce

    (43) Но Такском же ОФД. Не все чеки с него получить можно.

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

    Reply
  45. toonce

    (43) Но Такском же ОФД. Не все чеки с него получить можно.

    P.S. До нового года и в начале января работал вариант с несколькими контейнерами с тор прокси, которые перезапускались каждые пол часа и меняли ip. Но и эту лавочку прикрыли, похоже.

    Reply
  46. echo77

    (41) Поправил в своей публикации https://infostart.ru/public/917821/. В моем комментарии от 17.01.2019 я описал порядок запросов, чтобы все было «легально» 🙂

    Reply
  47. Alex_grem

    (46) Спасибо тебе, милый человек! Прямо сэкономил кучу времени по вбиванию чеков в базу!

    Reply
  48. samoswork

    (35) Я пошёл чуть другим путём.

    Добавил в расширение справочник Теги (плоский, только Наименование).

    Добавил регистр сведений НазначениеТеговПоСтатьям аналогично назначению аналитик статьям.

    Вывел через расширение на форму Статьи табличку с тегами.

    Теперь у меня автоматически анализируется название товара и ищутся в нём теги для автоподстановки Статьи. Чем больше тегов найдено, тем приоритетней выбор Статьи.

    Например, для статьи Алкоголь накидываем теги : пиво, коньяк, водка, вино

    для статьи Курение теги: сигарет, табак, трубка, трубочн.

    В результате, если в чеке пришёл товар : Табак трубочный «Коньяк», то у Алкоголь будет 1 совпадение, у Курение будет два совпадения и подберется статья Курение.

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

    Reply
  49. samoswork

    (32)

    тк если у меня чек из аптеки, то все товары пойдут по статье «Медицина», если какие-то позиции будут отличаться по статье — проще руками поправить.

    Сделал чуть по-другому. См (48) чуть ниже.

    Reply

Leave a Comment

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