# Резюме критики ТЗ: учёт номерной тары **Дата:** 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`.*