Загрузка транзакций о заправках с сайта ППР (Передовые платежные решения) за период в 1С

24.03.23

Интеграция - Сайты и интернет-магазины

Внешняя обработка для загрузки транзакций с сайта ППР за период, создания документов поступления товаров и услуг по каждой топливной карте и документа счет-фактура к документам поступления.

Скачать файлы

Наименование Файл Версия Размер
Загрузка транзакций о заправках с сайта ППР(Передовые платежные решения) за период в 1С
.epf 31,77Kb
4
.epf 31,77Kb 4 Скачать

Публикации по данному вопросу есть //infostart.ru/public/1154740/ , //infostart.ru/public/1664832/, переписывать вводную часть не буду. Однако техническая сторона вопроса, на мой взгляд не раскрыта, и требует более детального освещения. Для решения задачи будем использовать внешнюю обработку.

1. Согласно документации ППР, для получения списка всех транзакций за интересующий нас период, мы должны сформировать строку запроса вида: GET "https://online.petrolplus.ru/api/public-api/v2/transactions?dateFrom=2023-02-25&dateTo=2023-02-28&format=json" -H  "Authorization: paqSBUCsBTObAhXRlsQbOMAlVwjOyoHd" Параметры dateFrom и dateTo будем брать из соответствующих реквизитов формы в момент запроса, а для адреса сервера, строки запроса и ключа API создадим соответствующие реквизиты обработки. Параметры подключения будем сохранять в хранилище общих настроек индивидуально для каждого пользователя.

&НаКлиенте
Процедура СохранитьНастройкиПоключения(Команда)
	ПараметрыПодключения = Новый Структура;
    ПараметрыПодключения.Вставить("АдресСервера",Объект.АдресСервера);
	ПараметрыПодключения.Вставить("СтрокаЗапроса",Объект.СтрокаЗапроса);
    ПараметрыПодключения.Вставить("Ключ",Объект.Ключ);
	СохранитьПараметрыНаСервере(ПараметрыПодключения);
	Закрыть(); 
КонецПроцедуры //СохранитьНастройкиПоключения

&НаСервере
Процедура СохранитьПараметрыНаСервере(Параметры)
	КлючОбъекта  = "ПараметрыПодключенияППР"; 
    КлючНастроек = "НастройкиПодключения";
    ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Параметры,,ИмяПользователя());
КонецПроцедуры // СохранитьПараметрыНаСервере

При запуске обработки ранее сохраненные настройки будут разгружены в реквизиты объекта, то есть в реквизиты обработки.

&НаСервере
Процедура ЗагрузитьПараметрыНаСервере()
	СтруктураОбщихПараметров = Неопределено;
	КлючОбъекта  = "ПараметрыПодключенияППР"; 
	КлючНастроек = "НастройкиПодключения";
	СтруктураОбщихПараметров = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта, КлючНастроек,,,ИмяПользователя());
	Если ТипЗнч(СтруктураОбщихПараметров) = Тип("Структура") Тогда
		СтруктураОбщихПараметров.Свойство("АдресСервера",Объект.АдресСервера);
		СтруктураОбщихПараметров.Свойство("СтрокаЗапроса",Объект.СтрокаЗапроса);
		СтруктураОбщихПараметров.Свойство("Ключ",Объект.Ключ);
	КонецЕсли;
КонецПроцедуры //ЗагрузитьПараметрыНаСервере

2. Для получения списка транзакций создадим новый объект СоединениеHTTP, используя ранее сохраненные параметры. В качестве заголовков Content-Type и параметра format установим значения согласно документации ППР. Сформируем строку запроса, создадим ЗапросHTTP. Установим соединение используя метод GET, ответ сервера запишем в ОтветHTTP. Выполним десериализацию тела ответа с помощью функции ПрочитатьJSON для получения данных ответа в виде структурированной сущности.

 &НаСервере
 Функция ПолучитьДанныеСайта(ПараметрыПодключения)
	 СоединениеHTTP = Новый HTTPСоединение(ПараметрыПодключения.АдресСервера,
	 		,,,,,Новый ЗащищенноеСоединениеOpenSSL());
	 Заголовки = Новый Соответствие();
	 Заголовки.Вставить("Content-Type", "application/json");
	 Заголовки.Вставить("Authorization", ПараметрыПодключения.Ключ);
	 СтрокаЗапросаСПараметрами = СтрШаблон("%1?dateFrom=%2&dateTo=%3&format=json",
	 		ПараметрыПодключения.СтрокаЗапроса, 
			ПараметрыПодключения.НачПериода, 
			ПараметрыПодключения.КонПериода);
	 ЗапросHTTP = Новый HTTPЗапрос(СтрокаЗапросаСПараметрами, Заголовки);
	 ОтветHTTP = СоединениеHTTP.ВызватьHTTPМетод("GET", ЗапросHTTP);
	 СтруктураОтвета = Новый Структура;
	 СтруктураОтвета.Вставить("КодСостояния", ОтветHTTP.КодСостояния);
	 Попытка
		 ЧтениеJSON = Новый ЧтениеJSON;
		 ЧтениеJSON.УстановитьСтроку(ОтветHTTP.ПолучитьТелоКакСтроку("UTF-8"));
		 ОтветСервера = ПрочитатьJSON(ЧтениеJSON);
		 СтруктураОтвета.Вставить("ОтветСервера", ОтветСервера);
	 Исключение
		 Сообщить(ОписаниеОшибки());
		 Возврат Неопределено;
	 КонецПопытки;
	 Возврат СтруктураОтвета;	 
 КонецФункции // ПолучитьДанныеСайта

