chore: манифесты списков «Исключённые предложения» для СТ, ОИД и КПС (#1)

Исключённые поставщики хранятся отдельно от «Оценки поставщиков», чтобы
отчёт СТ, INCORE и потоки их не видели. Колонки — копия офферов своей формы
плюс СТ и причина; файл КП — числом, лукап на библиотеку не читается через REST.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Тимур Городецкий
2026-10-27 11:23:04 +05:00
parent 58a6e13f36
commit 26b937afba
5 changed files with 265 additions and 0 deletions
@@ -71,6 +71,20 @@
- Запись офферов и исключённых — в общем модуле для трёх форм, чтобы позже перенести
сохранение на бэкенд без переделки компонентов.
## Устройство списков
Манифесты — `provisioning/manifests/{ct,oid,kps}.provisioning.json`.
- Колонки — копия «Оценки поставщиков» своей формы (чтобы «Вернуть» восстановило оффер
целиком) плюс `CT` (найти исключённых при открытии СТ) и `reason` (причина).
- Ссылки на обычные списки — Lookup, файл КП — сразу `offerFileId: Number`: лукап на
библиотеку документов не читается через REST.
- Номер строки комплекта — в `Title`, как в «Оценке поставщиков» (`поставщик-позиция-N`):
один формат во всех списках, разбор переиспользуется (`parseOfferItemIndex`).
- Причина повторяется в каждой строке поставщика — осознанная денормализация. Отдельный
список «Исключённые поставщики» дал бы 6 списков вместо 3 ради короткого текста.
- Поставщик без цен — строка без `position`, чтобы колонка не терялась.
## Последствия
- Три новых списка на `/sites/sed` — описать в `provisioning/manifests/{ct,oid,kps}`,
@@ -345,6 +345,97 @@
}
]
},
{
"title": "Исключённые предложения",
"template": "GenericList",
"shared": false,
"columns": [
{
"internalName": "CT",
"title": "Номер СТ",
"type": "Lookup",
"lookupList": "Сравнительная таблица",
"lookupShowField": "number"
},
{
"internalName": "supplier",
"title": "Поставщик",
"type": "Lookup",
"lookupList": "Поставщики",
"lookupShowField": "name"
},
{
"internalName": "reason",
"title": "Причина исключения",
"type": "Note"
},
{
"internalName": "position",
"title": "Позиция",
"type": "Lookup",
"lookupList": "Позиции СТ",
"lookupShowField": "position"
},
{
"internalName": "supplierPosition",
"title": "Наименование позиции",
"type": "Text"
},
{
"internalName": "unit",
"title": "Ед. изм",
"type": "Text"
},
{
"internalName": "quantity",
"title": "Количество",
"type": "Number",
"decimals": 3
},
{
"internalName": "price",
"title": "Цена",
"type": "Number",
"decimals": 2
},
{
"internalName": "summa",
"title": "Сумма",
"type": "Number",
"decimals": 2
},
{
"internalName": "valuta",
"title": "Валюта",
"type": "Lookup",
"lookupList": "Курс Валют",
"lookupShowField": "code"
},
{
"internalName": "priceTenge",
"title": "Цена в тенге",
"type": "Number",
"decimals": 2
},
{
"internalName": "summaTenge",
"title": "Сумма в тенге",
"type": "Number",
"decimals": 2
},
{
"internalName": "offerFileId",
"title": "Id файла КП",
"type": "Number",
"decimals": 0
},
{
"internalName": "deliveryDistanceKm",
"title": "Расстояние доставки, км",
"type": "Number"
}
]
},
{
"title": "Поставщики",
"template": "GenericList",
@@ -386,6 +386,97 @@
"type": "Note"
}
]
},
{
"title": "Исключённые предложения КПС",
"template": "GenericList",
"shared": false,
"columns": [
{
"internalName": "CT",
"title": "Номер СТ",
"type": "Lookup",
"lookupList": "Сравнительная таблица КПС",
"lookupShowField": "number"
},
{
"internalName": "supplier",
"title": "Поставщик",
"type": "Lookup",
"lookupList": "Поставщики",
"lookupShowField": "name"
},
{
"internalName": "reason",
"title": "Причина исключения",
"type": "Note"
},
{
"internalName": "position",
"title": "Позиция",
"type": "Lookup",
"lookupList": "Позиции СТ КПС",
"lookupShowField": "position"
},
{
"internalName": "supplierPosition",
"title": "Наименование позиции",
"type": "Text"
},
{
"internalName": "unit",
"title": "Ед. изм",
"type": "Text"
},
{
"internalName": "quantity",
"title": "Количество",
"type": "Number",
"decimals": 3
},
{
"internalName": "price",
"title": "Цена",
"type": "Number",
"decimals": 2
},
{
"internalName": "summa",
"title": "Сумма",
"type": "Number",
"decimals": 2
},
{
"internalName": "valuta",
"title": "Валюта",
"type": "Lookup",
"lookupList": "Курс Валют",
"lookupShowField": "code"
},
{
"internalName": "priceTenge",
"title": "Цена в тенге",
"type": "Number",
"decimals": 2
},
{
"internalName": "summaTenge",
"title": "Сумма в тенге",
"type": "Number",
"decimals": 2
},
{
"internalName": "offerFileId",
"title": "Id файла КП",
"type": "Number",
"decimals": 0
},
{
"internalName": "deliveryDistanceKm",
"title": "Расстояние доставки, км",
"type": "Number"
}
]
}
]
}
@@ -381,6 +381,73 @@
"type": "Boolean"
}
]
},
{
"title": "Исключённые предложения ОИД",
"template": "GenericList",
"shared": false,
"columns": [
{
"internalName": "CT",
"title": "Номер СТ",
"type": "Lookup",
"lookupList": "Сравнительная таблица ОИД",
"lookupShowField": "number"
},
{
"internalName": "supplier",
"title": "Поставщик",
"type": "Lookup",
"lookupList": "Поставщики",
"lookupShowField": "name"
},
{
"internalName": "reason",
"title": "Причина исключения",
"type": "Note"
},
{
"internalName": "position",
"title": "Позиция",
"type": "Lookup",
"lookupList": "Позиции СТ ОИД",
"lookupShowField": "position"
},
{
"internalName": "supplierPosition",
"title": "Наименование позиции",
"type": "Text"
},
{
"internalName": "unit",
"title": "Ед. изм",
"type": "Text"
},
{
"internalName": "quantity",
"title": "Количество",
"type": "Number",
"decimals": 3
},
{
"internalName": "price",
"title": "Цена",
"type": "Number",
"decimals": 2
},
{
"internalName": "summa",
"title": "Сумма",
"type": "Number",
"decimals": 2
},
{
"internalName": "offerFileId",
"title": "Id файла КП",
"type": "Number",
"decimals": 0
}
]
}
]
}
+2
View File
@@ -33,6 +33,7 @@
{ "title": "Критерии", "template": "GenericList" },
{ "title": "Согласование СТ", "template": "GenericList" },
{ "title": "Не получены КП", "template": "GenericList" },
{ "title": "Исключённые предложения", "template": "GenericList" },
{ "title": "Поставщики", "template": "GenericList" },
{ "title": "Курс Валют", "template": "GenericList" },
{ "title": "Матрица согласования СТ", "template": "GenericList" },
@@ -53,6 +54,7 @@
{ "title": "Критерии ОИД", "template": "GenericList" },
{ "title": "Согласование СТ ОИД", "template": "GenericList" },
{ "title": "Не получены КП ОИД", "template": "GenericList" },
{ "title": "Исключённые предложения ОИД", "template": "GenericList" },
{ "title": "Коммерческие предложения ОИД", "template": "DocumentLibrary" }
]
}