Свой кусочек информационного пирога по 54-ФЗ – обработка для получения данных о своих покупках по чекам ОФД (на примере сети магазинов «Лента»)

11.07.17

Учетные задачи - Кассовые операции

Новшества по 54-ФЗ в области новой ККТ и все новые аббревиатуры из двух и трех букв (ОФД, ФН, ФД и т.д.) – одни из главных событий в торговой отрасли 2016-2017-2018 гг. Несмотря на всю сложность выполнения новых обязательных требований для магазинов, для рядовых пользователей появляется возможность автоматизировать получение данных о своих покупках от Операторов фискальных данных (ОФД). Вашему вниманию предлагается несколько вариантов использования данных со своих онлайн-чеков (на примере получения данных о покупках в магазинах «Лента»).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Внешняя обработка для получения данных о покупках по ФПД и сумме чека
.epf 11,18Kb
7
7 Скачать (1 SM) Купить за 1 850 руб.
Мобильное приложение на платформе 1С с возможностью сканирования QR-кодов и загрузки данных в мобильное приложение
.apk 27,93Mb
2
2 Скачать (1 SM) Купить за 1 850 руб.
Инструкция по работе с мобильным приложением
.pdf 940,18Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

Новшества по 54-ФЗ в области новой ККТ и все новые аббревиатуры из двух и трех букв (ОФД, ФН, ФД и т.д.) – одни из главных событий в торговой отрасли 2016-2017-2018 гг. Несмотря на всю сложность выполнения новых обязательных требований для магазинов, для рядовых пользователей появляется возможность автоматизировать получение данных о своих покупках от Операторов фискальных данных (ОФД).

Государство ввело QR-код в чеке как инструмент гражданского контроля. Можно скачать бесплатное мобильное приложение «Проверка кассового чека в ФНС России», отсканировать QR-код и проверить чек на корректность. Однако, практической пользы для накопления данных о своих покупках с последующим их анализом, мобильное приложение ФНС пока предоставляет в очень ограниченном объеме. Кроме того, остается вопрос сохранения относительной приватности покупателя, так как для получения возможностей сохранения чеков в своем личном кабинете необходимо зарегистрироваться с предоставлением своих персональных данных.

Вашему вниманию предлагается несколько вариантов использования данных со своих онлайн-чеков (на примере получения данных о покупках в магазинах «Лента»):

- внешняя обработка для получения данных о покупках по ФПД (фискальному признаку документа) и сумме чека. Теоретические обработка должна работать в любой конфигурации на управляемых формах, у которой режим совместимости позволяет работать с методами типа «СтрНайти». Открывается через меню «Файл»

- мобильное приложение на платформе 1С с возможностью сканирования QR-кодов и загрузки данных в мобильное приложение с последующим анализом на количество и сумму покупок по товарам. Мобильное приложение скомпилировано для ОС Android (хотя приложение проверялась на разных версиях системы Android 3-4-5-6, однако, возможна ситуация, когда приложение не будет работать). Разработанное мобильное приложение никуда не передает данные и не обменивается с другими базами данных, приложениями или программами. Для загрузки онлайн-чеков не используются какие-либо персональные данные пользователя. Все накопленные данные являются исключительно собственностью пользователя мобильного приложения. Поэтому вся ответственность за сохранностью и целостностью данных лежит исключительно на пользователе мобильного приложения. Если у вас не получается загрузить мобильное приложением, то попробуйте его скачать с облака ТПУ по ссылке: https://filecloud.tpu.ru/index.php/s/ejfo64JndsC78HV

- инструкция по работе с мобильным приложением. Инструкцию по работе с мобильным приложением можно также скачать по ссылке: https://filecloud.tpu.ru/index.php/s/sBQ9JmHxLYMKp3p

