Files
2026-10-07 12:47:05 +00:00

27 KiB
Raw Permalink Blame History

ТЗ на доработку: учёт номерной тары

Дата: 07.10.2026
Конфигурация: ВесоваяАК (ves2020)
Версия конфигурации (на момент анализа): 0.0.3.21
Область: учёт номерной тары при отгрузке (Расходная накладная)
Тип работ: новая функциональность (метаданные + форма/проведение документа)

Документ сформирован по постановке заказчика с уточнением имён объектов по текущим исходникам/ИБ. Правки в конфигурацию этим документом не вносятся.


1. Цель и критерии успеха

1.1. Цель

Обеспечить учёт индивидуальной (номерной) тары при отгрузке по Расходной накладной:

  • вести справочник экземпляров номерной тары в разрезе типа фасовки;
  • при признаке «номерная тара» у типа фасовки — обязательно фиксировать конкретные экземпляры в документе;
  • отражать расход в регистре накопления остатков;
  • не регистрировать изменения ТЧ номерной тары на выгрузку в БЭКЗ (на текущем этапе).

1.2. Критерии приёмки

№ Критерий Как проверить
К1 У экзТипыФасовки есть реквизит «Номерная тара» (Булево); просмотр всем, изменение — только Полные права Роли / форма элемента
К2 Создан справочник номерной тары с владельцем экзТипыФасовки, длина наименования 25; есть загрузка из Excel по выбранному владельцу Метаданные + сценарий загрузки
К3 Создан РН остатков «Учет номерной тары» с заданным составом; регистратор — РасходнаяНакладная Метаданные регистра
К4 В РНК при заполненном ТипФасовки с признаком «Номерная тара» отображается ТЧ, число строк = КоличествоМест, заполнение обязательно, выбор ограничен владельцем UI + проведение с ошибкой при пустых/неполных строках
К5 При проведении формируются движения расхода (Количество = 1 на строку); при отмене проведения / пометке на удаление движения снимаются без дублей при повторном проведении Остатки регистра до/после
К6 Изменение только ТЧ «Учет номерной тары» не приводит к регистрации документа в плане обмена агк_ОбменВесоваяБЭКЗ Узлы обмена / регистрация изменений
К7 Константа/настройка «Использовать остатки номерной тары» создана; в РНК пока выбор всех элементов по владельцу (без отбора по остаткам) Константа + форма выбора
К8 П.6 (документ «Приход номерной тары», отчёт о движении) — вне срока до 07.10.2026, допускается отдельной задачей Согласование сроков

2. Фактический контекст конфигурации (as-is)

Объект в постановке Факт в конфигурации
Справочник «Тип фасовки» Справочник.экзТипыФасовки (синоним: «Типы фасовки»)
Реквизит «Тип фасовки» в РНК Документ.РасходнаяНакладная.ТипФасовки → Справочник.экзТипыФасовки
«Количество мест» КоличествоМест (вкладка «Данные для печати» → «Дополнительные», страница ГруппаДанныеДляПечатиСтраницаДополнительные)
Организация / Подразделение / Весовая / Склад Организация, ПодразделениеОрганизации, Весовая, Склад
Пункт разгрузки / Получатель ПунктРазгрузки («Пункт разгрузки (Контрагент)»), Получатель («Контрагент (Получатель)»)
Вкладка «Данные для печати» страница формы ГруппаДанныеДляПечати
Полные права роль ПолныеПрава
Весовщики роль Весовая_Весовщик (и при необходимости Весовая_ВесовщикRLS)
Обмен с БЭКЗ план обмена агк_ОбменВесоваяБЭКЗ (в составе есть Document.РасходнаяНакладная)
Существующий справочник экзТара не использовать: это «Тара» (номенклатура/вес), уже связан реквизитом экзТипыФасовки.Тара. Номерная тара — отдельный объект

Предлагаемые имена новых объектов (префикс экз — по домену фасовки/тары; PREFIX в .dev.env пуст):

