27 KiB
ТЗ на доработку: учёт номерной тары
Дата: 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. Форма документа — видимость вкладки
На форме документа (ФормаДокумента):
- Добавить страницу (вкладку) «Учет номерной тары» справа от «Данные для печати» (
ГруппаДанныеДляПечати) в том же наборе страниц, где она расположена для основного сценария РНК. - По умолчанию в новом документе вкладка/ТЧ скрыты.
- При открытии существующего документа: если ТЧ
УчетНомернойТарыне пустая — показать вкладку. - Динамически показывать вкладку при выполнении условий п. 5.3 (изменение
ТипФасовки/ признака /КоличествоМест).
5.3. Условие обязательности и синхронизация строк
Условие «режим номерной тары»:
ТипФасовкизаполнен;- у выбранного типа фасовки
НомернаяТара = Истина.
Тогда:
- Вкладка «Учет номерной тары» видима.
- Число строк ТЧ должно быть равно
КоличествоМест(целое; приКоличествоМест ≤ 0— режим не считать корректным: запретить проведение с понятным сообщением либо не включать обязательность — зафиксировать на реализации: рекомендация — при режиме номерной тарыКоличествоМестдолжно быть ≥ 1). - При изменении
КоличествоМест— подогнать число строк ТЧ (добавить пустые / удалить лишние с конца; не затирать уже выбранные значения без необходимости). - Заполнение всех строк ТЧ обязательно для записи/проведения (проверка заполнения
НомернаяТарав каждой строке). - Выбор
НомернаяТара— только элементы с владельцем =Объект.ТипФасовки(параметр выбора / отбор). - Дубли одной и той же ссылки номерной тары в ТЧ одного документа — запретить.
Если условие режима не выполняется:
- вкладку скрывать (если ТЧ пустая);
- если пользователь сменил тип фасовки так, что признак снят, а ТЧ была заполнена — очистить ТЧ с предупреждением или запросить подтверждение (предпочтительно: предупреждение + очистка при смене владельца/признака).
5.4. Проведение — движения по регистру экзУчетНомернойТары
При проведении РНК в режиме номерной тары (п. 5.3) для каждой строки ТЧ формировать движение Расход:
| Поле регистра | Источник |
|---|---|
| Организация | шапка Организация |
| Подразделение | шапка ПодразделениеОрганизации |
| Весовая | шапка Весовая |
| Склад | шапка Склад |
| Контрагент | если заполнен ПунктРазгрузки — он; иначе Получатель |
| ТипФасовки | шапка ТипФасовки |
| НомернаяТара | строка ТЧ НомернаяТара |
| Количество | 1 |
Если режим номерной тары выключен — движений по этому регистру не писать (и очищать набор записей регистратора).
5.5. Отмена проведения, пометка удаления, перепроведение
- При отмене проведения и при пометке на удаление — движения по
экзУчетНомернойТарыдолжны быть сняты (стандартный механизм набора записей регистратора /Движения.Записывать). - Запись движений всегда через набор записей документа-регистратора с предварительной очисткой, чтобы повторное проведение или правка ТЧ не дублировали остатки.
- Контроль отрицательных остатков на этапе A не обязателен (остатки появятся после документа прихода); при необходимости — мягкое предупреждение, не блок (уточняется при внедрении).
5.6. Обмен с БЭКЗ
Требование: данные по номерной таре не выгружаем в БЭКЗ (пока).
Следствия для этапа A:
- Новые объекты (
экзНомернаяТара, регистр, ТЧ) не включать в состав выгрузкиагк_ОбменВесоваяБЭКЗ/ правила обмена как обязательную выгрузку. - Редактирование только ТЧ
УчетНомернойТары(и связанных служебных изменений, не влияющих на состав обмена) не должно регистрироватьРасходнаяНакладнаяк обмену вагк_ОбменВесоваяБЭКЗ.
Техническая реализация (на выбор при кодировании, с фиксацией в коде):
- исключение реквизитов/ТЧ из правил регистрации изменений; и/или
- при записи, если изменены только «игнорируемые» данные номерной тары —
ОбменДанными.Получатели.АвтоЗаполнение = Ложь/ снятие регистрации по узлам плана; и/или - доработка правил регистрации плана обмена.
Критерий приёмки К6 обязателен.
6. Этап B (отложено): приход и отчёт
Описать отдельно; краткий каркас:
6.1. Документ экзПриходНомернойТары
- Состав реквизитов/ТЧ зеркален измерениям регистра + ресурс Количество (или ТЧ с номерной тарой по аналогии с РНК).
- Регистратор регистра
экзУчетНомернойТары, движение Приход. - Права: как у весовщиков на РНК / Приход по весовой (
Весовая_Весовщики связанные роли).
6.2. Отчёт «Движение номерной тары»
- Анализ прихода/расхода/остатков по регистру
экзУчетНомернойТары. - Детали — в отдельной задаче.
6.3. Включение отбора по остаткам в РНК
- При
экзИспользоватьОстаткиНомернойТары = Истина— в выборе ТЧ РНК показывать только тару с остатком.
7. Сценарии проверки (этап A)
- Тип фасовки без признака → в новой РНК вкладки номерной тары нет; проведение без ТЧ ОК.
- Тип фасовки с признаком,
КоличествоМест = 3→ вкладка видна, 3 строки, без заполнения проведение запрещено. - Выбор номерной тары другого владельца невозможен.
- Заполнение 3 разных экземпляров → проведение создаёт 3 движения расхода с Количество = 1 и корректными измерениями (контрагент: приоритет
ПунктРазгрузки). - Отмена проведения → остатки/обороты регистратора обнулены; повторное проведение не удваивает.
- Изменение только ТЧ номерной тары у уже выгружаемого/регистрируемого контура → нет новой регистрации в
агк_ОбменВесоваяБЭКЗ(при прочих неизменных полях обмена). - Загрузка Excel по выбранному типу фасовки создаёт элементы с владельцем и длиной имени ≤ 25.
- Роль без
ПолныеПраване меняет признакНомернаяТарау типа фасовки; рольэкзУчетНомернойТарыможет создавать элементы справочника номерной тары.
8. Вне объёма этапа A
- Документ «Приход номерной тары».
- Отчёт о движении номерной тары.
- Отбор выбора в РНК строго по остаткам.
- Выгрузка номерной тары / движений в БЭКЗ.
- Мобильный клиент / отдельные РМ (если появятся — отдельная задача).
9. Открытые решения (зафиксировать при реализации, если не оговорено иначе)
| Тема | Рекомендация по умолчанию |
|---|---|
| Имена метаданных | префикс экз… по таблице §2 |
КоличествоМест = 0 при включённом признаке |
запрет проведения |
| Дубли в Excel | пропуск с записью в протокол |
| Отрицательные остатки на этапе A | не блокировать |
| Место команды загрузки Excel | форма списка экзНомернаяТара |
10. Порядок реализации (рекомендуемый)
- Реквизит
НомернаяТаравэкзТипыФасовки+ права. - Справочник
экзНомернаяТара+ роль + загрузка Excel. - Регистр
экзУчетНомернойТары+ константа. - ТЧ и форма РНК (видимость, число строк, отбор выбора, проверки).
- Движения при проведении / отмене.
- Исключение влияния ТЧ на регистрацию БЭКЗ.
- Регрессионные сценарии §7.
Источники уточнения имён: MCP user-1c (конфигурация ВесоваяАК 0.0.3.21), исходники ves2020 (экзТипыФасовки, РасходнаяНакладная, агк_ОбменВесоваяБЭКЗ, роли ПолныеПрава / Весовая_Весовщик).