Работа с актом о приемке выполненных работ КС-2
Порядок обмена актами о приемке выполненных работ описан на странице Документооборот актов. Базовый алгоритм работы с формализованными документами приведен в разделе Работа с формализованными документами. Особенности сценариев работы с документом зависит от вида документооборота для его формата.
Примечание
Согласно формату, справка КС-3 — это всегда дополнение к акту КС-2: она не может быть оформлена отдельно. При выполнении условия НастрФормДок.ПрНакИтог == 1 ИЛИ 2
и НастрФормДок.ПрСведРасчСогл == 1
документ содержит данные для КС-3.
Сценарий работы с актом о выполнении работ/оказании услуг включает следующие шаги:
- Подрядчик:
генерирует титул подрядчика,
- Заказчик:
генерирует и отправляет извещение о получении титула подрядчика — если оно было запрошено подрядчиком,
парсит полученный титул — при необходимости,
генерирует титул заказчика,
Сформировать титулы подрядчика и заказчика акта о приемке выполненных работ КС-2 согласно формату нужно самостоятельно. Диадок не позволяет сформировать титулы КС-2 с помощью API.
Отправка титула подрядчика
Титул подрядчика можно подписать и отправить заказчику с помощью метода PostMessage (V3), передав его в поле DocumentAttachment
структуры MessageToPost. Инструкция об отправке документа приведена в разделе Отправка документа.
Обратите внимание, что в титуле должны быть заполнены данные подписанта. Указать их можно либо сразу при генерации титула подрядчика, либо с помощью процедуры подготовки к подписанию.
Заполнить данные подписанта нужно в универсальном формате заполнения данных подписанта.
В структуре DocumentAttachment укажите значения, которые были получены для генерации методом GetDocumentTypes (V2):
TypeNamedId = PerformedWorkAcceptanceCertificate
Function = default
Version = performedworkacceptancecertificate691_01_00_01
Если подрядчик хочет запросить извещение о получении титула заказчиком, то в структуре DocumentAttachment нужно выставить значение NeedRecipientSignature = true
.
Пример тела запроса метода PostMessage:
{
"FromBoxId": "{{boxId_sender}}",
"ToBoxId": "{{boxId_recipient}}",
"DocumentAttachments": [
{
"SignedContent": {
"Content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0...NC50Ls+", // содержимое XML-файла в кодировке base-64
"Signature": "MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdIA...kA9MJfsplqgW" // содержимое файла подписи в кодировке base-64
},
"TypeNamedId": "PerformedWorkAcceptanceCertificate",
"Function": "default",
"Version": "performedworkacceptancecertificate691_01_00_01"
}
]
}
После отправки документа:
Диадок автоматически сформирует подтверждение оператора о дате получения документа и отправит его подрядчику и заказчику. Получить его можно по инструкции Получение подтверждения оператора.
Если подрядчик запросил извещение о получении документа заказчиком, то заказчик должен сформировать извещение о получении документа и отправить его подрядчику. Получить его можно по инструкции Получение извещения о получении.
Получение титула подрядчика в ящике заказчика
Заказчик может найти входящий акт в своем ящике с помощью чтения ленты событий или с помощью поиска. Инструкция о получении документов приведена на странице Получение документов.
Чтобы найти акт в ящике заказчика через поиск, передайте в метод GetDocuments (V3) значения параметров:
boxId
— идентификатор ящика заказчика,filterCategory = PerformedWorkAcceptanceCertificate.InboundNotFinished
.
Пример HTTP-запроса метода GetDocuments:
GET /V3/GetDocuments?filterCategory=PerformedWorkAcceptanceCertificate.InboundNotFinished&boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
Из полученного в ответе метода списка DocumentList можно получить информацию о каждом документе. Инструкция приведена в разделе Получение информации о найденных документах.
Генерация и отправка извещения о получении титула подрядчика
Если подрядчик при отправке документа запросил извещение о получении (ИоП) документа заказчиком, то после получения документа заказчик должен сформировать и отправить ИоП.
Сгенерировать ИоП можно с помощью метода GenerateReceiptXml (V2), а отправить с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4). Инструкция о генерации и отправке ИоП приведена в разделе Генерация и отправка извещения о получении.
Парсинг титула подрядчика
Чтобы получить данные из полученного титула подрядчика, используйте метод ParseTitleXml. Инструкция о парсинге приведена на странице Парсинг формализованного документа.
В теле запроса метода ParseTitleXml
нужно передать XML-файл полученного титула.
Отправка титула заказчика
Титул заказчика можно подписать и отправить подрядчику с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4), передав его в поле RecipientTitles
структуры MessagePatchToPost или MessagePatchToPostV2 соответственно. Инструкция об отправке дополнения приведена на странице Дополнение сообщения.
Если заказчик хочет запросить извещение о получении титула подрядчиком, то в структуре RecipientTitleAttachment нужно выставить значение NeedRecipient = true
.
После того как заказчик отправит ответный титул, Диадок автоматически сформирует подтверждение оператора о дате его получения и отправит его подрядчику и заказчику. О том, как получить подтверждение оператора, написано в разделе Получение подтверждения оператора.
Подрядчик так же может получить и распарсить титул заказчика — действия подрядчика будут аналогичны получению и парсингу титула подрядчика.
Если заказчик запросил ИоП, то после получения титула заказчика подрядчик должен сформировать и отправить заказчику ИоП.
В результате этих действий получается акт с двумя подписанными титулами, и документооборот акту считается завершенным, никакие действия по документу больше не требуются.