formula

formula
/catalogs

Загрузка каталогов и аутентификация.

GET /catalogs/users/current
GET /catalogs/users/access-role
/users/current
GET /catalogs/users/current

Запрос для выполнения аутентификации.

Responses

200 OK
Body
Object
guid
string

ID текущего пользователя

Example:
00000000-0000-0000-0000-000000000001
name
string

Наименование текущего пользователя,

Example:
Иванов Иван Иванович
Example 1
GET /catalogs/users/current HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "guid": "39581c94-6a5a-11ed-8a1b-00505692a275",
    "name": "Иванов Иван Иванович"
}
/users/access-role
GET /catalogs/users/access-role

Загрузка информация о роли и полномочиях.

Responses

200 OK
Body
Object
guid
string

ID записи о доступе. На данный момент совсем никак не используется в системе, может быть проигнорировано.

Example:
00000000-0000-0000-0000-000000000999
name
string

Наименование роли пользователя. Отображается под наименованием пользователя

Example:
Роль
actions
Array

Информация о доступных пользователю действиях. Если есть FULL_ACCESS_READ - сотрудник может просматривать страницы, если у сотрудника есть FULL_ACCESS_WRITE, то ему досчтупны интерактивные полномочия на страницах. Если это свойство пустое, то пользователю ничего не доступно. Ранее это была заготовка для более точного разграничения доступа по конкретным функциям, но она оказалась не востребована, и осталась в том же виде что и сейчас.

Example:
["FULL_ACCESS_WRITE","FULL_ACCESS_READ"]
string
Example:
FULL_ACCESS_WRITE
Example 1
GET /catalogs/users/access-role HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "guid": "00000000-0000-0000-0000-000000000001",
    "name": "Роль",
    "actions": [
        "FULL_ACCESS_WRITE"
    ]
}
/list

Список каталогов (справочников), необходимых для функционирования системы. Необходимы для создания выпадающих списков (фильтрация, или выбор добавляемого объекта).

GET /catalogs/list/users
GET /catalogs/list/componentTypes
GET /catalogs/list/components
GET /catalogs/list/componentGroups
GET /catalogs/list/units
GET /catalogs/list/testMethods
GET /catalogs/list/indicators
GET /catalogs/list/venues
GET /catalogs/list/taskTypes
GET /catalogs/list/batchOfComponents
GET /catalogs/list/products
GET /catalogs/list/specifications
GET /catalogs/list/requirementsTemplates
GET /catalogs/list/normTechDoc
/users
GET /catalogs/list/users

Список пользователей информационной системы.

Responses

200 OK
Body
Array
Object
guid
string
Example:
00000000-0000-0000-0000-000000000001
name
string
Example:
Иванов Иван Иванович
Example 1
GET /catalogs/list/users HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000001",
        "name": "Иванов Иван Иванович"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000002",
        "name": "Петров Петр Петрович"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000003",
        "name": "Ильич Илья Ильич"
    }
]
/componentTypes
GET /catalogs/list/componentTypes

Каталог со списком наименований типов компонентов (номенклатур).

Responses

200 OK
Body
Array
Object
guid
string

ID типа компонента

Example:
00000000-0000-0000-0000-000000000004
name
string

Наименование типа компонента

Example:
Тип 1
Example 1
GET /catalogs/list/componentTypes HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000004",
        "name": "Тип 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000005",
        "name": "Тип 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000006",
        "name": "Тип 3"
    }
]
/components
GET /catalogs/list/components

Каталог со списком наименований компонентов (номенклатуры).

Responses

200 OK
Body
Array
Object
guid
string

ID компонента

Example:
00000000-0000-0000-0000-000000000007
name
string

Наименование компонента

Example:
Компонент 1
type_id
string

Ссылка на ID типа компонента

Example:
00000000-0000-0000-0000-000000000004
isCalculated
boolean

Признак расчитываемости

