Skip to content

Latest commit

 

History

History
93 lines (64 loc) · 5.62 KB

README.md

File metadata and controls

93 lines (64 loc) · 5.62 KB

REST API клиент Тинькофф Банк для 1С

REST клиент 1С для получения данных из личного кабинета Тинькофф Банка.

Возможности

  • Двухфакторная авторизация с использованием кода подтверждения по СМС.
  • Получение данных по операциям за период в виде структуры(JSON) и в формате Excel.

Реализованы методы:

  • ОткрытьСессию - session - создание новой сесии, получение идентификатора сессии, который используется для остальных методов.
  • СессияАктивна - session_status - проверка активности сессии.
  • ВыполнитьАвторизацию - sign_up - запрос на авторизацию.
  • ПодтвердитьАвторизацию - confirm - подтверждение авторизации, при использовании кодов подтверждения по СМС.
  • ПовыситьУровеньДоступа - level_up - повышение уровня доступа после авторизации.
  • ПолучитьОперацииЗаПериод - operations - получение операций за период.
  • ПолучитьОперацииЗаПериодВФорматеExcel - export_operations - получение операций за период в формате Excel.
  • ПолучитьДанныеПоСчетамКартам - accounts_flat - получение данных по счетам и картам: баланс, реквизиты и прочее.
  • ЗакрытьСессию - sign_out - закрытие текущей сессии.

Требования

  • Платформа 8.3.10 и выше.
  • Библиотека стандартных подсистем 2.4 и выше.

Установка

Установите расширение или скопируйте общие модули к себе в конфигурацию.

Пример использования

Получение операций при простой авторизации

&НаКлиенте
Процедура ПолучитьОперации(Команда)
	
	ПолучитьОперацииНаСервере();
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьОперацииНаСервере() 
	
	Перем Сессия;
	
	НачалоПериода = НачалоМесяца(ТекущаяДатаСеанса());
	КонецПериода = ТекущаяДатаСеанса();

	ТинькоффApiСервер.ВыполнитьАвторизацию(Сессия, "Bazil1c", "MyPassword");

	Результат = ТинькоффApiСервер.ПолучитьОперацииЗаПериод(Сессия, 
		НачалоПериода, КонецПериода); 
	
КонецПроцедуры

Получение операций в формате Excel при двухфакторной авторизации

Асинхронные вызовы используются, так как необходимо вводить код подтверждения.

&НаКлиенте
Процедура ПолучитьОперации(Команда)
	
	Сессия = Неопределено;
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("НачалоПериода", НачалоМесяца(ОбщегоНазначенияКлиент.ДатаСеанса()));
	ДополнительныеПараметры.Вставить("КонецПериода", ОбщегоНазначенияКлиент.ДатаСеанса());
	ОписаниеОповещения = Новый ОписаниеОповещения("ПолучитьОперацииПродолжение", ЭтотОбъект, ДополнительныеПараметры);
	
	ТинькоффApiКлиент.Авторизация(ОписаниеОповещения, "Bazil1c", "MyPassword");
	
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьОперацииПродолжение(Сессия, ДополнительныеПараметры = Неопределено) Экспорт
	
	Результат = ТинькоффApiВызовСервера.ПолучитьОперацииЗаПериодВФорматеExcel(Сессия, 
		ДополнительныеПараметры.НачалоПериода, ДополнительныеПараметры.КонецПериода); 
		
	Если Результат.Отказ Тогда
		Возврат;
	КонецЕсли; 	
		
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	ДиалогВыбораФайла.Фильтр = НСтр("ru = 'Лист Excel(*.xls); Лист Excel2007-...(*.xlsx)|*.xls;*.xlsx'");
		
	ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла();	
	
	ПараметрыСохранения.Вставить("Диалог", ДиалогВыбораФайла);
	
	ФайловаяСистемаКлиент.СохранитьФайл( , Результат.АдресВоВременномХранилище, "Операции" , ПараметрыСохранения);	
	
КонецПроцедуры