Статья успешно отправлена на почту

Реализация REST API в обработке 1C

Применимо к продуктам: Магазин 15 Склад 15
Последние изменения: 2024-03-26

Ключевые тезисы:

  1. REST API работает только если при работе с ТСД используется сервер Mobile SMARTS. При прямом подключении ТСД к компьютеру через кабель/крэдл или при обмене с учетной системой через папку использовать REST API не получится.

  2. Функционал REST API в локальном и глобальном ядре полностью идентичен, т. е. код процедур и функций практически полностью совпадает. Поэтому, если требуются доработки, их нужно делать синхронно в 3 местах — глобальное ядро, локальное ядро УФ, локальное ядро ОФ.

  3. Обмен данными между 1С и Mobile SMARTS реализован через HTTP-запросы из 1С в MS, все запрашиваемые данные передаются в качестве параметров запроса в формате JSON (либо в заголовках, либо в теле запроса), а сервер Mobile SMARTS возвращает ответ в виде: кода состояния и тела ответа в формате JSON.

  4. Коды состояния бывают в диапазоне от 100 до 500 и выше, их можно разделить на следующие группы:

    • 200+: запрос успешен, в обработке используются:
      • 200 — запрос успешно выполнен;
      • 204 — запрос успешно выполнен, но ответ не содержит тела. Используется при выгрузке/очистке справочников Mobile SMARTS, удалении документа Mobile SMARTS, изменении статуса документа Mobile SMARTS.
    • 300+: запрос перенаправлен на другой маршрут;
    • 400+: ошибка на стороне клиента, в обработке используются:
      • 401 — не удалось авторизоваться на сервере Mobile SMARTS для выполнения запроса, например, из-за неверного логина/пароля или по причине того что истек срок действия токена, поэтому потребуется переавторизация.
    • 500+: ошибка на стороне сервера.
  5. URI — уникальный идентификатор ресурса, используется при каждом запросе. Фактически, это путь до базы вида «http (s)://[имя сервера]:[порт базы Mobile SMARTS]/api/v1».

  6. В обработке для реализации REST API используются прикладные объекты 1С такие как:

    • HTTPСоединение — для установления соединения с сервером Mobile SMARTS перед отправкой запросов.
    • HTTPЗапрос — для отправки запросов серверу Mobile SMARTS.
    • HTTPОтвет — для получения ответов от сервера Mobile SMARTS.
    • ЧтениеJSON и метод глобального контекста ПрочитатьJSON () — для преобразования ответа от сервера MS в структуру, массив, соответствие и т. д.
    • ЗаписьJSON, ПараметрыЗаписиJSON и метод глобального контекста ЗаписатьJSON () — для формирования тела запроса из параметров в формат JSON.
  7. В базе Mobile SMARTS может быть включена авторизация, тогда для выполнения HTTP-запросов необходимо будет каждый раз авторизовываться, есть 2 варианта авторизации:

    • BASIC авторизация — в этом случае при каждом HTTP-запросе нужно будет отправлять логин и пароль
    • Авторизация с использованием токена — при первом HTTP-запросе передаются логин и пароль, а сервер MS возвращается токен — уникальный идентификатор сессии (access token), который при последующих HTTP-запросах можно будет использовать вместо передачи логина и пароля. Срок действия токена (т.е. сессии) ограничен, поэтому для обновления токена при первом запросе сервер Mobile SMARTS дополнительно возвращает «токен обновления» (refresh token) — он нужен для получения нового токена после истечения срока действия текущего токена.
  8. Для выполнения всех запросов используется единый метод REST_API_ВыполнитьМетод (), который подготавливает запрос к выполнению, в него передаются URI, имя метода, параметры метода и отправляемые данные. Далее, из этого метода вызывается вспомогательный метод «REST_API_ВыполнитьHTTPЗапрос ()», которые устанавливает соединение с сервером MS, сериализует данные для отправки в JSON, выполняет запрос, получает ответ от сервера MS и десериализует его из JSON.

  9. Всего при обмене данными между 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 Для начала выгрузки:
  1. для номенклатуры — «Products/BeginUploadProducts»
  2. для ячеек — «Cells/BeginUpdate»
  3. для прочих сравочников — «Tables/"+ИмяТаблицыENG+
  4. «/BeginOverwrite»
Для выгрузки данных:
  1. для номенклатуры — «Products/AddProductsToUpload»
  2. для ячеек — «Cells»
  3. для прочих справочников — «Tables/"+ИмяТаблицыENG
При ошибке в процессе выгрузки:
  1. для номенклатуры — «Products/ResetUploadProducts»
  2. для ячеек — «Cells/ResetUpdate»
  3. для прочих справочников — «Tables/"+ИмяТаблицыENG+
  4. «/ResetOverwrite»
Для окончания выгрузки
  1. для номенклатуры — «Products/EndUploadProducts»
  2. для ячеек — «Cells/EndUpdate»
  3. для прочих справочников — «Tables/"+ИмяТаблицыENG+"/EndOverwrite»
REST_API_ОчиститьТаблицуНаСервере
SMARTS
POST Аналогично процессу выгрузки, только без п. 2, т. е., фактически не
выгружаем в таблицу никаких данных: Для начала очистки:
  1. для номенклатуры — «Products/BeginUploadProducts»
  2. для ячеек — «Cells/BeginUpdate»
  3. для прочих сравочников — «Tables/"+ИмяТаблицыENG+
  4. «/BeginOverwrite»
Для окончания очистки
  1. для номенклатуры — «Products/EndUploadProducts»
  2. для ячеек — «Cells/EndUpdate»
  3. для прочих справочников — «Tables/"+ИмяТаблицыENG+
  4. «/EndOverwrite»
Работа с документами
REST_API_ПолучитьМетаданные
ДокументовMS
GET Получение списка типов документов — «DocTypes?$expand=tables»
  1. Получение реквизитов шапки документа — «DocTypes ('» +
  2. СтруктураДокумента.uni + «')?$expand=fields»
  3. Получение реквизитов табличной части документа — «DocTypes ('» +
  4. СтруктураДокумента.uni + «')?$expand=columns»
  5. Получение списка доп.таблиц, которые не определены в метаданных
  6. документа, но существуют у самого экземпляра документа — «DocTypes ('» + СтруктураДокумента.uni + «')?$expand=tables ($expand=fields)»
Получение списка доп.таблиц — «TablesInfo» Получение списка пользователей — «Users» Получение списка устройств — «Devices»
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
  1. Редактировать/добавить документ — «Docs» + данные документа
  2. Выгрузить табличную часть, например, declaredItems — «Docs ('"+idДокумента+"')/declaredItems»
  3. Принудительное сохранение документа, когда
    все строки уже загружены — «Docs ('"+idДокумента+"')/EndUpdate»
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

Строка запроса:

http://10.0.0.29:10501/e1fc20aa-ff42-47df-9e5b-a94ba38b8935/api/v1/Docs?$expand=declaredItems,curren…

Заголовки:

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
	 Ответ сервера:   
	     нет
Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500