API разработчика 1С

API позволяет взаимодействовать с сервером Agenta из 1С, и предназначен для решения задач обмена данными с мобильными устройствами.

API реализовано в виде внешней обработки Agenta.epf, в которой есть экспортируемые методы. Использовать обработку можно как внешнюю, через создание внешней обработки (недоступно на сервере):

    Agenta = ВнешниеОбработки.Создать(ПолноеИмяФайла);
    Лицензии = Agenta.ПолучитьЛицензии(); //получаем перечень лицензий
    

так и как внутреннюю, при этом добавив данную обработку в дерево метаданных (будет доступно на сервере):

    Agenta = Обработки.Agenta.Создать();
    Лицензии = Agenta.ПолучитьЛицензии(); //получаем перечень лицензий

Комплект поставки

В комплект поставки входит внешняя обработка Agenta.epf.
Скачать ее можно в своем аккаунте для соответствующей версии 1С и конфигурации.

Установка

  1. Обработку Agenta.epf для соответствующей версии 1С и конфигурации необходимо скачать из своего аккаунта.
    В результате будет сохранен файл в виде:
    Agenta82Trade10-ed872e16-8792-43f4-af09-b4650b586f24.epf
    где в названии содержится ключ клиента MID
  2. Вне зависимости от способа использования обработки Agenta, сразу после скачивания, ее необходимо открыть в режиме “Предприятие” для инициализации. Все дело в ключе MID, который обработке необходимо запомнить для взаимодействия с сервером (MID берется из имени обработки).
    В момент инициализации обработка создает запись в справочнике "ХранилищеДополнительнойИнформации" с наименованием "Agenta". Все параметры и служебные данные обработки будут в дальнейшем сохраняться в Хранилище с привязкой к данной записи.
    Так же, для хранения информации об обменах создается вторая служебная запись с наименованием "AgentaExchange"
    В результате, в системном окне сообщений должно появиться “Инициализация завершена!”
  3. Если обработку предполагается использовать в качестве встроенной, ее необходимо добавить в дерево метаданных. Стандартное имя Agenta, можно переименовать на свое усмотрение.
  4. Установка завершена

Настройка

            Перед использованием обработки, главным образом, проверьте настройки подключения к интернету - при необходимости укажите настройки Прокси-сервера. Для этого откройте обработку в режиме Предприятие и заполните параметры подключения.

            Больше настроек не требуется.

Описание методов API

Метод Параметры Описание

ЗапросНаСервер

Метод (Строка),
Параметры (Структура),
Файлы (Соответствие)

Выполнить запрос к серверу Agenta.

Параметры:

  • Метод - метод сервера, например, “getlicences”,
  • Параметры - параметры запроса в виде структуры,
  • Файлы - файлы для передачи на сервер, передаются как Соответствие (ИмяФайла => ПутьКФайлу).

Возвращает:

В случае ошибки соединения возвращает Ложь, иначе структуру ответа сервера:

Структура:

  • success: Истина/Ложь
  • data: данные с сервера (строка или структура)
  • error: код ошибки
  • msg: сообщение (описание ошибки)
  • errors: структура ошибок (ключ:значение)

Поле success является флагом успешности выполнения запроса: Истина - все ок, Ложь - возникли ошибки.

Поле data содержит структуру полей ответа, либо строку (в зависимости от метода).

error - содержит строковое id ошибки, в случае неудачного выполненния запроса, например, ‘invalid’ - неверный параметр.

msg - содержит текстовое описание ошибки, например “неверный параметр”

errors - служит уточнением ошибки, какой параметр заполнен неверно, является структурой в виде “поле”: “значение”

Пример:

Агента = Обработки.Agenta.Создать();
Файлы = Новый Соответствие;
Файлы.Вставить("data", ИмяФайлаZIP);
	
Результат = Агента.ЗапросНаСервер("setdata",
	Новый Структура("sid,date", sid, ТекущаяДата()),
	Файлы
);

ПолучитьЛицензии

нет

Получить перечень лицензий. Лицензии возвращаются в виде ТаблицыЗначений, где каждая строка - это лицензия, с полями:

  • sid - id лицензии
  • Телефон - номер телефона, закрепленного за лицензией
  • Активность - признак активности лицензии
  • Оплачено - признак оплаты лицензии
  • Наименование - наименование лицензии
  • Группа - id подразделения
  • ГруппаНаименование - наименование подразделения

