Получить банковские документы

HTTP-сервис bankpayments, метод GetBankPayments. Возвращает банковские документы одной выборкой: платёжные поручения (входящие и исходящие) и платёжные ордера.

Состав документов:

  • Документ.ПлатежноеПоручениеВходящее
  • Документ.ПлатежноеПоручениеИсходящее
  • Документ.ПлатежныйОрдерПоступлениеДенежныхСредств
  • Документ.ПлатежныйОрдерСписаниеДенежныхСредств

В отличие от ведомости по денежным средствам, которая отдаёт итоги по регистру, этот метод отдаёт сами документы - вплоть до всех строк их табличных частей.

Договор и назначение платежа

Поля Договор и НазначениеПлатежа приходят в базовом ответе, без full.

Договор - это представление реквизита ДоговорКонтрагента. Для банковских документов именно через него идёт связь с заказом покупателя: договор контрагента может ссылаться на заказ, и по этой связке видно, под какой наш договор с покупателем банк открыл целевой кредит или кредитную линию.

НазначениеПлатежа есть у трёх типов из четырёх. У ПлатежныйОрдерСписаниеДенежныхСредств такого реквизита в шапке нет, поэтому для него поле всегда приходит пустой строкой.

Endpoint

GET /main/hs/bankpayments/get

Параметры запроса

Все параметры опциональны. Читаются из query string (ПараметрыЗапроса) или из URL-шаблона (ПараметрыURL).

Отбор в запросе к базе

ПараметрТипОписание
fromstringНачало периода. Действует только вместе с to
tostringКонец периода, включительно до конца дня
datestringОдин день. Применяется дополнительно к from/to, а не вместо них
codestringПодстрока в номере документа (ПОДОБНО %code%)
summnumberТочное совпадение по СуммаДокумента
approvedbooleanФильтр по признаку проведения
typestringОпрашивать только типы, чьё имя содержит подстроку, например ПлатежноеПоручениеВходящее. Применяется при построении запроса, а не после него. Если не подошёл ни один тип, data пустой, причина в errors

Пост-фильтры (подстрока без учёта регистра)

ПараметрТипПоле ответаОписание
orgstringОрганизацияПодстрока в наименовании организации
contractorstringКонтрагентПодстрока в контрагенте. Синоним: contactor
accountstringСчетКассаПодстрока в кассе или банковском счёте организации
responsiblestringОтветственныйПодстрока в ответственном
contractstringДоговорПодстрока в представлении договора контрагента. Слэш в query задавайте как _slash_
purposestringНазначениеПлатежаПодстрока в назначении платежа

Прочие

ПараметрТипОписание
fullbooleanПолный ответ: все реквизиты шапки и все табличные части. Ключ читается как full, Full и FULL

Форматы дат (from, to, date)

  • ДД.ММ.ГГГГ - например 01.02.2025
  • ГГГГ-ММ-ДД - например 2025-02-01
  • ДД-ММ-ГГГГ - если первый сегмент не год из 4 цифр

При некорректном формате даты ошибка попадает в массив errors, HTTP-код остаётся 200.

Примеры запросов

GET /main/hs/bankpayments/get
GET /main/hs/bankpayments/get?from=01.02.2025&to=28.02.2025
GET /main/hs/bankpayments/get?date=15.02.2025&full=true
GET /main/hs/bankpayments/get?type=ПлатежноеПоручениеВходящее&approved=true
GET /main/hs/bankpayments/get?org=Демо&summ=15000
GET /main/hs/bankpayments/get?contractor=Поставщик&from=01.02.2025&to=28.02.2025
GET /main/hs/bankpayments/get?account=Основная&responsible=Сидоров
GET /main/hs/bankpayments/get?code=00-000123&full=true
GET /main/hs/bankpayments/get?purpose=кредитная линия&from=01.01.2025&to=31.12.2025
GET /main/hs/bankpayments/get?contract=Основной договор 15_slash_2025

Формат ответа

Без full возвращается шапка и сводка по табличным частям:

{
  "data": [
    {
      "ТипДокумента": "ПлатежноеПоручениеВходящее",
      "Номер": "00-000123",
      "ДатаДокумента": "15.02.2025",
      "Дата": "15.02.2025",
      "Организация": "ООО «ДемоСтрой Альфа»",
      "Контрагент": "ООО «Поставщик»",
      "Договор": "Основной договор 15/2025",
      "НазначениеПлатежа": "Оплата по договору 15/2025 от 10.01.2025",
      "СчетКасса": "Основная касса",
      "ВидОперации": "Оплата от покупателя",
      "Валюта": "руб.",
      "Ответственный": "Сидоров С.С.",
      "СуммаДокумента": 15000,
      "Комментарий": "",
      "Проведен": true,
      "ПометкаУдаления": false,
      "ТабличныеЧасти": { "Есть": true, "Количество": 1 }
    }
  ],
  "errors": []
}

