# Форум 1С > Конфигурирование, программирование 1С - Предприятие >  API Tinkoff

## aabbam

Есть потребность в связи по API с этим банком. Опыта такого не имел. Не знаю даже, с чего начать. Может кто-нибудь что-нибудь посоветовать?

----------


## Hitcher73

Начинайте сразу с API2

----------


## aabbam

Каким образом?

----------


## Hitcher73

У Тиньков есть как минимум API с личным кабинетом и 2 API  для торговли. Это совершенно разные вещи. Вам какой надо?

Когда я говорил про API 2 я имел  в виду API-инвест 
Вот начало 
https://tinkoff.github.io/investAPI/
Вот все методы API 2
https://tinkoff.github.io/investAPI/swagger-ui/

Зная как в 1с послать HTTP запрос с помощью вышеуказанных страниц  
можно получить все что необходимо для анализа и торговли

----------

aabbam (27.07.2022)

----------


## aabbam

Так вроде и знаю, курсы валют с сайта центробанка получаю, но тут что-то никак. 
Задача такова, чтобы не столько торговать пока, сколько графики получать или хотя бы котировки на момент данный. Достаточно для этого просто API с кабинетом личным?

----------


## Hitcher73

Тогда  вышеописанных ссылок должно хватить. Я использовал вот эту библиотекуhttps://infostart.ru/1c/articles/709325/
Попоробовать с чего- то  легкого . Например получить список валют . 	
Вот URL   = "https://invest-public-api.tinkoff.ru";

Вот	метод = "/rest/tinkoff.public.invest.api.contract.v1.InstrumentsS  ervice/Currencies"	. 
Найди этот метод на страницеhttps://tinkoff.github.io/investAPI/swagger-ui/ и посмотри требования к запросу и как будет выглядеть ответ. 

Вот	данные = "{""instrumentStatus"": INSTRUMENT_STATUS_UNSPECIFIED}" которые нужно передать 

 Также нужно передать  следующие заголовки

	Заголовки.Вставить("Authorization  ","Bearer " + Токен);
	Заголовки.Вставить("accept", "application/json");
	Заголовки.Вставить("Content-Type", "application/json");

где Токен - это токен -полученный в личном кабинете инвестиций
Мне хватило несколько дней чтобы с нуля во всем разобраться. Я даже не знал что такое HTTP запрос

----------

aabbam (28.07.2022)

----------


## aabbam

Процедура FormНаСервере()
	Сервер = "https://invest-public-api.tinkoff.ru";
	Порт = 443;
	Логин = "";
	Пароль = "";

	Прокси = Новый ИнтернетПрокси(Ложь);
	ЗащищенноеСоединениеOpenSSL = Новый ЗащищенноеСоединениеOpenSSL(Н  еопределено,Неопределено);
	СоединениеHTTP = Новый HTTPСоединение(Сервер, Порт, Логин, Пароль,Прокси,,ЗащищенноеС  единениеOpenSSL);

	Токен = "токен"; 

	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization  ", "Bearer " + Токен);
	Заголовки.Вставить("accept", "application/json");
	Заголовки.Вставить("Content-Type", "application/json");
	Сервис = "rest/tinkoff.public.invest.api.contract.v1.UsersService/GetAccounts";

	ЗапросHTTP = Новый HTTPЗапрос(Сервис, Заголовки);
	ЗапросHTTP.УстановитьТелоИз  троки("{}", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИсп  ользовать);

	Результат = СоединениеHTTP.ВызватьHTTPМет  д("GET", ЗапросHTTP);

	Если Результат.КодСостояния <> 200 Тогда
	    Сообщить("Ошибка выполнения запроса. Код состояния "+Результат.КодСостояния)  ;
	   	Возврат;
	КонецЕсли;

	Данные = Результат.ПолучитьТелоКак  троку();
	Сообщить(Данные);

КонецПроцедуры

----------


## aabbam

Я вот такое сочинил, но не работает. Причина в чём, пока мне не понятно.

----------


## borodаn

> Процедура FormНаСервере()
> 	Сервер = "https://invest-public-api.tinkoff.ru";
> 	Порт = 443;
> 	Логин = "";
> 	Пароль = "";
> 
> 	Прокси = Новый ИнтернетПрокси(Ложь);
> 	ЗащищенноеСоединениеOpenSSL = Новый ЗащищенноеСоединениеOpenSSL(Н  еопределено,Неопределено);
> 	СоединениеHTTP = Новый HTTPСоединение(Сервер, Порт, Логин, Пароль,Прокси,,ЗащищенноеС  единениеOpenSSL);
> ...


Сервер должен быть без https:// в Новый HTTPСоединение(Сервер,

----------


## borodаn

Ух ты, прикольно. В предыдущем сообщении в цитате больше, чем в оригинале, причем я ничего не дописывал. Когда жмешь "ответить с цитированием" в цитате появляется дополнительный текст, который не виден в оригинале, по крайней мере в моем браузере )

Короче, Сервер должен быть без https, просто Новый HTTPСоединение("invest-public-api.tinkoff.ru" ...

А тело и его тип вообще бессмысленно устанавливать. 
Заголовки.Вставить("Content-Type", "application/json");
ЗапросHTTP.УстановитьТелоИз  троки("{}", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИсп  ользовать);

Потому что когда делаешь ГЕТ, то 1С тело вообще не отправляет:
Результат = СоединениеHTTP.ВызватьHTTPМет  д("GET", ЗапросHTTP);

----------


## borodаn

Походу это форум так работает. Теперь и мое сообщение подрезал, вчера еще полностью показывал. Но, думаю, если нажать кнопку "ответить с цитированием" - то тоже можно полностью прочитать мое предыдущее сообщение )

----------

