Помощь
Чат для вопросов по API
Мгновенно ответим на ваши вопросы
api@ati.su
Электронная почта техподдержки
Тикетная система
Оставить заявку на отдел
«Консультанты по интеграции (API)»
api.ati.su - заказы, торги, площадки
Наш телеграм-канал
Код в АТИ:
Выход

Интеграция с 1С

Существует несколько способов, позволяющих интегрировать автоматизированный программный интерфейс информационной системы ATI.SU с существующими у вас конфигурациями на платформе 1С:Предприятие:

Расширение АТИ

Мы разработали расширение конфигураций для автоматизации обращений к api.ati.su: его методы выполняют всю работу по компоновке запроса и отправке запроса, а также дополнительно контролируют корректность состава передаваемых данных.

Как установить расширение АТИ?

Чтобы установить расширение АТИ, необходимо выполнить следующие действия:

  1. Скачать архив с расширением;
  2. Подключить расширение через клиент 1С:Предприятие:
    1. В меню приложения в левом верхнем углу выбрать пункт «Все функции»;
    2. В группе «Стандартные» выбрать «Управление расширениями конфигурации»;
    3. В открывшемся окне нажать «Добавить», выбрать файл *РасширениеАТИ.cfe;
    4. Отключить использование безопасного режима для расширения, сняв галку в соответствующей колонке;
    5. Перезапустить клиент.
  3. Разрешить соответствующему пользователю, от которого будет осуществляться настройка и отправка запросов к api.ati.su, доступ к объектам расширения. Это делается исключительно программно, от имени пользователя с правами администратора. Для этого в расширении существует соответствующая роль «АТИ_ИспользованиеAPI». Чтобы активировать расширение для текущего пользователя, необходимо выполнить следующую процедуру:
&НаСервереБезКонтекста
Процедура РазрешитьИспользованиеРасширения(Пользователь = Неопределено) Экспорт
	
	Если Пользователь = Неопределено Или ТипЗнч(Пользователь) <> Тип("ПользовательИнформационнойБазы") Тогда
		ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
	Иначе
		ПользовательИБ = Пользователь;
	КонецЕсли;
	
	ПользовательИБ.Роли.Добавить(Метаданные.Роли.АТИ_ИспользованиеAPI);
	ПользовательИБ.Записать();	
	
КонецПроцедуры
  1. Загрузить настройки из файла «Настройки.txt» в архиве. Для этого зайдите в подсистему «АвтоТрансИнфо», выберите справочник «HTTP Запросы», затем в списке запросов нажмите кнопку «Загрузить настройки», выберите файл «Настройки.txt».
  2. Установка завершена.

Как воспользоваться расширением?

После установки и настройки расширения, достаточно вызвать метод «ВыполнитьHTTPЗапрос()» из общего модуля «АТИ_ВебСервисы», передав в качестве параметров ссылку на соответствующую настройку запроса, а также набор данных, эквивалентный необходимому для осуществления запроса.

Например:

Ответ = АТИ_ВебСервисы.ВыполнитьHTTPЗапрос(ЗапросСсылка, ТестовыеДанные);

Параметры вызова:

ТестовыеДанные = Новый Структура;
ТестовыеДанные.Вставить("AccessToken", "Ваш_Токен");

МассивINN = Новый Массив;
МассивINN.Добавить(Новый Структура("INN", "1234567890"));
МассивINN.Добавить(Новый Структура("INN", "0987654321"));
ТестовыеДанные.Вставить("МассивINN", МассивINN);

В качестве ответа возвращается структура «Ответ», которая состоит из полей:

  • «КодСостояния» - содержит HTTP-код состояния запроса. В случае успешного выполнения как правило возвращается код 200. Коды зависят от конкретной реализации методов api, их список и описание указываются в документации.
  • «СтрокаОтвета» - Тип «Строка», содержит ответное сообщение, как правило в формате JSON. В зависимости от метода, возвращаются различные структуры данных, которые можно подвергнуть дальнейшей обработке.
  • «ТекстОшибки» - Тип «Строка», в случае ошибки при сборке или отправке запроса сюда записывается соответствующий комментарий с возможными причинами возникновения ошибок.

Data mapping

Метод «ВыполнитьHTTPЗапрос()» также осуществляет функцию data mapping — приводит входящую структуру данных в соответствие с полями, которые ожидаются в запросе к API. Для этого нужно изменить соответствующий параметр в настройке запроса. Например, если в вашей структуре есть поле «Вес», не обязательно в процессе обработки переименовывать его в Weight, достаточно изменить настройку параметра.

При этом, проверяется наличие и заполненность во входящей структуре всех параметров, входящих в состав URL или в заголовки запросов, а также тех параметров, которые отмечены флагом «Обязательный». При их отсутствии формируется сообщение об ошибке, а обработка заведомо некорректного запроса прекращается.

Разработка собственного решения

Если Расширение АТИ не отвечает Вашим нуждам, к нашему API можно обратиться напрямую из 1С. Например, для вызова любого метода api.ati.su можно воспользоваться процедурой:

Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт
	
	// Получение токена для авторизации
	Токен = "Ваш_токен";
	
	ЗаголовкиHTTP = Новый Соответствие();
	ЗаголовкиHTTP.Вставить("Accept", "application/json");
	ЗаголовкиHTTP.Вставить("Content-Type", "application/json");
	ЗаголовкиHTTP.Вставить("Authorization", "Bearer " + Токен);
	
	HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP);
	HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	
	ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
	Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
		
	Попытка		
		Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос);
		Сообщить("Код ответа: " + Ответ.КодСостояния);
		Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8"));		
	Исключение		
		Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки());		
	КонецПопытки;
	
КонецПроцедуры

Пример вызова процедуры для метода «Групповое получение краткой информации о фирмаx по ИНН [1.2]»:

ВыполнитьHTTPЗапрос("POST", "api.ati.su", "v1.2/firms/search/summaries", "[""1234567890"", ""0987654321""]");