Работа с актом о приемке выполненных работ КС-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.

После того как заказчик отправит ответный титул, Диадок автоматически сформирует подтверждение оператора о дате его получения и отправит его подрядчику и заказчику. О том, как получить подтверждение оператора, написано в разделе Получение подтверждения оператора.

Подрядчик так же может получить и распарсить титул заказчика — действия подрядчика будут аналогичны получению и парсингу титула подрядчика.

Если заказчик запросил ИоП, то после получения титула заказчика подрядчик должен сформировать и отправить заказчику ИоП.

В результате этих действий получается акт с двумя подписанными титулами, и документооборот акту считается завершенным, никакие действия по документу больше не требуются.