Назначение Имя метаданных Синоним
Признак в типе фасовки экзТипыФасовки.НомернаяТара Номерная тара
Справочник экземпляров Справочник.экзНомернаяТара Номерная тара
Роль учёта Роль.экзУчетНомернойТары Учет номерной тары
Регистр накопления РегистрНакопления.экзУчетНомернойТары Учет номерной тары
ТЧ документа РасходнаяНакладная.УчетНомернойТары Учет номерной тары
Настройка Константа.экзИспользоватьОстаткиНомернойТары Использовать остатки номерной тары
Документ прихода (этап 2) Документ.экзПриходНомернойТары Приход номерной тары

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


3. Объём работ по этапам

Этап A — к 07.10.2026 (обязательный)

Пункты постановки 1–5: признак в типе фасовки, справочник номерной тары (+ загрузка Excel), регистр, доработка РНК (форма, проверки, движения), настройка «Использовать остатки…» (заготовка под будущее).

Этап B — позже (не до 07.10.2026)

Пункт постановки 6: документ «Приход номерной тары», отчёт о движении номерной тары, включение отбора выбора в РНК по остаткам при включённой настройке.


4. Требования к метаданным и правам

4.1. Справочник экзТипыФасовки (Типы фасовки)

Добавить реквизит:

Свойство Значение
Имя НомернаяТара
Синоним Номерная тара
Тип Булево
По умолчанию Ложь
Размещение на форме форма элемента ФормаЭлементаУправляемая

Права на реквизит:

  • просмотр — всем ролям, имеющим доступ к справочнику;
  • изменение — только роль ПолныеПрава (остальным — только просмотр значения).

Не путать с существующим реквизитом Тара (СправочникСсылка.экзТара).

4.2. Справочник экзНомернаяТара (Номерная тара)

Свойство Значение
Владелец Справочник.экзТипыФасовки
Использование подчинения Элементам
Наименование строка, длина 25
Код по принятому в проекте шаблону справочников (допустимо короткий код / автонумерация)
Иерархия нет

Права:

Действие Кто
Просмотр / чтение всем (как минимум ролям контура весовой с доступом к НСИ)
Добавление / изменение / пометка удаления новая роль экзУчетНомернойТары («Учет номерной тары») + ПолныеПрава

Роль включить в нужные профили групп доступа отдельно (вне кода — администрирование).

4.2.1. Загрузка из Excel

Нужна обработка (отдельная обработка или команда формы списка справочника) загрузки элементов по выбранному владельцу (Тип фасовки):

  • пользователь выбирает тип фасовки (владелец) и файл Excel;
  • в файле — колонка с наименованием номерной тары (длина ≤ 25); при необходимости — доп. колонки по согласованию на реализации;
  • создаются/обновляются элементы с указанным владельцем;
  • дубли по наименованию в рамках владельца: не создавать повторно (или обновлять существующий — зафиксировать в реализации один вариант и описать в справке);
  • ошибки строк (пустое имя, длина > 25) — в протокол загрузки, без «тихого» пропуска без отчёта.

4.3. Регистр накопления экзУчетНомернойТары

Свойство Значение
Вид Остатки
Синоним Учет номерной тары

Измерения:

Имя Тип
Организация СправочникСсылка.Организации
Подразделение СправочникСсылка.ПодразделенияОрганизаций (из шапки РНК — ПодразделениеОрганизации)
Весовая СправочникСсылка.Весовые
Склад СправочникСсылка.Склады
Контрагент СправочникСсылка.Контрагенты
ТипФасовки СправочникСсылка.экзТипыФасовки
НомернаяТара СправочникСсылка.экзНомернаяТара

Ресурс: Количество (Число; для движений РНК — всегда 1 на строку ТЧ).

Регистраторы (этап A):

  • Документ.РасходнаяНакладная — вид движения Расход.

Регистраторы (этап B):

  • Документ.экзПриходНомернойТары — вид движения Приход (позже).

Контроль уникальности измерений при проектировании: одна комбинация измерений — один остаток; повтор одной и той же номерной тары в одной РНК не допускается (проверка при записи/проведении).

4.4. Настройка экзИспользоватьОстаткиНомернойТары

Свойство Значение
Тип Булево
Синоним Использовать остатки номерной тары
Значение по умолчанию Ложь
Размещение форма констант / настройки учёта (по аналогии с другими Использовать… в конфигурации)

