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

HTTP-сервис cashorders, метод GetCashOrders. Возвращает кассовые документы одной выборкой: приходные и расходные кассовые ордера.

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

  • Документ.ПриходныйКассовыйОрдер
  • Документ.РасходныйКассовыйОрдер

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

Endpoint

GET /main/hs/cashorders/get

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

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

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

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

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

ПараметрТипПоле ответаОписание
orgstringОрганизацияПодстрока в наименовании организации
contractorstringКонтрагентПодстрока в контрагенте. Синоним: contactor
accountstringСчетКассаПодстрока в кассе или банковском счёте организации
responsiblestringОтветственныйПодстрока в ответственном

Прочие

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

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

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

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

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

GET /main/hs/cashorders/get
GET /main/hs/cashorders/get?from=01.02.2025&to=28.02.2025
GET /main/hs/cashorders/get?date=15.02.2025&full=true
GET /main/hs/cashorders/get?type=ПриходныйКассовыйОрдер&approved=true
GET /main/hs/cashorders/get?org=Демо&summ=15000
GET /main/hs/cashorders/get?contractor=Поставщик&from=01.02.2025&to=28.02.2025
GET /main/hs/cashorders/get?account=Основная&responsible=Сидоров
GET /main/hs/cashorders/get?code=00-000123&full=true

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

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

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

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

{
  "data": [
    {
      "ТипДокумента": "ПриходныйКассовыйОрдер",
      "Номер": "00-000123",
      "ДатаДокумента": "15.02.2025",
      "Дата": "15.02.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[].СуммаДокумента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.
  • Сортировка сквозная по всем типам: дата по убыванию, затем номер по убыванию.