Добавить анализ ТЗ.md
This commit is contained in:
+150
@@ -0,0 +1,150 @@
|
||||
# Резюме критики ТЗ: учёт номерной тары
|
||||
|
||||
**Дата:** 07.10.2026
|
||||
**Исходный документ:** `work/ТЗ-учет-номерной-тары.md`
|
||||
**Конфигурация:** ВесоваяАК (`ves2020`), версия на момент анализа 0.0.3.21
|
||||
|
||||
ТЗ в целом читаемое и привязано к реальным именам (`экзТипыФасовки`, `КоличествоМест`, `агк_ОбменВесоваяБЭКЗ`). Главная проблема — **этап A смешивает фиксацию экземпляров в отгрузке и полноценный учёт остатков**, при этом ряд решений оставлен «на реализацию», хотя уже влияет на данные и приёмку.
|
||||
|
||||
Важно: в исходниках `ves2020` объекты и логика уже есть (ТЧ, регистр, движения, проверка обмена), а в ИБ через MCP регистр на момент разбора не находился — постановка и факт могут расходиться. ТЗ стоит либо перевести в статус «as-built / сверка», либо явно пометить, что ещё не внедрено.
|
||||
|
||||
---
|
||||
|
||||
## Критично (менять в постановке)
|
||||
|
||||
### 1. Регистр остатков без прихода
|
||||
|
||||
Сейчас: РН остатков + только **Расход** по РНК, приход — этап B, минусы не блокировать.
|
||||
|
||||
Это даёт хронические отрицательные остатки. Когда на B включат константу и отбор «только с остатком», либо всё «пусто», либо всё «в минусе» — нужна миграция/ввод остатков.
|
||||
|
||||
**Доработка ТЗ (выбрать одно и зафиксировать):**
|
||||
|
||||
| Вариант | Суть |
|
||||
|--------|------|
|
||||
| **A′ (рекомендую)** | На этапе A: справочник + ТЧ в РНК + права + изоляция БЭКЗ. Регистр и движения — только вместе с приходом на B |
|
||||
| **A″** | Регистр создать, но **не писать движения** до B |
|
||||
| **A‴** | Движения писать, но явно: «технический минус допустим» + обязательный сценарий выравнивания **до** включения константы |
|
||||
|
||||
Критерий К5 в текущем виде закрепляет худший вариант без оговорки про B.
|
||||
|
||||
### 2. Измерение `Контрагент` в ключе остатка
|
||||
|
||||
В РНК есть `Контрагент` (владелец зерна), `Покупатель`, `Получатель`, `ПунктРазгрузки`. ТЗ берёт «ПунктРазгрузки, иначе Получатель» — без бизнес-смысла.
|
||||
|
||||
Остаток «на складе/весовой» и «у контрагента» — разные модели. В одном ключе с `Склад`/`Весовая` это конфликтует с будущим приходом.
|
||||
|
||||
**Зафиксировать в §4.3 / §9:**
|
||||
|
||||
- что учитываем: тара **на складе отгрузки** или **у грузополучателя**;
|
||||
- формулу контрагента и поведение, если оба пусты (запрет проведения / пустое измерение);
|
||||
- для каких `ВидОперации` РНК режим номерной тары вообще действует.
|
||||
|
||||
Пока смысл неясен — **не включать `Контрагент` в измерения** (оставить реквизитом движения или отложить до B).
|
||||
|
||||
### 3. Избыточность `ТипФасовки` в измерениях
|
||||
|
||||
Экземпляр уже подчинён типу фасовки. Дубль в ключе остатка → риск рассинхрона при смене владельца у элемента.
|
||||
|
||||
**Предложение:** измерение убрать; тип брать из владельца `НомернаяТара` или только в отчётах.
|
||||
|
||||
---
|
||||
|
||||
## Высокий приоритет (дыры приёмки)
|
||||
|
||||
### 4. Обмен БЭКЗ (К6)
|
||||
|
||||
«Правка только ТЧ не регистрирует» — узко и хрупко:
|
||||
|
||||
- не сказано про другие планы (`ПоВесовым`, УФ и т.д.);
|
||||
- нет приёмки «на узле обмена нет новой регистрации»;
|
||||
- не описано, что будет, если документ всё же уйдёт в выгрузку (ТЧ в правилах нет).
|
||||
|
||||
**Дописать в §5.6:**
|
||||
|
||||
1. только `агк_ОбменВесоваяБЭКЗ` или все планы РНК;
|
||||
2. механизм: правила регистрации, не `АвтоЗаполнение = Ложь` «на удачу»;
|
||||
3. сценарий: изменить только ТЧ → проверить регистрацию на тестовом узле;
|
||||
4. новые объекты **не** включать в состав плана.
|
||||
|
||||
### 5. Права — матрица неполная
|
||||
|
||||
Есть признак (только `ПолныеПрава`) и роль справочника. Нет:
|
||||
|
||||
- кто заполняет ТЧ в РНК (`Весовая_Весовщик`?);
|
||||
- права на регистр (чтение/изменение);
|
||||
- как ограничить изменение булева реквизита (права на реквизит vs `ТолькоПросмотр` на форме — в 1С это разные вещи);
|
||||
- RLS по организации/весовой для нового регистра.
|
||||
|
||||
**Добавить таблицу «объект × роль × действие»** до реализации прав.
|
||||
|
||||
### 6. `КоличествоМест` ↔ ТЧ
|
||||
|
||||
Число — не обязательно целое; места могут пересчитываться из веса; синхронизация только на форме не ловит запись без UI.
|
||||
|
||||
**Зафиксировать:**
|
||||
|
||||
- при режиме номерной тары `КоличествоМест` — целое ≥ 1 (иначе запрет проведения) — убрать «на реализации»;
|
||||
- синхронизация/проверки в модуле объекта, не только в форме;
|
||||
- при уменьшении мест — удалять **незаполненные** с конца, заполненные — с подтверждением;
|
||||
- при смене `ТипФасовки` / снятии признака — очистка ТЧ с вопросом (один выбранный UX).
|
||||
|
||||
### 7. Константа без поведения
|
||||
|
||||
Создавать `экзИспользоватьОстаткиНомернойТары` на A без эффекта — путаница для админов.
|
||||
|
||||
**Либо не создавать до B, либо не выводить в интерфейс** и явно в К7: «заготовка, UI не меняет».
|
||||
|
||||
---
|
||||
|
||||
## Средний приоритет
|
||||
|
||||
| Тема | Что дописать |
|
||||
|------|----------------|
|
||||
| Двойной расход одной тары в разных РНК | На A: запрет / предупреждение / ничего — сейчас только дубль внутри одного документа |
|
||||
| Уникальность в справочнике | Уникальность наименования в пределах владельца + индекс/контроль при Excel |
|
||||
| Excel | xls/xlsx, лист, строка заголовка, кодировка, «создать vs обновить», лимит строк, права на обработку |
|
||||
| Копирование / ввод на основании РНК | копировать ТЧ или очищать |
|
||||
| Печать | номерная тара в печатных формах — да/нет (вне A — явно) |
|
||||
| Имена | синоним регистра = синоним справочника → путаница в отчётах; развести |
|
||||
| К4 | «запись/проведение» — проверки только при **проведении** или ещё при записи |
|
||||
| Срок 07.10.2026 = дата документа | обновить статус этапа A (done / in progress / postponed) |
|
||||
|
||||
---
|
||||
|
||||
## Предлагаемая правка структуры ТЗ
|
||||
|
||||
1. **§1.2** — разделить критерии: «фиксация в документе» vs «остатки»; К5 либо смягчить, либо перенести на B.
|
||||
2. **§3** — этап A′ без движений по регистру (или A‴ с явной политикой минусов).
|
||||
3. **§4.3** — таблица «модель остатков» + решение по `Контрагент`/`ТипФасовки`; ресурс `Количество` — целое, точность 0.
|
||||
4. **§4.4** — константу вынести из Must этапа A.
|
||||
5. **§5.3** — закрыть открытые ветки из §9 (места = 0, смена типа, дробь).
|
||||
6. **§5.6** — измеримый тест К6 + другие планы обмена.
|
||||
7. **§7** — добавить: двойной расход; дробные места; смена типа с заполненной ТЧ; права весовщика на ТЧ; константа не влияет на выбор.
|
||||
8. **§9** — превратить «рекомендации» в **принятые решения** или вопросы заказчику.
|
||||
9. **Шапка** — статус относительно кода в `ves2020` / версии ИБ.
|
||||
|
||||
---
|
||||
|
||||
## Минимальный Must для этапа A (если цель — «в отгрузке указать номера»)
|
||||
|
||||
1. Признак у типа фасовки.
|
||||
2. Справочник + Excel.
|
||||
3. ТЧ в РНК: видимость, N = места, без дублей, отбор по владельцу, проверки при проведении.
|
||||
4. Матрица прав.
|
||||
5. Изоляция от БЭКЗ с приёмкой на узле.
|
||||
|
||||
Регистр, константа, отчёт, отбор по остаткам — **один пакет на B** с согласованной аналитикой.
|
||||
|
||||
---
|
||||
|
||||
## Вопросы заказчику (без ответа — не закрывать регистр)
|
||||
|
||||
1. Тара после отгрузки числится **на складе** или **у контрагента**? Нужен ли возврат?
|
||||
2. Можно ли одну номерную тару отгрузить дважды, пока нет прихода?
|
||||
3. Режим нужен для всех видов операций РНК или только для части?
|
||||
4. Достаточно ли на A записи номеров в документе **без** регистра остатков?
|
||||
|
||||
---
|
||||
|
||||
*Основано на критическом разборе ТЗ от 07.10.2026; сверка имён — MCP `user-1c` / исходники `ves2020`.*
|
||||
Reference in New Issue
Block a user