Example:
true
Example 1
GET /catalogs/list/components HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000007",
        "name": "Компонент 1",
        "isCalculated": true,
        "type_id": "00000000-0000-0000-0000-000000000004"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000008",
        "name": "Компонент 2",
        "isCalculated": true,
        "type_id": "00000000-0000-0000-0000-000000000004"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000009",
        "name": "Компонент 3",
        "isCalculated": true,
        "type_id": "00000000-0000-0000-0000-000000000005"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000010",
        "name": "Компонент 4",
        "isCalculated": true,
        "type_id": "00000000-0000-0000-0000-000000000005"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000011",
        "name": "Компонент 5",
        "isCalculated": false,
        "type_id": "00000000-0000-0000-0000-000000000006"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000012",
        "name": "Компонент 6",
        "isCalculated": false,
        "type_id": "00000000-0000-0000-0000-000000000006"
    }
]
/componentGroups
GET /catalogs/list/componentGroups

Каталог со списком наименований групп компонентов. Не нужно путать с типом компонентов. У групп нет ссылочной связи с компонентами. Группы используют как информационные аналитики при создании проектов НИЦ с типом исследования.

Responses

200 OK
Body
Array
Object
guid
string

ID группы

Example:
00000000-0000-0000-0000-000000000013
name
string

Наименование группы

Example:
Группа 1
Example 1
GET /catalogs/list/componentGroups HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000013",
        "name": "Группа 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000014",
        "name": "Группа 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000015",
        "name": "Группа 3"
    }
]
/units
GET /catalogs/list/units

Каталог со списком наименований единиц измерений.

Responses

200 OK
Body
Array
Object
guid
string

ID единицы измерения

Example:
00000000-0000-0000-0000-000000000016
name
string

Наименование единицы измерения

Example:
Измерение 1
Example 1
GET /catalogs/list/units HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000016",
        "name": "Измерение 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000017",
        "name": "Измерение 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000018",
        "name": "Измерение 3"
    }
]
/testMethods
GET /catalogs/list/testMethods

Каталог со списком наименований методов испытания (ТУ, ГОСТ).

Responses

200 OK
Body
Array
Object
guid
string

ID метода измерения

Example:
00000000-0000-0000-0000-000000000019
name
string

Наименование метода измерения

Example:
Метод 1
Example 1
GET /catalogs/list/testMethods HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000019",
        "name": "Метод 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000020",
        "name": "Метод 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000021",
        "name": "Метод 3"
    }
]
/indicators
GET /catalogs/list/indicators

Каталог со списком показателей, и их атрибутами.

Responses

200 OK
Body
Array
Object
guid
string

ID показателя

Example:
00000000-0000-0000-0000-000000000022
name
string

Наименование показателя

Example:
Показатель 1
shortName
string

Краткое наименование показателя

Example:
П1
unit
string

Ссылка на ID единицы измерения (units)

Example:
00000000-0000-0000-0000-000000000016
testMethod
string

Ссылка на ID метода измерения (testMethods)

Example:
00000000-0000-0000-0000-000000000019
group
boolean

Признак, определяющий, является ли данный показатель группой, или единичным показателем. Если true, по показатель - это группа в который включено несколько единичных показателей,

Example:
false
type
string
Example:
SIMPLE
parentIndicator
string

Ссылка на ID показателя, который является родителем (группой) для текущего

ordinal
integer

Порядковый номер показателя, реквизит для упорядочивания порядка вывода показателей в списке.

Example:
1
exclude
boolean

Признак отображения в выпадающем списке. Если exclude равно false, показатель отображается в списке, если exclude равно true - показатель не отображется. Признак был введен для тех показателей, которые, например, не могут существовать отдельно, вне группы.

Example:
false
productTypes
Array of string

Массив типов продукт для которых умеет рассчитывать данный показатель. Ключевое поле для связки продуктов и рассчитываемых показателей

