Получить закрытия заказов покупателей

HTTP-сервис orderclosings, метод GetOrderClosings. Возвращает документы Закрытие заказов покупателей (Документ.ЗакрытиеЗаказовПокупателей) с перечнем закрываемых заказов и причинами закрытия.

Метод входит в блок взаиморасчётов с покупателями вместе с заказами покупателей и корректировками долга.

Объект конфигурации называется во множественном числе - ЗакрытиеЗаказовПокупателей. Объекта ЗакрытиеЗаказаПокупателя в 1С УПП нет.

Особенность документа

В шапке документа нет ни контрагента, ни суммы: только организация, подразделение, вид операции и ответственный. Контрагент, договор и сумма относятся к самим заказам и возвращаются по каждой строке табличной части Заказы.

Поэтому фильтры contractor и order работают по строкам ТЧ, а не по шапке.

Отсюда главное отличие метода от остальных: массив Заказы приходит всегда, в том числе без full. Перечень закрываемых заказов - это и есть содержание документа, и подменять его сводкой Есть/Количество бессмысленно: по такому ответу нельзя понять, какой заказ закрыт. Параметр full не включает заказы, а дополняет каждую строку данными самого заказа.

Вид операции (Перечисление.ВидыОперацийЗакрытиеЗаказовПокупателей):

  • закрытие заказов от покупателей;
  • снятие резервов и размещения.

Endpoint

GET /main/hs/orderclosings/get

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

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

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

ПараметрТипОписание
fromstringНачало периода. Действует только вместе с to
tostringКонец периода, включительно до конца дня
datestringОдин день. Применяется дополнительно к from/to
codestringПодстрока в номере документа (ПОДОБНО %code%)
approvedbooleanФильтр по признаку проведения. Истина: 1, true, yes, да

Пост-фильтры по шапке

ПараметрТипПоле ответаОписание
orgstringОрганизацияПодстрока в наименовании организации
divisionstringПодразделениеПодстрока в подразделении
responsiblestringОтветственныйПодстрока в ответственном
commentstringКомментарийПодстрока в комментарии
typestringВидОперацииПодстрока в представлении вида операции

Пост-фильтры по строкам ТЧ

ПараметрТипПоле строкиОписание
reasonstringПричинаЗакрытияЗаказаПодстрока в причине закрытия
orderstringНомерЗаказаПодстрока в номере заказа покупателя
contractorstringКонтрагентПодстрока в контрагенте заказа

Документ попадает в ответ, если условию соответствует хотя бы одна строка. Сами строки при этом не фильтруются - возвращается весь состав документа.

Прочие

ПараметрТипОписание
fullbooleanДополняет каждую строку Заказы данными заказа: договор, сумма, организация, ответственный, склад, даты оплаты и отгрузки. Ключ читается как full, Full и FULL

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

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

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

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

GET /main/hs/orderclosings/get
GET /main/hs/orderclosings/get?from=01.02.2025&to=28.02.2025
GET /main/hs/orderclosings/get?date=15.02.2025&full=true
GET /main/hs/orderclosings/get?approved=true
GET /main/hs/orderclosings/get?contractor=ДемоКлиент
GET /main/hs/orderclosings/get?order=ДК-00001008
GET /main/hs/orderclosings/get?reason=Отказ&from=01.01.2025&to=31.12.2025
GET /main/hs/orderclosings/get?type=снятие резервов

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

Базовый ответ

{
  "data": [
    {
      "Номер": "ЗЗ-00000012",
      "ДатаДокумента": "15.02.2025",
      "Дата": "15.02.2025",
      "Организация": "ООО «ДемоСтрой Альфа»",
      "Подразделение": "Отдел продаж",
      "ВидОперации": "закрытие заказов от покупателей",
      "Ответственный": "Сидоров С.С.",
      "КоличествоЗаказов": 1,
      "Комментарий": "",
      "Проведен": true,
      "ПометкаУдаления": false,
      "Заказы": [
        {
          "НомерСтроки": "1",
          "ЗаказПокупателя": "Заказ покупателя ДК-00001008 от 15.03.2025",
          "НомерЗаказа": "ДК-00001008",
          "ДатаЗаказа": "15.03.2025",
          "Контрагент": "ООО «ДемоКлиент»",
          "ПричинаЗакрытияЗаказа": "Отказ покупателя"
        }
      ]
    }
  ],
  "errors": []
}

