# Комплекты: расчёт и карта частичного возврата

Версия 1.0, 31.10.2026. Файл `m12-kits-workbook.xlsx` — рабочий шаблон для проверки собственных данных. Числа на листах с пометкой «пример» учебные. Файл не связан с WMS и не выполняет резервирование, публикацию остатка или юридические операции.

## Для какой задачи

Один владелец, один физический склад и один момент среза. До шести различных компонентов в штуках, два виртуальных набора с фиксированным составом. Набор собирается из компонентов после заказа. Готовые физические наборы, вложенные рецепты, дробные единицы и альтернативные компоненты в расчёт не включены.

## Расчёт

1. Откройте лист «Учебный пример». В нём 9 свободных кружек, 14 пачек чая, 6 коробок и 5 открыток. Набор A требует 2 кружки, 1 чай и 1 коробку. Набор B требует 1 кружку, 2 чая и 1 открытку. По отдельности можно собрать 4 A или 5 B. Это альтернативные пределы, их сумма не является доступным остатком.
2. План 3 A + 3 B использует 9 кружек, 9 пачек чая, 3 коробки и 3 открытки. Если поставить 4 A + 5 B, появится дефицит четырёх кружек.
3. Для своих данных используйте лист «Шаблон». Заполните владельца, склад, момент среза и часовой пояс, SKU и версии двух рецептов. Храните SKU и идентификаторы как текст, включая ведущие нули.
4. В строках 13–18 укажите уникальные идентификаторы компонентов, название, единицу `шт`, количество годного физического товара, действующие резервы и прочие блоки. Карантин и брак не входят в «годных». Прочие блоки и резервы не должны пересекаться.
5. Для каждой заполненной строки укажите обе нормы в строках 25–30. Если компонент не входит в набор, введите 0; пропуск не означает ноль. Пустые строки компонентов оставьте полностью пустыми.
6. В B8 и E8 введите совместный план. Если используете только набор A, задайте всем нормам B и плану B ноль. Результат «По компонентам хватает» означает только арифметическую обеспеченность выбранного плана на данном срезе.
7. После заказа, резервирования, сборки, отмены или возврата получите свежий срез. Не прибавляйте остатки разных складов, если компоненты нельзя собрать и отгрузить из одной точки в нужный срок.

Формулы видимы в ячейках: свободно = годных − резерв − прочие блоки; лимит набора = минимум целых частей свободно / норма; потребность компонента = норма A × план A + норма B × план B. Отрицательное свободное количество считается ошибкой исходных данных, не превращается молча в ноль.

## Возврат

1. На листе «Возврат» создайте карту одного возврата одной строки заказа. Укажите ID возврата, исходный заказ/строку, владельца, склад, SKU и версию состава, число отгруженных наборов, дату и исполнителя осмотра.
2. Перенесите все компоненты и нормы из состава, зафиксированного для исходного заказа. Текущий рецепт карточки может отличаться. В поле «Получено» запишите фактический приход, а не ожидаемое количество.
3. Разделите фактически полученное на годное, карантин и брак. Сумма трёх состояний должна равняться полученному. Если осмотр не закончен, внесите полученное в карантин, годное = 0. При смене состояния переносите количество между колонками, не накапливайте его повторно.
4. Столбец «Недополучено» сравнивает отгруженный состав с фактом. Он не определяет виновного, сумму компенсации или допустимость частичного возврата.
5. Результат «Полных составов из годного» — арифметический максимум по фактически годным компонентам этого возврата. Он не означает разрешения продавать набор или его части. Допуск и необходимые действия с документами/маркировкой задаются отдельно ответственным.
6. В таблице решения укажите допускаемое количество (не больше годного), основание, уникальное событие учёта, ответственного и следующее действие. ID события нужно сверить с журналом своей WMS: повторная обработка одного возврата не должна давать второй приход. Таблица не проверяет другие файлы и не обеспечивает идемпотентность WMS.
7. Если разрешены отдельные компоненты — приходуйте их один раз. Если из них затем собирается готовый набор — оформите отдельную сборку с расходом компонентов. Нельзя одновременно прибавить набор и оставить те же компоненты свободными.

В «Примере возврата» от одного A вернулись одна кружка вместо двух, чай и повреждённая коробка. Годны кружка и чай, коробка в браке, одной кружки нет. Полных составов: 0. Учебное разрешение на отдельную продажу компонентов в этом примере нельзя переносить на ваш товар без проверки.

## Границы

- Все числа — целые штуки, отрицательные количества и повторные ID компонентов не принимаются расчётом.
- Если состав длиннее шести строк или есть больше двух наборов, требуется расширить диапазоны формул и проверить их; простое дописывание ниже таблицы не включит строки в расчёт.
- Пересортица, неизвестный владелец, незавершённый осмотр и излишек требуют отдельного разбора. Излишек не зачитывается автоматически в годный приход.
- Файл не определяет право на частичный возврат, размер возврата денег, нормативный тип «комплект/набор», правила маркировки и возможность продажи компонента отдельно.
- Проверены пересчёт и исключения в движке Artifact Tool. Native Excel/LibreOffice в текущем окружении не запускались. При первом использовании в вашей программе сверьте учебные ответы 4 / 5 / 3+3 и 0 полных составов.

Методика и источники: [Комплекты и наборы: остаток по компонентам и частичный возврат](https://skirbo.ru/blog/komplekty-nabory-ostatki-vozvraty). Ссылка доступна после публикации материала.