Example:
PG
Example 1
GET /catalogs/list/indicators HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000022",
        "name": "Показатель 1",
        "shortName": "П1",
        "unit": "00000000-0000-0000-0000-000000000016",
        "testMethod": "00000000-0000-0000-0000-000000000019",
        "group": false,
        "type": "SIMPLE",
        "parentIndicator": "",
        "ordinal": 1,
        "exclude": false,
        "productTypes": ["PG"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000023",
        "name": "Показатель 2",
        "shortName": "П2",
        "unit": "00000000-0000-0000-0000-000000000016",
        "testMethod": "00000000-0000-0000-0000-000000000019",
        "ordinal": 2,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["PG"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000024",
        "name": "Показатель 3",
        "shortName": "П3",
        "unit": "00000000-0000-0000-0000-000000000016",
        "testMethod": "00000000-0000-0000-0000-000000000019",
        "ordinal": 3,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["PG", "ПБВ"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000025",
        "name": "Показатель 4",
        "shortName": "П4",
        "unit": "00000000-0000-0000-0000-000000000017",
        "testMethod": "00000000-0000-0000-0000-000000000020",
        "ordinal": 4,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["Тест", "ПБВ"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000026",
        "name": "Показатель 5",
        "shortName": "П5",
        "unit": "00000000-0000-0000-0000-000000000017",
        "testMethod": "00000000-0000-0000-0000-000000000020",
        "ordinal": 5,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["ПБВ"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000027",
        "name": "Показатель 6",
        "shortName": "П6",
        "unit": "00000000-0000-0000-0000-000000000017",
        "testMethod": "00000000-0000-0000-0000-000000000020",
        "ordinal": 6,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["Тест", "ПБВ"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000028",
        "name": "Показатель 7",
        "shortName": "П7",
        "unit": "00000000-0000-0000-0000-000000000018",
        "testMethod": "00000000-0000-0000-0000-000000000021",
        "ordinal": 7,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["Тест"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000029",
        "name": "Показатель 8",
        "shortName": "П8",
        "unit": "00000000-0000-0000-0000-000000000018",
        "testMethod": "00000000-0000-0000-0000-000000000021",
        "ordinal": 8,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["PG"]
    },
    {
        "guid": "00000000-0000-0000-0000-000000000030",
        "name": "Показатель 9",
        "shortName": "П9",
        "unit": "00000000-0000-0000-0000-000000000018",
        "testMethod": "00000000-0000-0000-0000-000000000021",
        "ordinal": 9,
        "parentIndicator": "",
        "group": false,
        "type": "SIMPLE",
        "exclude": false,
        "productTypes": ["ПБВ"]
    }
]
/venues
GET /catalogs/list/venues

Каталог со списком наименований площадок.

Responses

200 OK
Body
Array
Object
guid
string

ID площадки

Example:
00000000-0000-0000-0000-000000000031
name
string

Наименование площадки

Example:
Площадка 1
main
boolean

Признак “Основаная площадка”. Если он равен true - в выпадающим списке площадка отображается в первой в списке.

Example:
false
Example 1
GET /catalogs/list/venues HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000031",
        "name": "Площадка 1",
        "main": false
    },
    {
        "guid": "00000000-0000-0000-0000-000000000032",
        "name": "Площадка 2",
        "main": false
    },
    {
        "guid": "00000000-0000-0000-0000-000000000033",
        "name": "Площадка 3",
        "main": false
    }
]
/taskTypes
GET /catalogs/list/taskTypes

Каталог со списком наименований типов задач.

Responses

200 OK
Body
Array
Object
guid
string

ID типа задачи

Example:
00000000-0000-0000-0000-000000000034
name
string

Наименование типа задачи

Example:
Тип задачи 1
Example 1
GET /catalogs/list/taskTypes HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000034",
        "name": "Тип задачи 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000035",
        "name": "Тип задачи 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000036",
        "name": "Тип задачи 3"
    }
]
/batchOfComponents
GET /catalogs/list/batchOfComponents

Каталог партий компонентов. Устаревший, используется для рецептур НИЦ. Должен быть заменен. Атрибутный состав не указывается, так ОН НЕ АКТУАЛЕН ДЛЯ ТЕКУЩЕГО РЕШЕНИЯ. Должен быть переделан в слечае получения партий по интеграции.

Responses

200 OK
/products
GET /catalogs/list/products

Коталог с наименованиями продуктов

Responses

200 OK
Body
Array
Object
guid
string
Example:
00000000-0000-0000-0000-000000000037
name
string
Example:
Продукт 1
productType
string

Наименование типа продукта. Ключ, по которому будет определяться, умеет ли для данного типа проекта рассчитываться определенный показатель.

Example:
PG
Example 1
GET /catalogs/list/products HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000037",
        "name": "Продукт 1",
        "productType": "PG"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000038",
        "name": "Продукт 2",
        "productType": "ПБВ"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000039",
        "name": "Продукт 3",
        "productType": "Тест"
    }
]
/specifications
GET /catalogs/list/specifications

