Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
doc:dev:api:flexfield [12.08.2016 19:36]
rlysov создано
doc:dev:api:flexfield [02.06.2018 10:42] (текущий)
Строка 8: Строка 8:
  
 Настроенные Гибкие Поля можно посмотреть в административной консоли в меню "​Настройки"​ -> "​Гибкие поля"​ Настроенные Гибкие Поля можно посмотреть в административной консоли в меню "​Настройки"​ -> "​Гибкие поля"​
 +
 +===== Пример использования Гибких Полей =====
 +
 +Например,​ Вы продаете одежду и настроили для справочника "​Клиенты"​ гибкое поле "​Размер"​. Теперь для каждого клиента возможно указать размер его одежды. Указать значение можно двумя способами.
 +
 +1. **Первый способ** - через административный интерфейс в карточке Клиента (меню Клиенты). В карточке появится новая графа "​Размер",​ в котором можно задать нужное значение
 +
 +2. **Второй способ** - программно через API. Чтобы задать значение гибкого поля через API, необходимо к стандартному [[doc:​dev:​api:​customer|запросу на изменение/​добавление Клиента]] добавить еще один параметр в формате:​ [**ИмяПоля**]=[**Значение**]
 +
 +В качестве **ИмяПоля** можно указать как пользовательское название поля (пример:​ "​Размер"​),​ так и его системное имя: attribute1, .., attribute15. Конкретный номер атрибута для каждого гибкого поля можно посмотреть в административном интерфейсе настройках гибких полей (**Настройки** -> **Гибкие поля** -> **Номер атрибута**)
 +
 +Пример запроса на изменение гибкого поля "​Размер"​ для Клиента с ID=1 через API:
 +
 +[[http://​mycompany.virtpos.ru/​api/​customer/​update?​apikey=MySecret&​id=1&​Размер=XL]]
 +
 +
  
 ===== Функции API для работы с Гибкими Полями ===== ===== Функции API для работы с Гибкими Полями =====
Строка 17: Строка 33:
   * **delete** - удаление настроенного ранее Гибкого Поля   * **delete** - удаление настроенного ранее Гибкого Поля
  
-===== listTables ===== 
  
 +----
 +
 +===== listTables :: Получение списка справочников =====
  
-==== listTables :: Получение списка справочников ​=====+Запрос возвращает список справочников ​системы,​ которые поддерживают работу с Гибкими Полями. Эти системные названия используются в других запросах в качестве параметра **table_name**.
  
-Запрос возвращает список справочников системы, которые поддерживают работу с Гибкими Полями. Эти системные названия используются ​в других запросах в качестве параметра "​table_name"​.+==== Пример вызова ​=====
  
 Пример запроса на получение списка справочников:​ Пример запроса на получение списка справочников:​
  
- ​http://​mycompany.virtpos.ru/​api/​flexfield/​listTables?​apikey=MySecret&​format=xml+ ​http://​mycompany.virtpos.ru/​api/​flexField/​listTables?​apikey=MySecret&​format=xml
  
-==== listTables :: Параметры запроса ====+==== Параметры запроса ====
  
   * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.   * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
Строка 34: Строка 52:
   * **format** - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.   * **format** - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.
  
-==== listTables :: Пример ответа ====+==== Пример ответа ====
  
 <file xml> <file xml>
Строка 41: Строка 59:
  <​success>​1</​success>​  <​success>​1</​success>​
  <​type>​frexfield.tables</​type>​  <​type>​frexfield.tables</​type>​
- <​count>​17</​count>​+ <​count>​5</​count>​
  <​tables>​  <​tables>​
- <​warehouse>​Точка продаж</​warehouse+ <table> 
- <​location>​Территория</​location+ <​name>​warehouse</​name>​ 
- <​organisation>​Юридическое лицо</​organisation+ <​description>​Точка продаж</​description
- <​item>​Товар</item+ </​table>​ 
- <onhand>​Товарный остаток</​onhand+ <​table>​ 
- <manufacturer>Производитель</manufacturer+ <​name>​location</​name>​ 
- <groups_name>Группа товаров</groups_name+ <​description>​Территория</​description
- <​supplier>​Поставщик</supplier+ </​table>​ 
- <inflow>​Поступление</​inflow+ <​table>​ 
- <movegood>Перемещение</movegood+ <​name>​organisation</​name>​ 
- <inventory>Инвентаризация</​inventory>​ + <​description>​Юридическое лицо</​description
- <​pricelist>​Прайслист</​pricelist>​ + </table
- <​pricelist_lines>​Строка прайслиста</pricelist_lines+ <table
- <​receipt>​Чек продажи</​receipt>​ + <name>item</name
- <​user>​Пользователь</​user>​ + <description>Товар</​description
- <​customer>​Клиент</​customer>​ + </table
- <​customer_group>​Группа клиента</customer_group>+ <table
 + <name>onhand</name
 + <description>Товарный остаток</description
 + </table>
  </​tables>​  </​tables>​
 </​root>​ </​root>​
 </​file>​ </​file>​
  
 +
 +----
  
 ===== index :: Запрос на получение данных ===== ===== index :: Запрос на получение данных =====
  
-==== index :: пример вызова ====+==== Пример вызова ====
  
 Пример запроса на получение данных о настроенных Гибких Полях: Пример запроса на получение данных о настроенных Гибких Полях:
  
- ​http://​mycompany.virtpos.ru/​api/​flexfield?​apikey=MySecret&​format=xml+ ​http://​mycompany.virtpos.ru/​api/​flexField?​apikey=MySecret&​format=xml
  
 ==== Параметры запроса ==== ==== Параметры запроса ====
  
-  * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.+  * **apikey** ​(get или post) - Секретный ключ для доступа к данным. Обязательный параметр.
  
-  * **format** - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.+  * **format** ​(get only) - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.
  
-  * **id** - код Гибкого Поля, для которого надо вернуть данные. Если не указан,​ то возвращаются данные обо всех настроенных полях.+  * **id** ​(get only) - код Гибкого Поля, для которого надо вернуть данные. Если не указан,​ то возвращаются данные обо всех настроенных полях.
  
-  * **table_name** - системное название справочника. Если указано,​ то возвращаются поля только для этого справочника+  * **table_name** ​(get only) - системное название справочника. Если указано,​ то возвращаются поля только для этого справочника
  
-  * **name** - название Гибкого Поля. Если указано,​ то возвращаются поля только с таким названием+  * **name** ​(get only) - название Гибкого Поля. Если указано,​ то возвращаются поля только с таким названием
  
-==== index :: Ответ сервера ====+==== Ответ сервера ====
  
 В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info
  
  
-==== index :: Пример ответа сервера ====+==== Пример ответа сервера ====
  
 Ниже приведен пример ответа сервера в формате XML Ниже приведен пример ответа сервера в формате XML
Строка 117: Строка 140:
 </​file>​ </​file>​
  
 +
 +----
  
 ===== update :: добавление/​изменение Гибкого Поля ===== ===== update :: добавление/​изменение Гибкого Поля =====
  
-Для обновления конкретного гибкого поля надо передать либо его идентификатор (параметр **id**)либо пару справочник + название_поля (параметры **table_name** и **name**)+Для обновления конкретного гибкого поля надо передать:  
 +  * либо его идентификатор (параметр **id**) 
 +  * либо пару справочник + название_поля (параметры **table_name** и **name**)
  
-==== update :: пример вызова ====+==== Пример вызова ====
  
 Пример запроса на изменение данных о гибком поле: Пример запроса на изменение данных о гибком поле:
  
- ​http://​mycompany.virtpos.ru/​api/​flexfield/​update?​apikey=MySecret&​create_if_not_exist=0&​enabled=N+ ​http://​mycompany.virtpos.ru/​api/​flexField/​update?​apikey=MySecret&​create_if_not_exist=0&​enabled=N
  
 ==== Параметры запроса ==== ==== Параметры запроса ====
  
-  * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.+  * **apikey** ​(get или post) - Секретный ключ для доступа к данным. Обязательный параметр.
  
-  * **format** - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.+  * **format** ​(get only) - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.
  
-  * **id** - код товарной группы,​ данные которой надо обновить+  * **id** ​(get only) - код товарной группы,​ данные которой надо обновить
  
-  * **table_name** - системное название таблицы,​ в которой надо изменить (добавить) поле. Используется для однозначной идентификации записи вместе с параметром **name**+  * **table_name** ​(get only) - системное название таблицы,​ в которой надо изменить (добавить) поле. Используется для однозначной идентификации записи вместе с параметром **name**
  
-  * **name** - название гибкого поля, которое надо изменить (добавить). Используется для однозначной идентификации записи вместе с параметром **table_name**+  * **name** ​(get only) - название гибкого поля, которое надо изменить (добавить). Используется для однозначной идентификации записи вместе с параметром **table_name**
  
-  * **create_if_not_exist** - если "​1",​ то при неудачном поиске гибкое поле будет добавлено в систему.+  * **create_if_not_exist** ​(get only) - если "​1",​ то при неудачном поиске гибкое поле будет добавлено в систему.
  
-  * **attr_type** - тип гибкого поля. Принимает значения:​ list (выбор из списка) или text(текстовые данные)+  * **attr_type** ​(get или post) - тип гибкого поля. Принимает значения:​ list (выбор из списка) или text(текстовые данные)
  
-  * **enabled** - признак активно поле или нет. Принимает значения:​ Y (активно) или N (неактивно)+  * **enabled** ​(get или post) - признак активно поле или нет. Принимает значения:​ Y (активно) или N (неактивно)
  
-  * **default_value** - значение по умолчанию+  * **default_value** ​(get или post) - значение по умолчанию
  
-  * **list_values** - список возможных значений гибкого поля. Используется с типом поля list. Список возможных значений передается в виде строки,​ разделенной запятыми. Лишних пробелов быть не должно. Пример:​ "​Да,​Нет,​Возможно"​+  * **list_values** ​(get или post) - список возможных значений гибкого поля. Используется с типом поля list. Список возможных значений передается в виде строки,​ разделенной запятыми. Лишних пробелов быть не должно. Пример:​ "​Да,​Нет,​Возможно"​
  
  
Строка 158: Строка 185:
  
   * Флаг **isnew** равен "​1",​ если запись была создана,​ и "​0"​ если обновлена.   * Флаг **isnew** равен "​1",​ если запись была создана,​ и "​0"​ если обновлена.
- 
  
  
Строка 170: Строка 196:
 </​root>​ </​root>​
 </​file>​ </​file>​
 +
 +----
 +
 +===== delete :: Удаление Гибкого Поля =====
 +
 +Функция настроенное ранее удаляет Гибкое Поле. Для удаления конкретного гибкого поля надо передать:​
 +  * либо его идентификатор (параметр **id**)
 +  * либо пару: справочник + название_поля (параметры **table_name** и **name**)
 +
 +
 +==== Пример вызова =====
 +
 +Пример запроса на удаление гибкого поля:
 +
 + ​http://​mycompany.virtpos.ru/​api/​flexField/​delete?​apikey=MySecret&​format=xml&​id=2
 +
 +==== Параметры запроса ====
 +
 +  * **apikey** (get или post) - Секретный ключ для доступа к данным. Обязательный параметр.
 +
 +  * **format** (get only) - формат,​ в котором сервер отдаст данные. Может принимать значения "​xml"​ или "​json"​. Необязательный параметр.
 +
 +  * **id** (get only) - идентификатор гибкого поля, которое надо удалить
 +
 +  * **table_name** (get only) - системное название таблицы,​ в которой надо удалить поле. Используется для однозначной идентификации записи вместе с параметром **name**
 +
 +  * **name** (get only) - название гибкого поля, которое надо удалить. Используется для однозначной идентификации записи вместе с параметром **table_name**
 +
 +==== Пример ответа ====
 +
 +<file xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​root>​
 + <​success>​1</​success>​
 +</​root>​
 +</​file>​
 +
 +