Поведение на этапе A: константа создаётся и сохраняется; в форме выбора номерной тары в РНК не отбираем по остаткам — показываем все элементы по владельцу ТипФасовки.

Поведение на этапе B (после документа прихода): при Истина в выборе ТЧ РНК — только тара с положительным остатком по релевантным измерениям (уточнить разрез отбора в задаче этапа B).


5. Доработка документа РасходнаяНакладная

5.1. Табличная часть УчетНомернойТары

Колонка Тип Обязательность
НомернаяТара СправочникСсылка.экзНомернаяТара да, когда ТЧ обязательна по п. 5.3

Дополнительные колонки на этапе A не требуются.

5.2. Форма документа — видимость вкладки

На форме документа (ФормаДокумента):

  1. Добавить страницу (вкладку) «Учет номерной тары» справа от «Данные для печати» (ГруппаДанныеДляПечати) в том же наборе страниц, где она расположена для основного сценария РНК.
  2. По умолчанию в новом документе вкладка/ТЧ скрыты.
  3. При открытии существующего документа: если ТЧ УчетНомернойТары не пустая — показать вкладку.
  4. Динамически показывать вкладку при выполнении условий п. 5.3 (изменение ТипФасовки / признака / КоличествоМест).

5.3. Условие обязательности и синхронизация строк

Условие «режим номерной тары»:

  • ТипФасовки заполнен;
  • у выбранного типа фасовки НомернаяТара = Истина.

Тогда:

  1. Вкладка «Учет номерной тары» видима.
  2. Число строк ТЧ должно быть равно КоличествоМест (целое; при КоличествоМест ≤ 0 — режим не считать корректным: запретить проведение с понятным сообщением либо не включать обязательность — зафиксировать на реализации: рекомендация — при режиме номерной тары КоличествоМест должно быть ≥ 1).
  3. При изменении КоличествоМест — подогнать число строк ТЧ (добавить пустые / удалить лишние с конца; не затирать уже выбранные значения без необходимости).
  4. Заполнение всех строк ТЧ обязательно для записи/проведения (проверка заполнения НомернаяТара в каждой строке).
  5. Выбор НомернаяТара — только элементы с владельцем = Объект.ТипФасовки (параметр выбора / отбор).
  6. Дубли одной и той же ссылки номерной тары в ТЧ одного документа — запретить.

Если условие режима не выполняется:

  • вкладку скрывать (если ТЧ пустая);
  • если пользователь сменил тип фасовки так, что признак снят, а ТЧ была заполнена — очистить ТЧ с предупреждением или запросить подтверждение (предпочтительно: предупреждение + очистка при смене владельца/признака).

5.4. Проведение — движения по регистру экзУчетНомернойТары

При проведении РНК в режиме номерной тары (п. 5.3) для каждой строки ТЧ формировать движение Расход:

Поле регистра Источник
Организация шапка Организация
Подразделение шапка ПодразделениеОрганизации
Весовая шапка Весовая
Склад шапка Склад
Контрагент если заполнен ПунктРазгрузки — он; иначе Получатель
ТипФасовки шапка ТипФасовки
НомернаяТара строка ТЧ НомернаяТара
Количество 1

Если режим номерной тары выключен — движений по этому регистру не писать (и очищать набор записей регистратора).

5.5. Отмена проведения, пометка удаления, перепроведение

  • При отмене проведения и при пометке на удаление — движения по экзУчетНомернойТары должны быть сняты (стандартный механизм набора записей регистратора / Движения.Записывать).
  • Запись движений всегда через набор записей документа-регистратора с предварительной очисткой, чтобы повторное проведение или правка ТЧ не дублировали остатки.
  • Контроль отрицательных остатков на этапе A не обязателен (остатки появятся после документа прихода); при необходимости — мягкое предупреждение, не блок (уточняется при внедрении).

5.6. Обмен с БЭКЗ

Требование: данные по номерной таре не выгружаем в БЭКЗ (пока).