С full=true вместо сводки приходят все реквизиты шапки и все строки ТЧ:

{
  "data": [
    {
      "ТипДокумента": "ПлатежноеПоручениеВходящее",
      "Номер": "00-000123",
      "ДатаДокумента": "15.02.2025",
      "Дата": "15.02.2025",
      "Организация": "ООО «ДемоСтрой Альфа»",
      "Контрагент": "ООО «Поставщик»",
      "Договор": "Основной договор 15/2025",
      "НазначениеПлатежа": "Оплата по договору 15/2025 от 10.01.2025",
      "СчетКасса": "Основная касса",
      "ВидОперации": "Оплата от покупателя",
      "Валюта": "руб.",
      "Ответственный": "Сидоров С.С.",
      "СуммаДокумента": 15000,
      "Комментарий": "",
      "Проведен": true,
      "ПометкаУдаления": false,
      "Реквизиты": {
        "Контрагент": "ООО «Поставщик»",
        "ВалютаДокумента": "руб."
      },
      "ТабличныеЧасти": {
        "РасшифровкаПлатежа": [
          {
            "НомерСтроки": "1",
            "Сумма": 15000,
            "ДоговорКонтрагента": "Основной договор"
          }
        ]
      }
    }
  ],
  "errors": []
}

Поля ответа

Шапка приходит всегда:

ПолеТипОписание
data[].ТипДокументаstringИмя объекта метаданных, например ПлатежноеПоручениеВходящее
data[].НомерstringНомер документа
data[].ДатаДокументаstringДата (ДД.ММ.ГГГГ)
data[].ДатаstringТо же значение, для совместимости с остальными методами
data[].ОрганизацияstringПредставление организации, либо Не указана
data[].КонтрагентstringПредставление контрагента, либо Не указан
data[].ДоговорstringПредставление договора контрагента, либо пустая строка. Через него идёт связь с заказом покупателя
data[].НазначениеПлатежаstringНазначение платежа, либо пустая строка. Всегда пустое у ПлатежныйОрдерСписаниеДенежныхСредств
data[].СчетКассаstringКасса или банковский счёт организации, либо Не указан
data[].ВидОперацииstringВид операции документа, либо пустая строка
data[].ВалютаstringВалюта документа, либо пустая строка
data[].ОтветственныйstringОтветственный, либо Не указан
data[].СуммаДокументаnumberСумма документа, 0 если не заполнена
data[].КомментарийstringКомментарий, либо пустая строка
data[].ПроведенbooleanПризнак проведения
data[].ПометкаУдаленияbooleanПризнак пометки на удаление

Дальше состав зависит от full:

ПолеРежимОписание
data[].ТабличныеЧастибез fullСводка { "Есть": boolean, "Количество": number } - суммарное число строк по всем ТЧ
data[].Реквизитыfull=trueОбъект: ключ - имя реквизита шапки из метаданных, значение - приведённое значение
data[].ТабличныеЧастиfull=trueОбъект: ключ - имя ТЧ, значение - массив строк; в каждой строке НомерСтроки и пара ключ-значение на каждый реквизит ТЧ

Состав Реквизиты и ТабличныеЧасти не фиксирован. Он читается из метаданных конкретного документа, поэтому у разных типов набор ключей разный. Не полагайтесь на наличие конкретного ключа - проверяйте его перед чтением.

Приведение значений

Тип в 1СВ JSON
Строка, Число, Булевокак есть
Датастрока ДД.ММ.ГГГГ
Ссылка на объектстроковое представление
Пустая ссылка, NULL, Неопределенопустая строка ""

Ошибки и производительность

  • Если объект документа не удалось прочитать, строка всё равно попадает в data - с пустыми Реквизиты / ТабличныеЧасти, а причина уходит в errors. HTTP-код остаётся 200.
  • Каждый документ читается через ПолучитьОбъект(), то есть одно обращение к базе на документ. На широком периоде без фильтров ответ будет тяжёлым - сужайте период либо отбирайте по type.
  • Сортировка сквозная по всем типам: дата по убыванию, затем номер по убыванию.