Files
cursor-1c/анализ ТЗ.md

11 KiB
Raw Permalink Blame History

Резюме критики ТЗ: учёт номерной тары

Дата: 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.