Ключевые тезисы:
-
REST API работает только если при работе с ТСД используется сервер Mobile SMARTS. При прямом подключении ТСД к компьютеру через кабель/крэдл или при обмене с учетной системой через папку использовать REST API не получится.
-
Функционал REST API в локальном и глобальном ядре полностью идентичен, т. е. код процедур и функций практически полностью совпадает. Поэтому, если требуются доработки, их нужно делать синхронно в 3 местах — глобальное ядро, локальное ядро УФ, локальное ядро ОФ.
-
Обмен данными между 1С и Mobile SMARTS реализован через HTTP-запросы из 1С в MS, все запрашиваемые данные передаются в качестве параметров запроса в формате JSON (либо в заголовках, либо в теле запроса), а сервер Mobile SMARTS возвращает ответ в виде: кода состояния и тела ответа в формате JSON.
-
Коды состояния бывают в диапазоне от 100 до 500 и выше, их можно разделить на следующие группы:
- 200+: запрос успешен, в обработке используются:
- 200 — запрос успешно выполнен;
- 204 — запрос успешно выполнен, но ответ не содержит тела. Используется при выгрузке/очистке справочников Mobile SMARTS, удалении документа Mobile SMARTS, изменении статуса документа Mobile SMARTS.
- 300+: запрос перенаправлен на другой маршрут;
- 400+: ошибка на стороне клиента, в обработке используются:
- 401 — не удалось авторизоваться на сервере Mobile SMARTS для выполнения запроса, например, из-за неверного логина/пароля или по причине того что истек срок действия токена, поэтому потребуется переавторизация.
- 500+: ошибка на стороне сервера.
-
URI — уникальный идентификатор ресурса, используется при каждом запросе. Фактически, это путь до базы вида «http (s)://[имя сервера]:[порт базы Mobile SMARTS]/api/v1».
-
В обработке для реализации REST API используются прикладные объекты 1С такие как:
- HTTPСоединение — для установления соединения с сервером Mobile SMARTS перед отправкой запросов.
- HTTPЗапрос — для отправки запросов серверу Mobile SMARTS.
- HTTPОтвет — для получения ответов от сервера Mobile SMARTS.
- ЧтениеJSON и метод глобального контекста ПрочитатьJSON () — для преобразования ответа от сервера MS в структуру, массив, соответствие и т. д.
- ЗаписьJSON, ПараметрыЗаписиJSON и метод глобального контекста ЗаписатьJSON () — для формирования тела запроса из параметров в формат JSON.
-
В базе Mobile SMARTS может быть включена авторизация, тогда для выполнения HTTP-запросов необходимо будет каждый раз авторизовываться, есть 2 варианта авторизации:
- BASIC авторизация — в этом случае при каждом HTTP-запросе нужно будет отправлять логин и пароль
- Авторизация с использованием токена — при первом HTTP-запросе передаются логин и пароль, а сервер MS возвращается токен — уникальный идентификатор сессии (access token), который при последующих HTTP-запросах можно будет использовать вместо передачи логина и пароля. Срок действия токена (т.е. сессии) ограничен, поэтому для обновления токена при первом запросе сервер Mobile SMARTS дополнительно возвращает «токен обновления» (refresh token) — он нужен для получения нового токена после истечения срока действия текущего токена.
-
Для выполнения всех запросов используется единый метод REST_API_ВыполнитьМетод (), который подготавливает запрос к выполнению, в него передаются URI, имя метода, параметры метода и отправляемые данные. Далее, из этого метода вызывается вспомогательный метод «REST_API_ВыполнитьHTTPЗапрос ()», которые устанавливает соединение с сервером MS, сериализует данные для отправки в JSON, выполняет запрос, получает ответ от сервера MS и десериализует его из JSON.
-
Всего при обмене данными между 1С и Mobile SMARTS используются 5 видов HTTP-запросов: GET, POST, PATCH, PUT и DELETE.
- GET — используется для получения со стороны севера определенного ресурса (настройку Mobile SMARTS, документ, список документов Mobile SMARTS, метаданные базы Mobile SMARTS). Если вы производите этот запрос, сервер ищет информацию и отправляет ее вам назад. По сути, он производит операцию чтения на сервере. Дефолтный тип запросов.
- POST — нужен для создания определенного ресурса на сервере. Сервер создает в базе данных новую сущность и оповещает вас, был ли процесс создания успешным. По сути, это операции создания настройки Mobile SMARTS, документа Mobile SMARTS, выгрузки справочников Mobile SMARTS.
- PUT и PATCH — используются для обновления определенной информации на сервере, например, статуса документа Mobile SMARTS. В таком случае сервер просто изменяет информацию существующих сущностей в базе данных и оповещает об успехе выполнения операции.
- DELETE — как и следует из названия, удаляет указанную сущность из базы (удаление настройки Mobile SMARTS, документа Mobile SMARTS, очистка справочника Mobile SMARTS) или сигнализирует об ошибке, если такой сущности в базе не было.
Функции для обмена данными и HTTP-методы, которые выполняются в следующих функциях:
Название функции в 1С для обмена данными с Mobile SMARTS | HTTP-метод | Параметры |
Общие функции | ||
REST_API_ПодключитьсяКБазеSMARTS | GET | нет |
REST_API_ПолучитьОписаниеБазы | GET | BaseInfo |
REST_API_ПолучитьТокенSMARTS | GET |
username = Логин password = Пароль |
Работа с настройками | ||
REST_API_ПолучитьЗначениеНастройки БазыSMARTS |
GET | «CustomSettings («+ КлючНастройки + «)» |
REST_API_ЗаполнитьНастройкиSMARTS | GET | CustomSettings |
REST_API_ЗаписатьНастройкиSMARTS | POST |
CustomSettings name = КлючНастройки value = ЗначениеНастройки |
REST_API_УдалитьНастройкиSMARTS | DELETE | «CustomSettings («+ КлючНастройки + «)» |
Работа со справочниками | ||
REST_API_ВыгрузитьТаблицуНаСервер SMARTS
|
POST |
Для начала выгрузки:
|
REST_API_ОчиститьТаблицуНаСервере SMARTS |
POST |
Аналогично процессу выгрузки, только без п. 2, т. е., фактически не выгружаем в таблицу никаких данных: Для начала очистки:
|
Работа с документами | ||
REST_API_ПолучитьМетаданные ДокументовMS |
GET |
Получение списка типов документов — «DocTypes?$expand=tables»
|
REST_API_ПолучитьСписокДокументовНа СервереSMARTS |
GET |
«Docs?$expand=declaredItems,currentItems, extendedFields» |
REST_API_ПолучитьДанныеДокументаНа СервереSMARTS |
GET |
«Docs/"+UniДокумента+"('"+ID_Документа+"')?$expand=declaredItems, currentItems, combinedItems,extendedFields,tables ($expand=rows)» |
REST_API_ЗаписатьДокументВБазуSMARTS | POST |
|
REST_API_УдалитьДокументНаСервере SMARTS |
DELETE | «Docs ('"+ID_Документа+"')» |
REST_API_УстановитьСтатусДокументаНа СервереSMARTS |
PATCH | «Docs ('"+ID_Документа+"')» |
Примеры запросов и ответов, используемые при обмене между 1С и Mobile SMARTS:
10.0.0.29 |
— пример IP-адреса сервера Mobile SMARTS |
e1fc20aa-ff42-47df-9e5b-a94ba38b8935 |
— пример ID базы Mobile SMARTS |
REST_API_ПодключитьсяКБазеSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata"; |
|
«value» | Массив | Метаданные базы Mobile SMARTS |
REST_API_ПолучитьТокенSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/session?username=Логин&pa…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«Expires_in» | 86 400 | Срок действия токена в секундах |
«Access_token» | «8ee184cb1eb7b4b945a69bbc5bd198a5» | Токен доступа |
«Token_type» | «bearer» | Тип токена |
«Refresh_token» | «b8140b77fa61fa5399735ab60f7a9f16» | Токен обновления |
REST_API_ПолучитьОписаниеБазы
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/BaseInfo
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«folder» | «C:\ProgramData\Cleverence\Базы Mobile SMARTS\Склад 15, Полный с Кировкой» |
|
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#BaseInfo"; |
|
«id» | «e1fc20aa-ff42-47df-9e5b-a94ba38b8935» |
|
«name» | «Склад 15, Полный с Кировкой» |
|
«connectionQRCode» | «http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935?altip=VM-WIN10-USR-12"; |
|
«appId» | «212E5362-5969-40DC-9781-CB7B8AB811DB» |
|
«appName» | «Склад 15, Полный с Кировкой» |
|
«allConnectionStrings» | Массив | Все возможные варианты строки соединения с базой |
«comment» |
|
|
«appDescription» | Соответствие | Информация о продукте: наименование, ID приложения, версия платформы, ссылки на интернет-ресурсы, комментарий |
«appInstanceSettings» | Соответствие | Информация о настройках сервера |
REST_API_ПолучитьЗначениеНастройкиБазыSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/CustomSettings ('ИмяИнтегр…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#CustomSettings/$entity"; |
«value» | «ИнтеграционнаяОбработка_УТ_11_4.epf» |
«name» | «ИмяИнтеграционнойОбработкиКонфигурации1С» |
REST_API_ЗаполнитьНастройкиSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/CustomSettings?$filter=name eq 'ИспользоватьШаблоныВесовогоТовара' or name eq 'ПрефиксКодаВесовогоТовара' or name eq 'ДлинаКодаВесовогоТовара' or name eq 'ЧислоЗнаковПослеЗапятойВесТовара' or name eq 'ПрефиксВключенВКодВесовогоТовара' or name eq 'РазмерПорцииНоменклатуры' or name eq 'ВыгружатьНоменклатуруДокументаПередВыгрузкойДокумента' or name eq 'УстановитьПоискПоНаименованиюИАртикулу' or name eq 'ВыгружатьНоменклатуруСразу' or name eq 'ВыгружатьКонтрагентовСразу'
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#CustomSettings"; |
|
«value» | Массив | Массив значений запрашиваемых настроек |
REST_API_ЗаписатьНастройкиSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/CustomSettings
Заголовки:
Content-Type: application/json
Тело запроса:
{ "value": true, "name": "РаботаБезАлкоголя" } HTTP-метод: POST Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#CustomSettings/$entity"; |
|
«value» | Истина | Значение настройки |
«name» | «РаботаБезАлкоголя» | Ключ настройки |
REST_API_УдалитьНастройкиSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/CustomSettings ('Настройки…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: DELETE Код состояния: 204 Ответ сервера: нет
REST_API_ВыгрузитьТаблицуНаСерверSMARTS
Будут выполнены 3 запроса: начать выгрузку, выгрузка, завершить выгрузку (или прервать выгрузку, в случае ошибки), пример дан для выгрузки номенклатуры. В случае выгрузки ячеек или дополнительных таблиц будут изменяться только наименования методов (см. таблицу выше), все остальное выполняется по тому же алгоритму
Запрос 1 — Начать выгрузку
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Products/BeginUploadProducts
Заголовки:
Content-Type: application/json
Тело запроса:
{ "lschema": [ "Product.Name", "Product.Barcode", "Product.ЭтоГруппа", "Product.Marking", "Product.Весовой", "Product.Маркировка", "Packing.Barcode", "Packing.ИмяХарактеристики", "Packing.Name", "Packing.UnitsQuantity", "Product.Алко", "Packing.АлкоКод", "Packing.АлкоОбъем", "Packing.АлкоКрепость", "Product.АлкоМарк", "Packing.АлкоПроизводитель", "Packing.АлкоПроизвИНН", "Packing.АлкоПроизвКПП", "Packing.ТНВЭД", "Packing.Бренд", "Packing.Верх", "Packing.Вид", "Packing.Импортер", "Packing.Размер", "Packing.ИНН", "Packing.ИсходныйGTIN", "Packing.Низ", "Packing.Подкладка", "Packing.Производитель", "Packing.СтранаПроизводства", "Packing.Цвет", "Packing.price", "Packing.qty", "Product.ПоХарактеристикам", "Product.ПоСериям", "Product.ПоСН", "Product.Id", "Product.BasePackingId", "Packing.ИдХарактеристики", "Packing.Id", "Packing.ИдЕдиницыИзмерения", "Product.КлючХарактеристик", "Product.КлючСерий", "Packing.ИдСерии" ], "rewriteProductsBook": true, "useFullTextSearch": true } HTTP-метод: POST Код состояния: 204 Ответ сервера: нет
Запрос 2 — Начать выгрузку
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Products/AddProductsToUpload
Заголовки:
Content-Type: application/json
Тело запроса:
{ "flds": [ "Х-77890 Стинол Завод бытовой техники", "000000094", "false", "Х-77890", "false", "", "2000000058078", "", "шт", "1", "false", "", "0", "0", "false", "", "", "", "", "Стинол", "", "", "", "", "", "2000000058078", "", "", "Завод бытовой техники", "", "", "0", "8", "false", "false", "false", "cbcf4934-55bc-11d9-848a-00112f43529a", "bd72d926-55bc-11d9-848a-00112f43529a", "", "bd72d926-55bc-11d9-848a-00112f43529a", "bd72d926-55bc-11d9-848a-00112f43529a", "", "9c556d55-720f-11df-b436-0015e92f2802", "" ] } HTTP-метод: POST Код состояния: 204 Ответ сервера: нет
Запрос 3 — Завершить выгрузку / прервать выгрузку
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Products/EndUploadProducts (для завершения выгрузки)
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Products/ResetUploadProducts (для прерывания выгрузки)
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: POST Код состояния: 204 Ответ сервера: нет
REST_API_ОчиститьТаблицуНаСервереSMARTS
Аналогично процессу выгрузки, только без запроса 2, т. е., фактически, не выгружаем в таблицу никаких данных:
REST_API_ПолучитьМетаданныеДокументовMS — состоит из 7 запросов
Запрос1 — Получение списка типов документов
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/DocTypes?$expand=tables
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#DocTypes"; |
|
«value» | Массив | Массив метаданных документов Mobile SMARTS |
Запрос 2 — Получение метаданных и реквизитов шапки документа на примере документа «Агрегация»
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/DocTypes ('Agregaciya&…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#DocTypes/$entity"; |
|
«fields» | Массив | Массив реквизитов шапки документа |
«uni» | «Agregaciya» | Транслитерация имени документа |
«name» | «Агрегация» | Имя документа |
«allowRemoveDocuments» | Истина | Разрешить удаление документа с ТСД |
«removeAfterFinish» | Ложь | Удалять после завершения с ТСД |
… | … | и т. д. |
Запрос 3 — Получение метаданных и реквизитов табличной части документа на примере документа «Агрегация»
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/DocTypes ('Agregaciya&…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#DocTypes/$entity"; |
|
«columns» | Массив | Массив реквизитов табличной части документа |
«uni» | «Agregaciya» | Транслитерация имени документа |
«name» | «Агрегация» | Имя документа |
«allowRemoveDocuments» | Истина | Разрешить удаление документа с ТСД |
«removeAfterFinish» | Ложь | Удалять после завершения с ТСД |
… | … | и т. д. |
Запрос 4 — Получение списка доп.таблиц, которые не определены в метаданных документа, но существуют у самого экземпляра документа на примере документа »Агрегация»
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/DocTypes ('Agregaciya&…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#DocTypes/$entity"; |
|
«columns» | Массив | Массив табличных частей документа и их реквизитов |
«uni» | «Agregaciya» | Транслитерация имени документа |
«name» | «Агрегация» | Имя документа |
«allowRemoveDocuments» | Истина | Разрешить удаление документа с ТСД |
«removeAfterFinish» | Ложь | Удалять после завершения с ТСД |
… | … | и т. д. |
Запрос 5 — Получение списка дополнительных таблиц
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/TablesInfo
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#TablesInfo"; |
|
«value» | Массив | Массив метаданных дополнительных таблиц Mobile SMARTS |
Запрос 6 -— Получение списка пользователей — «Users»
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Users
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#Users"; |
|
«value» | Массив | Массив метаданных пользователей Mobile SMARTS |
Запрос 7 — Получение списка устройств — «Devices»
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Devices
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#Devices"; |
|
«value» | Массив | Массив метаданных устройств Mobile SMARTS |
REST_API_ПолучитьСписокДокументовНаСервереSMARTS
Строка запроса:
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«@odata.context» | «http://localhost:18686/MobileSMARTS/api/v1/$metadata#Devices"; |
|
«value» | Массив | Массив данных документов Mobile SMARTS |
REST_API_ПолучитьДанныеДокументаНаСервереSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs/PrihodNaSklad ('7e38b…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: GET Код состояния: 200 Ответ сервера:
Ключ | Значение | Комментарий |
«id» | «7e38bff7-8faf-11ea-a40c-00155d03e00e» | GUID документа |
«name» | «Приобретение товаров и услуг ТД00-000026 от 06.05.2020 18:37:37» | Имя документа 1С |
«nastrojkaBiznesProcessa» | «BPe8d6ec5a-7a78-41ba-8b01-820f78b31cdb» | GUID бизнес-процесса, по которому был выгружен документ |
«imyaBP» | «Приобретение товаров и услуг (проверка документа на ТСД)» | Имя бизнес-процесса |
«states» | Массив | Состояние документа — Выгружен, В работе, Завершен |
«declaredItems» | Массив | Табличная часть СтрокиПлан |
«currentItems» | Массив | Табличная часть СтрокиФакт |
«combinedItems» | Массив | Табличная часть Совмещенные |
«extendedFields» | Структура | Дополнительные реквизиты шапки |
«tables» | Массив | Дополнительные табличные части |
… | … | И т.д. |
REST_API_ЗаписатьДокументВБазуSMARTS
Запрос 1 — Выгрузка шапки документа
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs
Заголовки:
Content-Type: application/json
Тело запроса:
{ "id": "7e38bff7-8faf-11ea-a40c-00155d03e00e", "warehouseId": "1", "ИдКонтрагента": "cbcf497b-55bc-11d9-848a-00112f43529a", "ИдСклада1С": "03ce4b6f-3ff7-11e0-af05-0015e9b8c48d", "ИмяСклада": "Продуктовая база", "ИмяКонтрагента": "База "Продукты"", "DistributeByBarcode": true, "barcode": "167777389647035791856893807099027644430", "РежимУпаковок": "БезУпаковок", "Name": "Приобретение товаров и услуг ТД00-000026 от 06.05.2020 18:37:37", "documentTypeName": "ПриходНаСклад", "НастройкаБизнесПроцесса": "BPe8d6ec5a-7a78-41ba-8b01-820f78b31cdb", "ИмяБП": "Приобретение товаров и услуг (проверка документа на ТСД)", "КонтрольКолва": true } HTTP-метод: POST Код состояния: 201 Ответ сервера:
Ключ | Значение | Комментарий |
«id» | «7e38bff7-8faf-11ea-a40c-00155d03e00e» | GUID документа |
«name» | «Приобретение товаров и услуг ТД00-000026 от 06.05.2020 18:37:37» | Имя документа в 1С |
«createdOnPDA» | Ложь | Создан на ТСД |
«documentTypeName» | «ПриходНаСклад» | Тип документа Mobile SMARTS |
«modified» | Ложь | Изменен |
«inProcess» | Ложь | В работе |
«finished» | Ложь | Завершен |
«barcode» | «167777389647035791856893807099027644430» | Штрихкод документа |
«serverHosted» | Ложь | Коллективная работа |
«idKontragenta» | «cbcf497b-55bc-11d9-848a-00112f43529a» |
|
«idSklada1S» | «03ce4b6f-3ff7-11e0-af05-0015e9b8c48d» |
|
«imyaSklada» | «Продуктовая база» |
|
«imyaKontragenta» | «База «Продукты»» |
|
«rezhimUpakovok» | «БезУпаковок» |
|
«nastrojkaBiznesProcessa» | «BPe8d6ec5a-7a78-41ba-8b01-820f78b31cdb» |
|
«imyaBP» | «Приобретение товаров и услуг (проверка документа на ТСД)» |
|
«kontrolKolva» | Истина | Контроль количества |
… | … | и т. д. |
Запрос 2 — Выгрузка табличных частей документа, например, declaredItems
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs ('7e38bff7-8faf-11ea-…
Заголовки:
Content-Type: application/json
Тело запроса:
{ "value": [ { "packingId": "bd72d8fb-55bc-11d9-848a-00112f43529a", "productId": "e8a71fa5-55bc-11d9-848a-00112f43529a", "ИдЕдиницыИзмерения": "bd72d8fb-55bc-11d9-848a-00112f43529a", "Цена": 41, "declaredQuantity": 5 } ] } HTTP-метод: POST Код состояния: 200 Ответ сервера: нет
Запрос 3 — Принудительное сохранение документа, когда все строки уже загружены
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs ('7e38bff7-8faf-11ea-…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: POST Код состояния: 204 Ответ сервера: нет
REST_API_УдалитьДокументНаСервереSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs ('7e38bff7-8faf-11ea-…
Заголовки:
Content-Type: application/json
Тело запроса:
нет HTTP-метод: DELETE Код состояния: 204 Ответ сервера: нет
REST_API_УстановитьСтатусДокументаНаСервереSMARTS
Строка запроса:
http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs ('7e38bff7-8faf-11ea-…
Заголовки:
Content-Type: application/json
Тело запроса:
{ "Status": "ОшибкаЗаписи" } HTTP-метод: PATCH Код состояния: 204 Ответ сервера: нет