Следствия для этапа A:

  1. Новые объекты (экзНомернаяТара, регистр, ТЧ) не включать в состав выгрузки агк_ОбменВесоваяБЭКЗ / правила обмена как обязательную выгрузку.
  2. Редактирование только ТЧ УчетНомернойТары (и связанных служебных изменений, не влияющих на состав обмена) не должно регистрировать РасходнаяНакладная к обмену в агк_ОбменВесоваяБЭКЗ.

Техническая реализация (на выбор при кодировании, с фиксацией в коде):

  • исключение реквизитов/ТЧ из правил регистрации изменений; и/или
  • при записи, если изменены только «игнорируемые» данные номерной тары — ОбменДанными.Получатели.АвтоЗаполнение = Ложь / снятие регистрации по узлам плана; и/или
  • доработка правил регистрации плана обмена.

Критерий приёмки К6 обязателен.


6. Этап B (отложено): приход и отчёт

Описать отдельно; краткий каркас:

6.1. Документ экзПриходНомернойТары

  • Состав реквизитов/ТЧ зеркален измерениям регистра + ресурс Количество (или ТЧ с номерной тарой по аналогии с РНК).
  • Регистратор регистра экзУчетНомернойТары, движение Приход.
  • Права: как у весовщиков на РНК / Приход по весовой (Весовая_Весовщик и связанные роли).

6.2. Отчёт «Движение номерной тары»

  • Анализ прихода/расхода/остатков по регистру экзУчетНомернойТары.
  • Детали — в отдельной задаче.

6.3. Включение отбора по остаткам в РНК

  • При экзИспользоватьОстаткиНомернойТары = Истина — в выборе ТЧ РНК показывать только тару с остатком.

7. Сценарии проверки (этап A)

  1. Тип фасовки без признака → в новой РНК вкладки номерной тары нет; проведение без ТЧ ОК.
  2. Тип фасовки с признаком, КоличествоМест = 3 → вкладка видна, 3 строки, без заполнения проведение запрещено.
  3. Выбор номерной тары другого владельца невозможен.
  4. Заполнение 3 разных экземпляров → проведение создаёт 3 движения расхода с Количество = 1 и корректными измерениями (контрагент: приоритет ПунктРазгрузки).
  5. Отмена проведения → остатки/обороты регистратора обнулены; повторное проведение не удваивает.
  6. Изменение только ТЧ номерной тары у уже выгружаемого/регистрируемого контура → нет новой регистрации в агк_ОбменВесоваяБЭКЗ (при прочих неизменных полях обмена).
  7. Загрузка Excel по выбранному типу фасовки создаёт элементы с владельцем и длиной имени ≤ 25.
  8. Роль без ПолныеПрава не меняет признак НомернаяТара у типа фасовки; роль экзУчетНомернойТары может создавать элементы справочника номерной тары.

8. Вне объёма этапа A

  • Документ «Приход номерной тары».
  • Отчёт о движении номерной тары.
  • Отбор выбора в РНК строго по остаткам.
  • Выгрузка номерной тары / движений в БЭКЗ.
  • Мобильный клиент / отдельные РМ (если появятся — отдельная задача).

9. Открытые решения (зафиксировать при реализации, если не оговорено иначе)

Тема Рекомендация по умолчанию
Имена метаданных префикс экз… по таблице §2
КоличествоМест = 0 при включённом признаке запрет проведения
Дубли в Excel пропуск с записью в протокол
Отрицательные остатки на этапе A не блокировать
Место команды загрузки Excel форма списка экзНомернаяТара

10. Порядок реализации (рекомендуемый)

  1. Реквизит НомернаяТара в экзТипыФасовки + права.
  2. Справочник экзНомернаяТара + роль + загрузка Excel.
  3. Регистр экзУчетНомернойТары + константа.
  4. ТЧ и форма РНК (видимость, число строк, отбор выбора, проверки).
  5. Движения при проведении / отмене.
  6. Исключение влияния ТЧ на регистрацию БЭКЗ.
  7. Регрессионные сценарии §7.

Источники уточнения имён: MCP user-1c (конфигурация ВесоваяАК 0.0.3.21), исходники ves2020 (экзТипыФасовки, РасходнаяНакладная, агк_ОбменВесоваяБЭКЗ, роли ПолныеПрава / Весовая_Весовщик).