Каталог с наименованием спецификаций продуктов (атрибут шаблонов)

Responses

200 OK
Body
Array
Object
guid
string

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

Example:
00000000-0000-0000-0000-000000000040
name
string

Наименование спецификации

Example:
Спецификация 1
productID
string

Ссылка на ID продукта (products)

Example:
00000000-0000-0000-0000-000000000037
Example 1
GET /catalogs/list/specifications HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000040",
        "productID": "00000000-0000-0000-0000-000000000037",
        "name": "Спецификация 1"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000041",
        "productID": "00000000-0000-0000-0000-000000000037",
        "name": "Спецификация 2"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000042",
        "productID": "00000000-0000-0000-0000-000000000037",
        "name": "Спецификация 3"
    }
]
/requirementsTemplates
GET /catalogs/list/requirementsTemplates

Каталог наименований шаблонов для продуктов. Пока неивестно, нужен ли он, или вместо него будут НТД.

Responses

200 OK
Body
Array
Object
guid
string

ID шаблона

Example:
00000000-0000-0000-0000-000000000043
name
string

Наименование шаблона

Example:
Шаблон 1
productID
string

Ссылка на ID продукта (products)

Example:
00000000-0000-0000-0000-000000000037
specificationID
string

Ссылка на ID спецификации (specifications)

Example:
00000000-0000-0000-0000-000000000040
Example 1
GET /catalogs/list/requirementsTemplates HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000043",
        "name": "Шаблон 1",
        "productID": "00000000-0000-0000-0000-000000000037",
        "specificationID": "00000000-0000-0000-0000-000000000040"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000044",
        "name": "Шаблон 2",
        "productID": "00000000-0000-0000-0000-000000000037",
        "specificationID": "00000000-0000-0000-0000-000000000040"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000045",
        "name": "Шаблон 3",
        "productID": "00000000-0000-0000-0000-000000000038",
        "specificationID": "00000000-0000-0000-0000-000000000041"
    },    
    {
        "guid": "00000000-0000-0000-0000-000000000046",
        "name": "Шаблон 4",
        "productID": "00000000-0000-0000-0000-000000000039",
        "specificationID": "00000000-0000-0000-0000-000000000042"
    },
    {
        "guid": "00000000-0000-0000-0000-000000000047",
        "name": "Шаблон 5",
        "productID": "00000000-0000-0000-0000-000000000039",
        "specificationID": "00000000-0000-0000-0000-000000000042"
    }
]
/normTechDoc
GET /catalogs/list/normTechDoc

Responses

200 OK
Body
Array
Object
guid
string
Example:
00000000-0000-0000-0000-000000000048
name
string
Example:
НТД 1
productID
string
Example:
00000000-0000-0000-0000-000000000037
Example 1
GET /catalogs/list/normTechDoc HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

[
    {
        "guid": "00000000-0000-0000-0000-000000000048",
        "name": "НТД 1",
        "productID": "00000000-0000-0000-0000-000000000037"
    }
]
/calculations

Корневой URL для управлением расчетов технологов

POST /calculations/list
DELETE /calculations/delete
/list
POST /calculations/list

Запрос для получения списка расчетов. В теле запроса передаются параметры поиска, фильтрации, и пагинации.

Request body

Object
search
string

