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

24.03.23

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

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

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

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

Публикации по данному вопросу есть //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С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Беларусь Россия Казахстан Управленческий учет Платные (руб)

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

60000 руб.

05.09.2023    2228    21    37    

23

Выгрузка заказов из 1С в MEASOFT (ранее "Курьерская служба 2008") [РАСШИРЕНИЕ]

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

Данный модуль предоставляет возможность выгружать заказы из 1С: Управление торговлей 11 версии в "MEASOFT" (ранее "Курьерская служба 2008").

9600 руб.

27.04.2022    10400    9    3    

6

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

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

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

12000 руб.

18.03.2019    29827    104    99    

57

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

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

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

4200 руб.

07.06.2022    13805    39    56    

31

Sync1C: Синхронизация 1С и OpenCart

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

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

3840 руб.

30.03.2018    42682    80    137    

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