Ниже приведены исходные модули внешней обработки. Настоящая статья написана в поддержку доклада «Народный big data или 54-ФЗ на службе анализа и планирования для рядовых покупателей» на конференции INFOSTART EVENT 2017 COMMUNITY (прямая ссылка на доклад: http://event.infostart.ru/2017/agenda/#item644121) Если доклад пройдет в итоговый список выступлений, то будет также выложены исходные модули мобильного приложения.

Модули формы внешней обработки:


&НаСервере
Процедура ЗагрузитьЧекНаСервере()
	
	ТекОбъект = РеквизитФормыВЗначение("Объект");
	
	URL = СокрЛП(Объект.URLЧека);
	ОтправляемаяКомандаНаФокус = URL;
	
	URLРазделенный = ТекОбъект.РазделитьURL(URL);
	Таймаут = 5;
	
	ИмяСервера           = URLРазделенный.ИмяСервера;
	ПутьКФайлуНаСервере  = URLРазделенный.ПутьКФайлуНаСервере;
	Протокол             = URLРазделенный.Протокол;
	Порт = Неопределено;
	ЗащищенноеСоединение = Неопределено;
	Если Протокол = "https" Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
	КонецЕсли;
	ПолнаяСтруктураURL = ТекОбъект.СтруктураURI(URL);	
	Если Не ПустаяСтрока(ПолнаяСтруктураURL.Порт) Тогда
		ИмяСервера = ПолнаяСтруктураURL.Хост;
		Порт = ПолнаяСтруктураURL.Порт;
	КонецЕсли;
	
	Прокси = ТекОбъект.ПолучитьПрокси(Протокол);
	
	Попытка
		Соединение = Новый HTTPСоединение(ИмяСервера, Порт, , , Прокси, Таймаут, ЗащищенноеСоединение);				
	Исключение
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		СообщениеОбОшибке = НСтр("ru = 'Ошибка при создании HTTP-соединения с сервером %1:'") + Символы.ПС + "%2";
		ВызватьИсключение СообщениеОбОшибке;
	КонецПопытки;
	
	Заголовки = Новый Соответствие;	
	HTTPЗапрос = Новый HTTPЗапрос(ПутьКФайлуНаСервере, Заголовки);	
	
	HTTPОтвет = Соединение.Получить(HTTPЗапрос);
	ФайлОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
	HTTPОтвет = ТекОбъект.СтроковыеФункцииКлиентСерверИзвлечьТекстИзHTML(ФайлОтвета);
	КоличествоТоваровВЧеке = СтрЧислоВхождений(HTTPОтвет,"vmb_i67bc30956372029315_vblock")/13 - 1;
	
	Для НомерТовара = 0 По КоличествоТоваровВЧеке Цикл 
		
		ПоправкаНаДлинуНомераСтроки = 0;
		Если НомерТовара >= 10 Тогда
			ПоправкаНаДлинуНомераСтроки = 1;
		КонецЕсли;
		
		ТекНачалоСтрокиТовара = СтрНайти(HTTPОтвет,"vmb_i67bc30956372029315_vblock"+СокрЛП(НомерТовара),,,2);
		Если ТекНачалоСтрокиТовара = 0 Тогда
			Продолжить;
		КонецЕсли;
		
		НачалоСтрокиТовара = ТекНачалоСтрокиТовара + 54 + ПоправкаНаДлинуНомераСтроки;
		ОкончаниеСтрокиТовара = СтрНайти(HTTPОтвет,"</span>",,НачалоСтрокиТовара);
		ДлинаНазванияТовара = ОкончаниеСтрокиТовара - НачалоСтрокиТовара;
		НазваниеТовара = Сред(HTTPОтвет,НачалоСтрокиТовара,ДлинаНазванияТовара);
		
		//количество
		НачалоСтрокиКоличества = СтрНайти(HTTPОтвет,"vmb_i67bc30956372029315_vblock"+СокрЛП(НомерТовара),,,3) + 54 + ПоправкаНаДлинуНомераСтроки;
		ОкончаниеСтрокиКоличества = СтрНайти(HTTPОтвет,"</span>",,НачалоСтрокиКоличества);
		ДлинаКоличества = ОкончаниеСтрокиКоличества - НачалоСтрокиКоличества;
		Количество = Сред(HTTPОтвет,НачалоСтрокиКоличества,ДлинаКоличества);
		
		//цена
		НачалоСтрокиЦены = СтрНайти(HTTPОтвет,"vmb_i67bc30956372029315_vblock"+СокрЛП(НомерТовара),,,4) + 54 + ПоправкаНаДлинуНомераСтроки;
		ОкончаниеСтрокиЦены = СтрНайти(HTTPОтвет,"</span>",,НачалоСтрокиЦены);
		ДлинаЦены = ОкончаниеСтрокиЦены - НачалоСтрокиЦены;
		Цена = Сред(HTTPОтвет,НачалоСтрокиЦены,ДлинаЦены);
		
		//сумма
		НачалоСтрокиСуммы = СтрНайти(HTTPОтвет,"vmb_i67bc30956372029315_vblock"+СокрЛП(НомерТовара),,,9) + 55 + ПоправкаНаДлинуНомераСтроки;
		ОкончаниеСтрокиСуммы = СтрНайти(HTTPОтвет,"</span>",,НачалоСтрокиСуммы);
		ДлинаСуммы = ОкончаниеСтрокиСуммы - НачалоСтрокиСуммы;
		Сумма = Сред(HTTPОтвет,НачалоСтрокиСуммы,ДлинаСуммы);
		
		НоваяСтрока = Объект.Покупки.Добавить();
		НоваяСтрока.НазваниеТовара = НазваниеТовара;
		НоваяСтрока.Количество = Количество;
		НоваяСтрока.Цена = Цена;
		НоваяСтрока.Сумма = Сумма;
		
	КонецЦикла;
		
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьЧек(Команда)
	
	Объект.Покупки.Очистить();
	СразуСсылкаНаЧек = "http://receipt.taxcom.ru/v01/show?fp=" + СокрЛП(Объект.ФПД) + "&s=" + СокрЛП(Формат(Объект.СуммаПокупки,"ЧГ=0")) + "&sf=False&sfn=False";
	Объект.URLЧека = СразуСсылкаНаЧек;
	ЗагрузитьЧекНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура ПерейтиПоСсылке(Команда)
	ЗапуститьПриложение(Объект.URLЧека);
КонецПроцедуры

Модули объекта внешней обработки:

Функция РазделитьURL(URL) Экспорт
	
	Результат = ПолучениеФайловИзИнтернетаКлиентСервер.РазделитьURL(URL);					
	
	Если Результат.Свойство("ПустьКФайлуНаСервере") Тогда
		Результат.Вставить("ПутьКФайлуНаСервере", Результат.ПустьКФайлуНаСервере);	
	КонецЕсли;
	Возврат Результат;
	
КонецФункции

Функция СтруктураURI(СтрокаURI) Экспорт
	
	Возврат ОбщегоНазначенияКлиентСервер.СтруктураURI(СтрокаURI);	
	
КонецФункции

Функция ПолучитьПрокси(Протокол) Экспорт
	
	Попытка
		Возврат ПолучениеФайловИзИнтернетаКлиентСервер.ПолучитьПрокси(Протокол);
	Исключение
		Возврат Неопределено;
	КонецПопытки;
	
КонецФункции

Процедура УстановитьHTTPЗаголовки(Заголовки) Экспорт 
	
	Куки = Новый Соответствие;
	Куки.Вставить("new-int-rel", "1");
	Куки.Вставить("expires", Формат(ДобавитьМесяц(ТекущаяДата(), 1), "Л=en_US; ДФ='ddd, dd-MMM-yyyy H:mm:ss G""MT'"));    
	Куки.Вставить("path", "/");
	СтрКуки = "";
	Для Каждого Кука Из Куки Цикл
		СтрКуки = СтрКуки + "; " + Кука.Ключ + "=" + КодироватьСтроку(Кука.Значение, СпособКодированияСтроки.КодировкаURL);	
	КонецЦикла;
	
	СтрКуки = Сред(СтрКуки, 3);
	
	Заголовки.Вставить("Cookie", СтрКуки);
	
КонецПроцедуры

Функция СтроковыеФункцииКлиентСерверИзвлечьТекстИзHTML(Знач ИсходныйТекст) Экспорт
	Результат = "";
	
	Текст = НРег(ИсходныйТекст);
	
	Позиция = Найти(Текст, "<body");
	Если Позиция > 0 Тогда
		Текст = Сред(Текст, Позиция + 5);
		ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 5);
		Позиция = Найти(Текст, ">");
		Если Позиция > 0 Тогда
			Текст = Сред(Текст, Позиция + 1);
			ИсходныйТекст = Сред(ИсходныйТекст, Позиция + 1);
		КонецЕсли;
	КонецЕсли;
	
	Позиция = Найти(Текст, "</body>");
	Если Позиция > 0 Тогда
		Текст = Лев(Текст, Позиция - 1);
		ИсходныйТекст = Лев(ИсходныйТекст, Позиция - 1);
	КонецЕсли;
	
	ПозицияНачалаУдаления = стрНайти(Текст, "ttc_multiple_block_panel",,1);
	ДлинаТекста = СтрДлина(Текст);
	
	ВтораяЧастьТекста = Прав(Текст,ДлинаТекста - ПозицияНачалаУдаления - 29);
	ИсходныйТекст = ВтораяЧастьТекста;
	
	Результат = Результат + ИсходныйТекст;

	Возврат СокрЛП(Результат);
	
