Получить остатки товаров

HTTP-сервис balances, метод GetBalances. Возвращает остатки номенклатуры на складах по регистру накопления ТоварыНаСкладах (РегистрНакопления.ТоварыНаСкладах) на указанную дату среза.

Endpoint

GET /main/hs/balances/get

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

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

ПараметрТипОписание
codestringФильтр по коду номенклатуры. Поиск ПОДОБНО — подстрока в Код
namestringФильтр по наименованию номенклатуры. Поиск ПОДОБНО
warehousestringФильтр по наименованию склада в остатках. Подстрока без учёта регистра
datestringДата среза остатков. Если не указан — конец текущего дня сеанса 1С
fullbooleanРежим выборки. Истина: 1, true, yes, да

Форматы даты (date)

  • ДД.ММ.ГГГГ — например 15.03.2025
  • ГГГГ-ММ-ДД — например 2025-03-15
  • ДД-ММ-ГГГГ — если первый сегмент не год из 4 цифр

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

Параметр full

ЗначениеПоведение
false (по умолчанию)В data только номенклатура с суммарным остатком > 0 хотя бы на одном складе (после фильтра warehouse)
trueВся отфильтрованная номенклатура, включая нулевые остатки (пустой массив Остатки или нули по складам)

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

GET /main/hs/balances/get
GET /main/hs/balances/get?name=бетон
GET /main/hs/balances/get?code=ДК-00001008
GET /main/hs/balances/get?warehouse=Северный
GET /main/hs/balances/get?date=15.03.2025
GET /main/hs/balances/get?date=2025-03-15&warehouse=Объект
GET /main/hs/balances/get?name=кирпич&full=true

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

{
  "data": [
    {
      "Код": "ДК-00001008",
      "Наименование": "Смесь DEMO-M300",
      "ЕдиницаИзмерения": "м3",
      "ВидНоменклатуры": "Товар",
      "НоменклатурнаяГруппа": "Стройматериалы",
      "ДатаСреза": "15.03.2025",
      "Остатки": [
        {
          "Склад": "Склад «Северный»",
          "Количество": 125.5
        },
        {
          "Склад": "Склад «Южный»",
          "Количество": 40
        }
      ]
    }
  ],
  "errors": []
}

В регистре остатки читаются только с ненулевым КоличествоОстаток. При full=true позиция без движений всё равно попадает в data с пустым Остатки.

Поля ответа

ПолеТипИсточник в 1СОписание
dataarrayМассив позиций. Сортировка: наименование номенклатуры по возрастанию
data[].КодstringНоменклатура.КодКод номенклатуры
data[].НаименованиеstringНоменклатура.НаименованиеНаименование
data[].ЕдиницаИзмеренияstringБазоваяЕдиницаИзмеренияЕдиница измерения
data[].ВидНоменклатурыstringВидНоменклатурыВид номенклатуры
data[].НоменклатурнаяГруппаstringНоменклатурнаяГруппаНоменклатурная группа
data[].ДатаСрезаstringпараметр date / сеансДата среза в формате ДД.ММ.ГГГГ
data[].ОстаткиarrayТоварыНаСкладах.ОстаткиОстатки по складам
data[].Остатки[].СкладstringСкладНаименование склада
data[].Остатки[].КоличествоnumberКоличествоОстатокКоличество на складе
errorsarrayОшибки парсинга date или запроса остатков

HTTP-коды

КодКогдаТело
200Запрос обработан{ "data": [...], "errors": [...] }
500Непредвиденная ошибка на стороне 1С{ "error": "текст ошибки" }

Примечания

  • В выборку номенклатуры попадают только элементы (не группы), без пометки на удаление.
  • Фильтр warehouse отсекает строки в Остатки по подстроке в наименовании склада; если после фильтра сумма остатков 0, позиция не попадает в ответ без full=true.
  • Без code и name возвращается вся номенклатура (с учётом full и остатков).
  • При ошибке чтения регистра остатков в errors добавляется сообщение, data может содержать позиции с пустыми Остатки.
  • Ответ содержит заголовок Access-Control-Allow-Origin: *.