Текстовое поле для передачи значения полнотекстового поиска. Не передается исли полнотекстовый поиск не выполняется.

Example:
текст
productIDs
Array

Массив содержащий ссылки на продукты по которым выполняется фильтраци. Не передается если нет фильтрации по продуктам

Example:
["00000000-0000-0000-0000-000000000037"]
string
Example:
00000000-0000-0000-0000-000000000037
specificationIDs
Array

Массив содержащий ссылки на спецификации по которым выполняется фильтраци. Не передается если нет фильтрации по спецификациям

Example:
["00000000-0000-0000-0000-000000000040"]
string
Example:
00000000-0000-0000-0000-000000000040
requirementsTemplateIDs
Array

Массив содержащий ссылки на шаблоны по которым выполняется фильтраци. Не передается если нет фильтрации по шаблонам

Example:
["00000000-0000-0000-0000-000000000043"]
string
Example:
00000000-0000-0000-0000-000000000043
normTechDocIDs
Array of string
Example:
00000000-0000-0000-0000-000000000001
userIDs
Array

Массив содержащий ссылки на пользователей (создателей расчетов) по которым выполняется фильтраци. Не передается если нет фильтрации по пользователю

Example:
["00000000-0000-0000-0000-000000000001"]
string
Example:
00000000-0000-0000-0000-000000000001
create_date_start
string

Фильтра по дате создание, критерий “от даты”. Не передается, если подобая фильтрация не выполняется.

Example:
2025-07-14T14:05:16Z
create_date_end
string

Фильтра по дате создание, критерий “по дату”. Не передается, если подобая фильтрация не выполняется.

Example:
2025-07-29T14:05:16Z
currentQuantity
integer

Критерий для пагинации. Определяет, какой должен быть порядковый номер расчета, начиная с которого необходимо передавать список запросов. Передается всегда не зависит от наличия/отсутствия фильтрации.

Example:
0
defaultQuantity
integer

Критерий для пагинации. Определяет, какое количество расчетов необходимо передать с бека на фронт, начиная с расчета определенного по критерию currentQuantity. То есть если для отображения на странице выбрано 20 запросов, то на первой странице currentQuantity будет 0, на второй 21, на третий 41, на третьей 61, и так далее.Передается всегда не зависит от наличия/отсутствия фильтрации.

Example:
50

Responses

200 OK
Body
Object
itemsCount
integer

Содержит общее количество всех расчетов, которые были отобраны по результатам поиска и фильтрации, или без них, если поиск и и фильтрация не применялись. Критерии для пагинации.

Example:
1703
calculations
Array

Массив со списком расчетов которые должны быть отображены на странице

Object
guid
string

ID записи рачета

Example:
00000000-0000-0000-0000-000000000100
user
string

Содержит ID автора расчета. Содержит GUID, так как если нам преидется определять может ли человек редактировать свой/не свой расчет то нужно как то отделять свои расчеты от чужих.

Example:
00000000-0000-0000-0000-000000000001
number
string

Содержит номер расчета. Не содержит guid, так как на экране расчетов не нужно ими управлять и редактировать.

Example:
2025-0001
create_date
string

Содержит дату создания расчета.

Example:
2025-07-14T14:05:16Z
comment
string

Содержит текст комменатрия расчета

Example:
Текст комментария
product
string

Содержит наименование продукта в расчете. Не содержит guid, так как на экране расчетов не нужно ими управлять и редактировать. Если передается пустым как “”, для отображения его необходимо заменить на “Не выбран”.

Example:
Продукт 1
specification
string

Содержит наименование спецификации в расчете. Не содержит guid, так как на экране расчетов не нужно ими управлять и редактировать. Если передается пустым как “”, для отображения его необходимо заменить на “-”.

Example:
Спецификация 1
requirementsTemplate
string

Содержит наименование шаблона в расчете. Не содержит guid, так как на экране расчетов не нужно ими управлять и редактировать. Если передается пустым как “”, для отображения его необходимо заменить на “-”.

