====== API :: Writeoff. Получение/изменение документов Списания ====== В системе реализован программный интерфейс для получения, добавления, изменения и удаления данных о документах "Списание". Данные выгружаются по HTTP протоколу. Формат на выбор - XML или JSON. ===== Пример запроса на получение данных ===== Глубина запроса по умолчанию - последние 30 дней. Для изменения глубины необходимо использовать параметр **days**. Пример запроса на получение данных о документах "Списание": http://mycompany.virtpos.ru/api/writeoff?apikey=MySecret&format=xml ==== Параметры запроса на получение данных ==== Параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **date** - получение списаний на определенную дату. Формат: ГГГГММДД. Необязательный параметр. * **datefrom** - получение списаний начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр. * **dateto** - получение списаний начиная до определенной даты. Формат: ГГГГММДД. Необязательный параметр. * **cdatefrom** - получение списаний, созданных начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр. * **cdateto** - получение списаний, созданных до определенной даты. Формат: ГГГГММДД. Необязательный параметр. * **warehouse_id** - код магазина. для которого надо вернуть списания. Если не указан, то возвращаются списания для всех магазинов. Необязательный параметр. * **ext_warehouse_id** - код магазина во внешней системе (например, в 1С). Параметр игнорируется, если передан warehouse_id. Необязательный параметр. * **id** - ID документа Списания. Необязательный параметр. Если не указан, возвращаются все документы. * **external_id** - код списания во внешней системе (например, в 1С). Если указан, возвращается только документ с указанным кодом. * **last_id** - Необязательный параметр. Используется для получения новых документов с момента последнего обмена. Если параметр указан, то передаются все более новые списания (с бОльшим ID) * **days** - задает глубину поиска. Определяет, за какое количество дней от текущей даты надо вернуть документы списаний. Необязательный параметр. * **withitems** - принимает значение "1" или "0". Если "1", то возвращает строки списания, иначе только "шапки" списаний. ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info ==== Пример ответа сервера ==== Ниже приведен пример ответа сервера в формате XML 1 writeoff 30 2 3 1 111 2017-06-15 00:00:00 draft Черновик G 803ad8b6-688c-11e7-849d-74d435ee6043 2017-06-15 04:45:58 2017-06-15 04:45:58 1 1 777 2017-06-15 00:00:00 draft G 803ad8b6-688c-11e7-849d-74d435ee6043 Черновик 2017-06-15 03:55:16 2017-06-15 03:55:16 1 1 Оливки черные Acorsa без косточки 350 г жест. банка 10 234234241 803ad8b6-688c-11e7-849d-74d435ee6043 ==== Структура ответа сервера ==== **Шапка документа** * **id** - ID документа списания * **warehouse_id** - ID магазина, на который оформлено списание * **docdate** - дата документа поступления * **docnum** - номер документа списания * **warehouse_external_id** - код Магазина во внешней системе учета (например, в 1С) * **type** - тип списания (G - списание товаров, M - списание материальных ценностей) * **guid** - GUID списания * **amount** - сумма списания * **status** - статус документа списания (accept – принят, drаft – черновик) * **created_date** - дата создания документа списания (может не совпадать с датой документа Списания) * **created_by** - ID пользователя, создавшего списание * **last_update_date** - дата и время последнего изменения в списании * **last_update_by** - ID пользователя, сделавшего последние изменения * **external_id** - код Списания во внешней системе (например, в 1С). Значение параметра уникально. Содержание документа (зависит от настройки загружаемых полей и гибких полей на товарный остаток) * **line_id** - сквозной ID строки в транзакциях списаний * **item_id** - ID товарной позиции по номенклатурному справочнику * **item_ext_id** - идентификатор товара во внешней системе * **item_name** - наименование позиции * **quantity** - количество * **quantity_expected** - ожидаемое количество * **barcode** - штрих-код по накладной поступления * **price** - цена поступления * **amount** - сумма по строке * **manuf_date** - дата изготовления * **expir_date** - годен до * **lot_number** - характеристика (серия, партия и пр) позиции в накладной поступления * **guid** - GUID строки ===== Пример запроса на добавление/изменение данных Списания ===== Пример запроса на обновление данных о списании: http://mycompany.virtpos.ru/api/writeoff/update/?apikey=MySecret&format=xml&id=1&comment=NewComment ==== Параметры запроса ==== Параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - идентификатор списания, данные которого нужно обновить * **external_id** (get only) - код списания во внешней системе учета (например, в 1С) * **create_if_not_exist** (get only) - Если истина, то при неудачном поиске cписание будет добавлено в систему. * **warehouse_external_id** (get only) - код Магазина во внешней системе. Необязательный параметр; если указан, то будет осуществлен поиск Магазина по указанному коду и добавление ссылки на него в документ Списания. * Также в качестве параметров могут быть переданы все поля для поступления ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info. Также возвращается id записи, которая была обновлена или добавлена. * Флаг **isnew** равен "1", если запись была создана, и "0" если обновлена. ==== Пример ответа сервера ==== 1 1 0 ===== Пример запроса на удаление данных Списания ===== Пример запроса на удаление списания: http://mycompany.virtpos.ru/api/writeoff/delete/?apikey=MySecret&format=xml&id=1 ==== Параметры запроса ==== Параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - идентификатор списания, которое будет удалено * **external_id** (get only) - код списания во внешней системе учета (например, в 1С) ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info. Также возвращается id записи, которая была удалена. ==== Пример ответа сервера ==== 1 1 ===== Пример запроса на добавление/изменение данных строки товарной позиции Списания ===== Пример запроса на обновление данных о товарной позиции в списании: http://mycompany.virtpos.ru/api/writeoff/updateItems/?apikey=MySecret&format=xml&id=1&quantity=2 ==== Параметры запроса ==== Параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - идентификатор товарной строки в поступлении, данные которой нужно обновить * **create_if_not_exist** (get only) - Если истина, то при неудачном поиске товарная строка будет добавлена в систему. * Также в качестве параметров могут быть переданы все поля для строки товарной позиции в списании ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info. Также возвращается id записи, которая была обновлена или добавлена. * Флаг **isnew** равен "1", если запись была создана, и "0" если обновлена. ==== Пример ответа сервера ==== 1 1 0 ===== Пример запроса на удаление данных строки товарной позиции в Списании ===== Пример запроса на удаление товарной строки из документа списания: http://mycompany.virtpos.ru/api/writeoff/deleteItems/?apikey=MySecret&format=xml&id=1 ==== Параметры запроса ==== Параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры. * **apikey** - Секретный ключ для доступа к данным. Обязательный параметр. * **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр. * **id** (get only) - идентификатор строки товарной позиции Списания, которая будет удалена ==== Ответ сервера ==== В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info. Также возвращается id записи, которая была удалена. ==== Пример ответа сервера ==== 1 1