Единое рабочее пространство раскладки

2 мин. чтения

Статус Актуально
Последняя проверка 2026-10-07 (соответствует Git на момент импорта; содержание повторно не проверялось)
Источник Git
Исходный файл docs/UNIFIED_NESTING.md — открыть на GitHub
Язык статьи перевод с английского оригинала (файл перевода: translations/ru/docs/UNIFIED_NESTING.md)
Git-репозиторий git@github.com:advertech/signage-estimator.git (сервер: /root/signage-estimator)
Git-коммит d22587c1f7e3add9efd54c7ffc0be0a01b296fa3 (master)
Файл последний раз изменён 4fe915924e12 от 2026-09-29
Последний импорт 2026-10-07T09:14:19+02:00
Примечание Источник истины — Git. Меняйте файл в репозитории и перезапускайте /root/wiki-sign-expert/import_git_docs.py; правки, сделанные здесь, будут перезаписаны следующим импортом.

Каждый листовой материал — это nesting-группа, за которой стоит завершённая запись nesting_runs. Конфигурация изделия хранит упорядоченный список nesting_run_ids; она никогда не хранит вторую изменяемую копию размещений или остатков. group_metadata определяет компонент, материал, отпечаток входных данных листа и подписи для отображения. Обычный (generic) расчёт имеет один legacy-прогон и отображается как группа PROJECT.

Публичный payload расчёта содержит nesting_groups. Каждая группа включает размеры листа, размещения, листы, остатки, коэффициент использования, списанную и возвращённую площадь. group_payload в backend/app/nesting_workspace.py вычисляет итоговые площади из сохранённого прогона. Калькуляция стоимости использует эти итоги напрямую. Разбивка изделия получает только сводку для чтения — без размещений и остатков. Старое поле nesting сохраняется для обычных расчётов и равно null для активных изделий.

Channel Letters добавляет BACK и FACE через материалы технологии NESTED_SHEET. Конфигурация может содержать любое число таких материалов. Отпечаток (fingerprint) из геометрии, выбранного материала, размеров листа, зазора и поля определяет, можно ли переиспользовать каждый прогон. Пересчёт заменяет только изменившиеся группы и сохраняет остальные run ID и ручные решения по остаткам. Общая логика detect_remnants сохраняет существующие умолчания для обрезков, нижней полосы и пригодных остатков в каждой группе. Эндпоинты размещений и остатков на уровне группы проверяют, что прогон принадлежит расчёту и текущей конфигурации изделия.

Миграция b8e3f9276a10 переносит существующие раскладки изделий в общие прогоны. Она сохраняет обычные прогоны, сохранённые ревизии, опубликованные технологии, цены и итоговые суммы предложений. Исторические ревизии, созданные до миграции, используют адаптер только для чтения; продолжение такой ревизии переносит её раскладки в общие прогоны. Эта миграция входит в новый релиз и ещё не применялась на production.

Обновлено 07.10.2026