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

11.08.24

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

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

Платные

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний за 2430 руб. в месяц

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Публикации по данному вопросу есть //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. Скриншоты форм в порядке добавления

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

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.130.22

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

См. также

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

Интеграция сервиса dolyame.ru с 1С:Розница 2.3 для приема платежей в рассрочку. Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц.Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    8533    50    13    

48

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

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 3.0. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер). Интегрировано в Чек ККМ, Рабочее место кассира (РМК)

24000 руб.

02.11.2024    1789    13    1    

11

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

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

36000 руб.

03.08.2020    20217    26    24    

22

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

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21784    13    19    

19

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

Программа позволяет одним кликом настроить сбор цен ваших конкурентов или дилеров в интернете. Автоматически собирает данные результата поиска Яндекса (вам не придется вручную добавлять каждый сайт, за которым нужно следить). Обновление цен происходит по заданному вами расписанию автоматически. Можете легко отслеживать позиции вашего сайта в Яндексе по ключевым словам и фразам. Этот инструмент даст вам лучшее понимание того, как ваша SEO-стратегия влияет на видимость вашего сайта в поисковой выдаче, и поможет вам улучшить контент и структуру сайта для повышения его позиций. Функция доступна во всех тарифах.

19950 руб.

23.09.2019    31815    9    14    

31

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

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

4200 руб.

07.06.2022    19872    45    56    

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