Перейти к содержаниюСправка

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
doc:dev:api:flexfield [12.08.2016 16:50] – [Пример ответа] doc:dev:api:flexfield [26.09.2026 14:03] (текущий) – внешнее изменение
Строка 1: Строка 1:
-====== API :: FlexField. Работа с Гибкими Полями ====== +====== 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". Необязательный параметр. +
- +
-==== Пример ответа ==== +
- +
-<file xml> +
-<?xml version="1.0" encoding="UTF-8"?> +
-<root> +
- <success>1</success> +
- <type>frexfield.tables</type> +
- <count>5</count> +
- <tables> +
- <table> +
- <name>warehouse</name> +
- <description>Точка продаж</description> +
- </table> +
- <table> +
- <name>location</name> +
- <description>Территория</description> +
- </table> +
- <table> +
- <name>organisation</name> +
- <description>Юридическое лицо</description> +
- </table> +
- <table> +
- <name>item</name> +
- <description>Товар</description> +
- </table> +
- <table> +
- <name>onhand</name> +
- <description>Товарный остаток</description> +
- </table> +
- </tables> +
-</root> +
-</file> +
- +
- +
----- +
- +
-===== 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 +
- +
-<file 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> +
-</file> +
- +
- +
----- +
- +
-===== 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" если обновлена. +
- +
- +
-==== Пример ответа сервера ==== +
-<file xml> +
-<?xml version="1.0" encoding="UTF-8"?> +
-<root> +
- <success>1</success> +
- <id>11</id> +
- <isnew>1</isnew> +
-</root> +
-</file> +
- +
----- +
- +
-===== 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** +
- +
-==== Пример ответа ==== +
- +
-<file xml> +
-<?xml version="1.0" encoding="UTF-8"?> +
-<root> +
- <success>1</success> +
-</root> +
-</file> +
  
 +Статья перенесена: [[hc:api:flexfield]]