Параметры:

нет

Возвращает:

В случае ошибки - Ложь, иначе - ТаблицуЗначений (см. описание)

Пример:

Агента = Обработки.Agenta.Создать();
	
//Получаем лицензии, и выгружаем данные для первой
Лицензии = Агента.ПолучитьЛицензии();
	
Если Лицензии <> Ложь Тогда
	Лиц = Лицензии.Получить(1);
	Сообщить("Телефон: " + Лиц.phone);
Иначе
	Сообщить(Агента.ПолучитьОписаниеОшибки());
КонецЕсли;

ПолучитьДокументы

lastupdate (Целое, не обязат.)
group (GUID, не обязат.)

Получить перечень новых и изменившихся документов с момента времени lastupdate.

Документы возвращаются в виде СпискаЗначений, который содержит тексты XML-представлений документов.

Так же, сервер возвращает метку времени, на которую получены документы. Определить ее можно через метод ПолучитьМеткуВремени(). Если в выборке документов не обнаружено, в качестве метки будет возвращено то же самое значение параметра lastupdate.

Параметры:

lastupdate - метка времени в виде числа. Здесь нужно передавать метку, которую возвращает сервер в предыдущем запросе. Если не указывать параметр, сервер вернет все имеющиеся документы

group - id подразделения (GUID), для получения документов только по указанному подразделению. Если не указывать параметр group, выборка будет по всем подразделениям.

Возвращает:

В случае ошибки - Ложь, иначе СписокЗначений (см. выше)

Пример:

Агента = Обработки.Agenta.Создать();
	
//Получаем документы
Доки = Агента.ПолучитьДокументы(135533584841106900);
	
Если Доки <> Ложь Тогда
	Метка = Агента.ПолучитьМеткуВремени(); 
	
	Если Метка <> Неопределено Тогда
		//запоминаем текущую метку времени
		//чтобы использовать ее при следующем запросе
	КонецЕсли;
	...	
	//Обработка документов
	//Доки - это список значений, 
	//где каждое значение - документ в виде XML текста
	...
Иначе
	Сообщить(Агента.ПолучитьОписаниеОшибки());
КонецЕсли;

ВыгрузитьДанные

sid, имяФайлаXML

Выгружает данные на сервер для лицензии sid.

Параметры:

  • sid - sid-код лицензии, для которой выгружаются данные
  • имяФайлаXML - полный путь к XML-файлу данных.

Возвращает:

Признак успешности выполнения запроса: Истина/Ложь.

Пример:

Агента = Обработки.Agenta.Создать();
//Здесь формируем xml-файл остатков
ИмяФайлаДанных = ПодготовитьФайлДанных();

Результат = Агента.ВыгрузитьДанные(Лицензия.sid,
	ИмяФайлаДанных);

Если Результат <> Ложь Тогда
	Предупреждение("Данные успешно выгружены!");
Иначе
	Предупреждение("Ошибка выполнения запроса! "
		+ Символы.ПС + Агента.ПолучитьОписаниеОшибки());
КонецЕсли;

ПолучитьКодОшибки

нет

Получить код последней ошибки.

Код текстовый, например, “invalid” - неверные параметры

Параметры:

нет

Возвращает:

Код ошибки (Строка)

ПолучитьОписаниеОшибки

нет

Получить текстовое описание последней ошибки. Например, “неверные параметры”

Параметры:

нет

Возвращает:

Описание ошибки (Строка)

ПолучитьМеткуВремени

нет

Получить метку времени последнего запроса, на которую получены данные.

Метка времени используется для осуществления обменов. Например, в методе ПолучитьДокументы(МеткаВремени).
Внимание! Если выборка пуста, метка времени будет в значении Неопределено. В этом случае, при дальнейших запросах, в качестве метки используйте предыдущее значение.

Параметры:

нет

Возвращает:

Метку времени (Число), или Неопределено

ЭтоВнешняяОбработка

нет

Позволяет определить режим запуска - внешняя обработка, или встроенная

Параметры:

нет

Возвращает:

Истина для внешней обработки, иначе Ложь