КонецФункции

Данная статья не претендует на универсальность в загрузке данных чеков с ОФД. Автор хотел лишь поделиться своим мнением и некоторыми наработками в вопросе работы с доступными данными с сайтов ОФД.

54-ФЗ загрузка чеков онлайн-чеки ОФД

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    796351    4903    9546    

2858

SALE! 20%

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 7176 руб.

15.12.2015    170793    955    364    

400

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20640    20    49    

38

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.5, КА 2.5 ,ERP 2.5 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4500 руб.

27.08.2018    122198    1025    584    

864

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13735    13    48    

25

SALE! 25%

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5880 4410 руб.

25.05.2015    335553    1956    3058    

1031

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

60000 руб.

19.12.2022    12011    34    20    

21
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maxx 996 11.07.17 22:47 Сейчас в теме
Интересно
Сейчас почти наладили взаимодействие Битрикс + Касса Атол на ферме касс с последующи сброса чека в базу 1с

А откуда информацию берете о сервисах по получению информации о чеках?
2. delta 694 12.07.17 03:41 Сейчас в теме
(1) В данном случае данные о сервисе берутся непосредственно с сервиса проверки чеков оператора фискальных данных Такском (http://receipt.taxcom.ru/) с передачей всех необходимых для проверки чеков для этого ОФД параметров: фискального признака документа и суммы чека.
В обработке это строка кода:
СразуСсылкаНаЧек = "http://receipt.taxcom.ru/v01/show?fp=" + СокрЛП(Объект.ФПД) + "&s=" + СокрЛП(Формат(Объект.СуммаПокупки,"ЧГ=0"))
3. maxx 996 12.07.17 09:41 Сейчас в теме
(2)т.е. у всех ОФД буду открытые сервисы для программного подключения и вытаскивания информации о чеках (а не просто формочка на их сайте) ?
4. delta 694 12.07.17 10:04 Сейчас в теме
(3) Этот вопрос к каждому ОФД в отдельности. На сайтах ОФД про такого рода возможности ничего не написано. Лично мы в своих исследованиях из 10 действующих на текущий момент ОФД возможность получения данных по чекам нашли только у троих. Частично этот вопрос раскрывается в моем докладе на конференции Инфостарт-2017 (http://event.infostart.ru/2017/agenda/#item644121).
5. olegmedvedev 65 12.07.17 10:12 Сейчас в теме
(4)а каких ОФД не подскажите? первый ОФД(https://www.1-ofd.ru/) там есть?
6. delta 694 12.07.17 13:22 Сейчас в теме
(5) Нет, с Первого ОФД автоматически данные получать пока не получается. Данные удается пока получать только с ЭВОТОРа, ПЕТЕР-СЕРВИС Спецтехнологии и Такскома. Но даже во всех этих случаях есть свои ньюансы и сложности.
7. Mobsted 12.07.17 14:18 Сейчас в теме
А в каком формате чек возвращается?
8. delta 694 12.07.17 17:35 Сейчас в теме
(7) Для приведенного примера работы с ОФД Такском формат чека XML. Некоторые ОФД возвращают в формате JSON.
9. delta 694 19.07.17 07:43 Сейчас в теме +10 $m
Нашел на gihube интересный код для получения данных онлайн-чека с Первого ОФД, нужно только помочь перевести его часть кода с Python на язык 1С (вставил сюда только самую значимую часть кода:

 url_first_get = "https://consumer.1-ofd.ru/#/landing"
    url_receipt_get = "https://consumer.1-ofd.ru/api/tickets/ticket/{}"
    url_receipt_find = "https://consumer.1-ofd.ru/api/tickets/find-ticket"

    def is_suitable(self, data): //функция по возврату булевых данных
        return data['fiscal_drive_id'] and data['fiscal_id'] and data['fiscal_document_number'] and not data['kkt']

    def search(self): //self - сама на себя
        print("Search in ofd1...")

        ofd1_payload = {
            "fiscalDocumentNumber":	self.fiscal_document_number,
            "fiscalDriveId":		self.fiscal_drive_id,
            "fiscalId":				self.fiscal_id
        }
        # fix for single quotes server error
        ofd1_payload = json.dumps(ofd1_payload, sort_keys=True)

        session = requests.Session() 
        session.get(self.url_first_get)

        session.headers.update({
            'Content-Type': 'application/json',  # fix 415 error
            'X-XSRF-TOKEN': session.cookies.get_dict()['XSRF-TOKEN'],
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
        })

        # print(session.headers)
        # print(session.cookies.get_dict())
        # cookies = session.cookies.get_dict().copy()
        # cookies.update({
        # 	'PLAY_LANG': 'ru'
        # })
        # print(cookies)

        ofd1 = session.post(self.url_receipt_find, data=ofd1_payload)

        if (ofd1.status_code == 200):
            answer = ofd1.json()
            status = answer["status"]
            self.receipt_id = answer["uid"]

            print("Getting the receipt...")
            ofd1 = requests.get(self.url_receipt_get.format(self.receipt_id))

            if (ofd1.status_code == 200):
                self.raw = json.dumps(
                    ofd1.json(), ensure_ascii=False).encode('utf8')
                self.receipt_data = json.loads(self.raw)

                filename = self.get_receipt_file_name()

                if not os.path.exists(filename):
                    with open(filename, 'w') as outfile:
                        outfile.write(self.raw)
                else:
                    print("Receipt already saved!")
                    if not self.resend:
                        print("Skipping...")
                        return False
                return True
            else:
                print("Error {} while getting receipt from ofd1!".format(
                    ofd1.status_code))
                if config.debug:
                    print(ofd1.text)

        elif (ofd1.status_code == 404):
            print("Not found!")

        else:
            print("Error {} while searching in ofd1!".format(ofd1.status_code))
            if config.debug:
                print(ofd1.text)

        return False
Показать
Оставьте свое сообщение