Это старая версия документа.


API :: FlexField. Работа с Гибкими Полями

В системе реализован программный интерфейс для получения, добавления и изменения данных о гибких полях. Данные выгружаются по http протоколу. Формат на выбор - xml или json.

Что такое "Гибкие Поля"

Механизм «Гибких Полей» позволяет добавить новые колонки к любому справочнику в системе (товары, клиенты, магазины и др).

Настроенные Гибкие Поля можно посмотреть в административной консоли в меню «Настройки» → «Гибкие поля»

Функции API для работы с Гибкими Полями

Для работы с Гибкими Полями в API предусмотрены следующие методы:

  • listTables - получение списка справочников системы, которые поддерживают добавление Гибких Полей
  • index - получение данных о настроенных Гибких Полях
  • update - добавление или изменение Гибкого Поля
  • delete - удаление настроенного ранее Гибкого Поля

listTables :: Получение списка справочников

Запрос возвращает список справочников системы, которые поддерживают работу с Гибкими Полями. Эти системные названия используются в других запросах в качестве параметра table_name.

Пример вызова

Пример запроса на получение списка справочников:

http://mycompany.virtpos.ru/api/flexfield/listTables?apikey=MySecret&format=xml

Параметры запроса

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.

Пример ответа

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<type>frexfield.tables</type>
	<count>17</count>
	<tables>
		<warehouse>Точка продаж</warehouse>
		<location>Территория</location>
		<organisation>Юридическое лицо</organisation>
		<item>Товар</item>
		<onhand>Товарный остаток</onhand>
		<manufacturer>Производитель</manufacturer>
		<groups_name>Группа товаров</groups_name>
		<supplier>Поставщик</supplier>
		<inflow>Поступление</inflow>
		<movegood>Перемещение</movegood>
		<inventory>Инвентаризация</inventory>
		<pricelist>Прайслист</pricelist>
		<pricelist_lines>Строка прайслиста</pricelist_lines>
		<receipt>Чек продажи</receipt>
		<user>Пользователь</user>
		<customer>Клиент</customer>
		<customer_group>Группа клиента</customer_group>
	</tables>
</root>

index :: Запрос на получение данных

Пример вызова

Пример запроса на получение данных о настроенных Гибких Полях:

http://mycompany.virtpos.ru/api/flexfield?apikey=MySecret&format=xml

Параметры запроса

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
  • id - код Гибкого Поля, для которого надо вернуть данные. Если не указан, то возвращаются данные обо всех настроенных полях.
  • table_name - системное название справочника. Если указано, то возвращаются поля только для этого справочника
  • name - название Гибкого Поля. Если указано, то возвращаются поля только с таким названием

Ответ сервера

В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info

Пример ответа сервера

Ниже приведен пример ответа сервера в формате XML

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<type>flexfield</type>
	<count>1</count>
	<flexfields>
		<flexfield>
			<id>32</id>
			<table_name>warehouse</table_name>
			<name>Площадь помещения</name>
			<attr_num>2</attr_num>
			<attr_type>text</attr_type>
			<enabled>Y</enabled>
			<default_value/>
			<list_values/>
			<created_date>2016-08-12 18:21:38</created_date>
			<last_update_date>2016-08-12 18:21:38</last_update_date>
		</flexfield>
	</flexfields>
</root>

update :: добавление/изменение Гибкого Поля

Для обновления конкретного гибкого поля надо передать либо его идентификатор (параметр id), либо пару справочник + название_поля (параметры table_name и name)

Пример вызова

Пример запроса на изменение данных о гибком поле:

http://mycompany.virtpos.ru/api/flexfield/update?apikey=MySecret&create_if_not_exist=0&enabled=N

Параметры запроса

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
  • id - код товарной группы, данные которой надо обновить
  • table_name - системное название таблицы, в которой надо изменить (добавить) поле. Используется для однозначной идентификации записи вместе с параметром name
  • name - название гибкого поля, которое надо изменить (добавить). Используется для однозначной идентификации записи вместе с параметром table_name
  • create_if_not_exist - если «1», то при неудачном поиске гибкое поле будет добавлено в систему.
  • attr_type - тип гибкого поля. Принимает значения: list (выбор из списка) или text(текстовые данные)
  • enabled - признак активно поле или нет. Принимает значения: Y (активно) или N (неактивно)
  • default_value - значение по умолчанию
  • list_values - список возможных значений гибкого поля. Используется с типом поля list. Список возможных значений передается в виде строки, разделенной запятыми. Лишних пробелов быть не должно. Пример: «Да,Нет,Возможно»

Ответ сервера

В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.

Также возвращается id записи, которая была обновлена или добавлена.

  • Флаг isnew равен «1», если запись была создана, и «0» если обновлена.

Пример ответа сервера

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
	<id>11</id>
	<isnew>1</isnew>
</root>

delete :: Удаление Гибкого Поля

Функция настроенное ранее удаляет Гибкое Поле. Для удаления конкретного гибкого поля надо передать либо его идентификатор (параметр id), либо пару: справочник + название_поля (параметры table_name и name)

Пример вызова

Пример запроса на удаление гибкого поля:

http://mycompany.virtpos.ru/api/flexfield/delete?apikey=MySecret&format=xml&id=2

Параметры запроса

  • apikey - Секретный ключ для доступа к данным. Обязательный параметр.
  • format - формат, в котором сервер отдаст данные. Может принимать значения «xml» или «json». Необязательный параметр.
  • id - идентификатор гибкого поля, которое надо удалить
  • table_name - системное название таблицы, в которой надо удалить поле. Используется для однозначной идентификации записи вместе с параметром name
  • name - название гибкого поля, которое надо удалить. Используется для однозначной идентификации записи вместе с параметром table_name

Пример ответа

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<success>1</success>
</root>