# Postman 

**Postman** — это HTTP-клиент для тестирования API. В рамках этого руководства - для тестирования обмена данными с 1С. <br>

Для того, чтобы настроить обмен по новому типу документа необходимо узнать сущность 1С, в которой хранятся его данные. <br>

Сделать это можно по кнопке внутри документа <br>
![Рисунок 1 Получить ссылку](../media/Получить ссылку.PNG) <br>

Ссылка будет выглядеть следующим образом: <br>
![Рисунок 2 Ссылка](../media/Ссылка.PNG) <br>

Подставив вместо слова *«Документ.»* значение *Document_*, а вместо слова *«Справочник.»*- *Catalog_* [получаем название сущности](../../Описание протокола OData/Обращение к ресурсам.md). <br>

Зная название сущности, можем посмотреть ее содержимое при помощи программы *Postman*. <br>

Для выборки данных содержимого сущностей необходимо создать  *Get* обращение к 1С как на рисунке ниже: <br>
![Рисунок 3 Главное окно](../media/Главное окно.PNG) <br>

Для обращения необходимо настроить закладки – Params, Autorization, Body. <br>

На закладке Params можно задать формат, в котором предпрочтительно вывести запрашиваемые <br>данные ($format), перечислить поля для выборки ($select), а также наложить фильтры ($filter). <br>Язык для написания параметров – Odata, подробнее можно почитать по ссылке <br>https://docs.microsoft.com/ru-ru/azure/search/search-query-odata-filter. <br>

На закладке Авторизация необходимо указать данные учетной записи: <br>
![Рисунок 4 Авторизация](../media/Авторизация.PNG) <br>
На закладке Body по кнопке «Send» программа выдаст содержимое сущности по указанным параметрам: <br>
![Рисунок 5 Авторизация](../media/GetBody.PNG) <br>

Полученное содержимое необходимо проанализировать на предмет наличия полей в конструкторе передаваемого заявления и отредактировав, вставить в колонку ***«Параметры»*** в документе [«Настройка параметров обмена с 1С»](index.md#заявления_от_сотрудников) <br>

Здесь важно понимать, что значения, которые передавать не надо, заполняем нулевыми значениями, н-р, “Руководитель_Key” : "00000000-0000-0000-0000-000000000000".<br>

Есть поля, которые автоматически заполняются из СЭД(полный перечень можно посмотреть в функции getEmployeeStatement): <br>
"Организация_Key": "", - не заполняем, так как поле передается из СЭД<br>
"ФизическоеЛицо_Key": "", - не заполняем, так как поле передается из СЭД <br>
Сотрудник_Key, ОсновнойСотрудник_Key, ПериодРегистрации, Date, Основание, Комментарий.
Если поле заполняется из конструктора заявлений, то его значение оставляем пустым:
Например, для Ежегодного отпуска, ДатаНачалаОсновногоОтпуска будет выглядеть в параметре так:
"ДатаНачалаОсновногоОтпуска": "",
![Рисунок 6 ДатаНачалаОснОтп](../media/ДатаНачалаОснОтп.PNG) <br>
После настройки параметров обмена проверяем отправку документа в 1С. При отправке могут быть ошибки следующего типа:
![Рисунок 7 EmployeeError](../media/EmployeeError.PNG) <br>

Для удобства понимания ошибки можно создать *POST* обращение в программе Postman, указав в качестве Body текст, выданный функцией в момент ошибки:
![Рисунок 8 BodyConsole](../media/BodyConsole.PNG) <br>
Либо запустив функцию odata.getEmployeeStatement по интересуемому коду документа.

В Postman обращение оформляется следующим образом:
![Рисунок 9 PostBody](../media/PostBody.PNG) <br>

Ошибки как правило двух видов – не распознан ключ, не распознана дата, ошибка будет расшифрована следующим образом:
-на дату
![Рисунок 10 PostBodyErrorData](../media/PostBodyErrorData.PNG) <br>
-на ключ
![Рисунок 11 PostBodyErrorGuid](../media/PostBodyErrorGuid.PNG) <br>

Далее ищем по телу обращения - какие поля остались без значения – похожими по названию на дату или _key (все должны быть заполнены или нулями или значениями из передаваемого документа).