3. Проанализируем код ответа сервера, и в случае кода 200, что означает успешное выполнение запроса, и наличия транзакций, преобразуем данные ответа в таблицу значений ТЗ. Для этого сформируем список колонок ТЗ в соответствии с данными ответа сервера. Так как табличная часть СписокТранзакций изначально содержит только колонку НомерСтроки добавляем колонки аналогично таблице значений. Далее заполняем ТЗ, и выводим в табличную часть СписокТранзакций на форме обработки.

 &НаСервере
 Процедура ЗаполнитьТабличнуюЧасть(ПараметрыПодключения)
	 СтруктураОтвета = ПолучитьДанныеСайта(ПараметрыПодключения);
	 Если СтруктураОтвета = Неопределено Тогда
		 Возврат; 
	 КонецЕсли;
	 Если СтруктураОтвета.КодСостояния = 200 Тогда
		 Если СтруктураОтвета.ОтветСервера["transactions"].Количество() > 0 Тогда
			 ТЗ = Новый ТаблицаЗначений;
			 Объект.СписокТранзакций.Очистить();
			 ПерваяСтруктура = СтруктураОтвета.ОтветСервера["transactions"][0];
			 Для Каждого Свойство Из ПерваяСтруктура Цикл
				 ТЗ.Колонки.Добавить(Свойство.Ключ);
				 Если Элементы.Найти(Свойство.Ключ) = Неопределено Тогда
					 ДобавитьКолонкуВТабличнуюЧасть(Свойство.Ключ);
				 КонецЕсли;
			 КонецЦикла;
			 Для каждого Транзакция из СтруктураОтвета.ОтветСервера["transactions"] Цикл
				 НоваяСтрока = ТЗ.Добавить();
				 ЗаполнитьЗначенияСвойств(НоваяСтрока, Транзакция);
			 КонецЦикла;
			 Объект.СписокТранзакций.Загрузить(ТЗ);
		 Иначе
			Сообщить("Нет транзакций за выбранный период."); 
		 КонецЕсли;
	 Иначе	
		 Сообщить("Не удалось получить данные с сайта. Код ответа " + Строка(СтруктураОтвета.КодСостояния)); 
	 КонецЕсли;
 КонецПроцедуры // ЗаполнитьТабличнуюЧасть

4. Полагаю, что дальнейшая обработка полученных данных сугубо индивидуальна для каждой организации, и в подробном рассмотрении не нуждается. В данной обработке документ поступления будет создаваться по каждой топливной карте, согласно параметрам создания документов. Счет-фактура создается общая к созданным документам поступления согласно настройкам входящих документов. См. скриншоты. Обработка тестировалась на конфигурации Бухгалтерия предприятия КОРП 3.0.130.22, платформа 8.3.18.1959.

5. Скриншоты форм в порядке добавления

  • Основная форма
  • Настройки подключения
  • Параметры создания документов поступления
  • Входящие документы

Обработка API Загрузка ППР Передовые Платежные Заправка Топливо

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

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

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    7180    89    74    

69

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15750    10    17    

11

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1193    6    1    

6

SALE! 15%

Обмен данными с сайтом. БП 3.0

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 10200 руб.

18.03.2019    31284    108    100    

62

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17558    6    15    

13

SALE! 33%

«Мониторинг цен» – сервис для отслеживания цен конкурентов на ведущих маркетплейсах России

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

Сервис помогает отслеживать цены на ведущих маркетплейсах России только для одного региона – Москва и Московская область. Выполняйте анализ и контролируйте цены Ваших конкурентов сразу в системе 1С.

2400 1608 руб.

29.05.2023    6655    25    37    

15

Выгрузка для АВИТО

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Выгрузка товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    15349    42    56    

37
Оставьте свое сообщение