Получить спецификации номенклатуры

HTTP-сервис specifications, метод GetSpecifications. Возвращает элементы справочника Спецификации номенклатуры (Справочник.СпецификацииНоменклатуры) — не группы, без пометки на удаление — с данными из ТЧ ИсходныеКомплектующие и датой поставки из ЭтапыПоставок.

Endpoint

GET /main/hs/specifications/get

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

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

ПараметрТипОписание
codestringФильтр по коду спецификации. Поиск ПОДОБНО
namestringФильтр по наименованию спецификации. Поиск ПОДОБНО. Символ / передавайте как _slash_
materialstringФильтр по материалу (код или наименование номенклатуры в ТЧ). Поиск ПОДОБНО. Символ / — как _slash_
ngroupstringФильтр по номенклатурной группе материала в ТЧ. Поиск ПОДОБНО
yearstringФильтр по году плановой даты поставки (ЭтапыПоставок.ДатаПоставкиПлан). Год из 2 цифр трактуется как 20XX
monthstringМесяц внутри year (1–12). Требует параметр year
fullbooleanРасширенный режим. Истина: 1, true, yes, да. Требует один из ключей: code, name, material, ngroup

Период year / month

  • Только year — весь календарный год (1 января — 31 декабря).
  • year + month — указанный месяц (с первого по последний день).
  • Спецификация попадает в выборку, если у неё есть этап поставки с ДатаПоставкиПлан в этом диапазоне.

Когда раскрывается ТЧ материалов

Полный массив Материалы (и поле СуммаМатериалов) возвращается, если выполняется любое из условий:

  • full=true и задан code или name;
  • задан material (даже без full);
  • задан ngroup (даже без full).

Иначе вместо массива — сводка вида "12 позиций".

При full=true без code, name, material и ngroup в errors добавляется сообщение, но HTTP-код остаётся 200.

При month без year — аналогично ошибка в errors.

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

GET /main/hs/specifications/get
GET /main/hs/specifications/get?name=СП-DEMO-07
GET /main/hs/specifications/get?code=ДК-00001008
GET /main/hs/specifications/get?material=бетон
GET /main/hs/specifications/get?ngroup=Строй
GET /main/hs/specifications/get?year=2025&month=3
GET /main/hs/specifications/get?name=02_slash_25%20DEMO&full=true
GET /main/hs/specifications/get?code=ДК-00001008&full=true

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

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

{
  "data": [
    {
      "Код": "ДК-00001008",
      "ДатаУтверждения": "10.01.2025",
      "Ответственный": "Сидоров С.С.",
      "Наименование": "Комплект DEMO-K7",
      "ДатаПоставки": "15.03.2025",
      "СтоимостьРабот": 500000,
      "СтоимостьТранспорт": 120000,
      "СтоимостьНакладные": 80000,
      "СтоимостьАрендаСпецТехники": 45000,
      "СтоимостьТехнологическиеПрисоединения": 0,
      "СтоимостьПроектныеРаботы": 150000,
      "Материалы": "24 позиции"
    }
  ],
  "errors": []
}

ДатаПоставки — минимальная ДатаПоставкиПлан по этапам поставки спецификации.

Расширенный ответ (полный список материалов)

{
  "data": [
    {
      "Код": "ДК-00001008",
      "Наименование": "Комплект DEMO-K7",
      "ДатаПоставки": "15.03.2025",
      "СтоимостьРабот": 500000,
      "Материалы": [
        {
          "Код": "ЗК-00002015",
          "Материал": "Смесь DEMO-M300",
          "Количество": 12.5,
          "Единица": "м3",
          "Цена": 4500,
          "Сумма": 56250,
          "НоменклатурнаяГруппа": "Стройматериалы"
        }
      ],
      "СуммаМатериалов": 56250
    }
  ],
  "errors": []
}

СуммаМатериалов — итог по строкам ТЧ: для каждой строки берётся Сумма, если она не ноль; иначе Количество × Цена.

Поля ответа

Шапка спецификации

ПолеТипИсточник в 1СОписание
dataarrayМассив спецификаций
data[].КодstringКодКод спецификации
data[].ДатаУтвержденияstringДатаУтвержденияДата (ДД.ММ.ГГГГ) или пустая строка
data[].ОтветственныйstringОтветственныйОтветственный
data[].НаименованиеstringНаименованиеНаименование
data[].ДатаПоставкиstringЭтапыПоставокМинимальная плановая дата поставки (ДД.ММ.ГГГГ) или пустая строка
data[].СтоимостьРаботnumberСтоимостьРаботСтоимость работ
data[].СтоимостьТранспортnumberСтоимостьТранспортСтоимость транспорта
data[].СтоимостьНакладныеnumberСтоимостьНакладныеНакладные расходы
data[].СтоимостьАрендаСпецТехникиnumberСтоимостьАрендаСпецТехникиАренда спецтехники
data[].СтоимостьТехнологическиеПрисоединенияnumberСтоимостьТехнологическиеПрисоединенияТехнологические присоединения
data[].СтоимостьПроектныеРаботыnumberСтоимостьПроектныеРаботыПроектные работы
data[].Материалыstring / arrayТЧ ИсходныеКомплектующиеСводка «N позиций» или массив строк (см. ниже)
data[].СуммаМатериаловnumberрасчётИтог по материалам. Только при полном списке Материалы
errorsarrayОшибки валидации параметров

Строка ТЧ Материалы (только при полном списке)

ПолеТипИсточник в 1СОписание
Материалы[].КодstringНоменклатура.КодКод номенклатуры
Материалы[].МатериалstringНоменклатура.НаименованиеНаименование
Материалы[].КоличествоnumberКоличествоКоличество
Материалы[].ЕдиницаstringЕдиницаИзмеренияЕдиница измерения
Материалы[].ЦенаnumberЦенаЦена
Материалы[].СуммаnumberСуммаСумма строки
Материалы[].НоменклатурнаяГруппаstringНоменклатура.НоменклатурнаяГруппаНоменклатурная группа

HTTP-коды

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

Примечания

  • Фильтр material при full=true ищет по всей ТЧ (подзапрос); без full — по строкам в соединении запроса.
  • Фильтр ngroup ведёт себя аналогично material относительно full.
  • Пустые числовые поля стоимости и сумм в ответе приходят как 0.
  • Ответ содержит заголовок Access-Control-Allow-Origin: *.