Расширенный ответ (full=true)

Шапка та же, меняется только состав строк в Заказы:

{
  "Заказы": [
    {
      "НомерСтроки": "1",
      "ЗаказПокупателя": "Заказ покупателя ДК-00001008 от 15.03.2025",
      "НомерЗаказа": "ДК-00001008",
      "ДатаЗаказа": "15.03.2025",
      "Контрагент": "ООО «ДемоКлиент»",
      "ПричинаЗакрытияЗаказа": "Отказ покупателя",
      "Договор": "ДГ-25/042",
      "СуммаЗаказа": 1500000,
      "ОрганизацияЗаказа": "ООО «ДемоСтрой Альфа»",
      "ОтветственныйЗаказа": "Петрова А.А.",
      "Склад": "Склад «Северный»",
      "ДатаОплаты": "20.03.2025",
      "ДатаОтгрузки": "25.03.2025"
    }
  ]
}

Поля ответа

Шапка документа

ПолеТипИсточник в 1СОписание
dataarray—Массив документов. Сортировка: дата убыв., номер убыв.
data[].НомерstringНомерНомер документа
data[].ДатаДокументаstringДатаДата в формате ДД.ММ.ГГГГ
data[].ДатаstringДатаТо же значение, для совместимости с остальными методами
data[].ОрганизацияstringОрганизацияОрганизация, либо Не указана
data[].ПодразделениеstringПодразделениеПодразделение, либо Не указано
data[].ВидОперацииstringВидОперацииВид операции, либо пустая строка
data[].ОтветственныйstringОтветственныйОтветственный, либо Не указан
data[].КоличествоЗаказовnumberТЧ ЗаказыЧисло строк в ТЧ
data[].КомментарийstringКомментарийКомментарий, либо пустая строка
data[].ПроведенbooleanПроведенДокумент проведён
data[].ПометкаУдаленияbooleanПометкаУдаленияПометка на удаление

Строка массива Заказы

data[].Заказы - всегда массив, независимо от full. Эти поля есть в любом режиме:

ПолеТипИсточник в 1СОписание
НомерСтрокиstringНомерСтрокиНомер строки, строкой
ЗаказПокупателяstringЗаказПокупателяПредставление заказа
НомерЗаказаstringЗаказПокупателя.НомерНомер заказа покупателя
ДатаЗаказаstringЗаказПокупателя.ДатаДата заказа (ДД.ММ.ГГГГ), либо пустая строка
КонтрагентstringЗаказПокупателя.КонтрагентКонтрагент заказа, либо Не указан
ПричинаЗакрытияЗаказаstringПричинаЗакрытияЗаказаПричина закрытия, либо пустая строка

При full=true к каждой строке добавляются данные самого заказа:

ПолеТипИсточник в 1СОписание
ДоговорstringЗаказПокупателя.ДоговорКонтрагентаДоговор из заказа, либо пустая строка
СуммаЗаказаnumberЗаказПокупателя.СуммаДокументаСумма заказа, 0 если не заполнена
ОрганизацияЗаказаstringЗаказПокупателя.ОрганизацияОрганизация заказа, либо Не указана
ОтветственныйЗаказаstringЗаказПокупателя.ОтветственныйОтветственный по заказу, либо Не указан
СкладstringЗаказПокупателя.СкладГруппаСклад заказа, либо Не указано
ДатаОплатыstringЗаказПокупателя.ДатаОплатыДата оплаты (ДД.ММ.ГГГГ), либо пустая строка
ДатаОтгрузкиstringЗаказПокупателя.ДатаОтгрузкиДата отгрузки (ДД.ММ.ГГГГ), либо пустая строка

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

  • Строки ТЧ читаются отдельным запросом, данные заказа берутся через точку. ПолучитьОбъект() не используется, поэтому метод заметно легче кассовых и банковских документов.
  • Строки читаются всегда: они и есть содержание документа, плюс по ним работают фильтры reason / order / contractor. full меняет только состав полей строки, а не факт её чтения.
  • Если строки прочитать не удалось, документ всё равно попадает в data с пустым массивом Заказы и КоличествоЗаказов равным 0, а причина уходит в errors. HTTP-код остаётся 200.
  • Реквизит СпособЗаполнения (тип «Хранилище значения») в ответ не выводится: он не сериализуется в JSON.