Example:
Шаблон 1
normTechDoc
string

Содержит наименование НТД в расчете. Не содержит guid, так как на экране расчетов не нужно ими управлять и редактировать. Если передается пустым как “”, для отображения его необходимо заменить на “-”.

Example:
НТД 1
Example 1
POST /calculations/list HTTP/1.1 

Content-Type: application/json

{
    "search": "текст",
    "productIDs": [
        "00000000-0000-0000-0000-000000000037"
    ],
    "specificationIDs": [
        "00000000-0000-0000-0000-000000000040"
    ],
    "requirementsTemplateIDs": [
        "00000000-0000-0000-0000-000000000043"
    ],
    "userIDs": [
        "00000000-0000-0000-0000-000000000001"
    ],
    "create_date_start": "2025-07-14T14:05:16Z",
    "create_date_end": "2025-07-29T14:05:16Z",
    "currentQuantity": 1,
    "defaultQuantity": 50
}

HTTP/1.1 200 Created 

Content-Type: application/json

{
    "itemsCount": 1703,
    "calculations": [
        {
            "guid": "00000000-0000-0000-0000-000000000100",
            "user": "00000000-0000-0000-0000-000000000001",
            "number": "2025-0001",
            "create_date": "2025-07-14T14:05:16Z",
            "comment": "Текст комментария",
            "product": "Продукт 1",
            "specification": "Спецификация 1",
            "normTechDoc": "НТД 1",
            "requirementsTemplate": "Шаблон 1"
        },
        {
            "guid": "00000000-0000-0000-0000-000000000101",
            "user": "00000000-0000-0000-0000-000000000001",
            "number": "2025-0002",
            "create_date": "2025-07-14T14:05:16Z",
            "comment": "Текст комментария",
            "product": "Продукт 1",
            "specification": "Спецификация 1",
            "normTechDoc": "НТД 1",
            "requirementsTemplate": "Шаблон 1"
        }
    ]
}
/write (при комментрировании)
POST /calculations/write

Запрос для редактирования комменатрия к конкретному расчету

Request parameters

guid
string optional

ID расчета для которого редактируется комментарий

Example:
00000000-0000-0000-0000-000000000100

Request body

Object
comment
string

Содержит новый текст комменатрия

Example:
Текст комменатрия 2

Responses

200 OK
Body
Object
calculation
Object

Содержит весь измененный расчет, с новым комменатрием который записался на бек. Но не в массиве, а единичный

guid
string
Example:
00000000-0000-0000-0000-000000000100
user
string
Example:
Иванов Иван Иванович
number
string
Example:
2025-0001
create_date
string
Example:
2025-07-14T14:05:16Z
comment
string
Example:
Текст комментария 2
product
string
Example:
Продукт 1
specification
string
Example:
Спецификация 1
requirementsTemplate
string
Example:
Шаблон 1
Example 1
POST /calculations/write HTTP/1.1 

Content-Type: application/json

{
    "comment": "Текст комменатрия 2"
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "calculation": {
        "guid": "00000000-0000-0000-0000-000000000100",
        "user": "Иванов Иван Иванович",
        "number": "2025-0001",
        "create_date": "2025-07-14T14:05:16Z",
        "comment": "Текст комментария 2",
        "product": "Продукт 1",
        "specification": "Спецификация 1",
        "requirementsTemplate": "Шаблон 1"
    }
}
/delete
DELETE /calculations/delete

Удаление строки расчета. При успешном удалении просто возращается код 200

Request parameters

guid
string optional

ID удаляемого расчета

Responses

200 OK
/write (при создании расчета)
POST /calculations/write

Запрос отправляется для создания нового расчета. Наверно его нужно как-то отличать от других запросов, которые в будущем могут появится, так что давайте добавим в него пока бесполезное свойство calculation с значением NEW. В ответе будет содержать пустые значения для отображения

Request body

Object
calculation
string

Атрибут, по которому определяется что надо выполнить создание нового расчета. Всегда должен содержать значение NEW (других пока не прибумали)

Example:
NEW