Проблема. Если менеджеру необходимо перенести часть резерва с одного заказа на другой, то он действует по схеме №1:
1. Снять весь резерв с заказа/ов донора/ов
2. Зарезервировать высвобожденный товар под более актуальный заказ.
3. Зарезервировать излишек заказами из п.1
Заставить его сделать как положено по схеме №2:
1. Снять необходимые позиции с заказов доноров.
2. Зарезервировать снятые позиции под заказ реципиент.
проблематично, даже при наличие специальных обработок, выполняющих данную функцию в автоматическом режиме.
Т.о. вместо нескольких записей в документе и регистре формируется количество записей по количеству позиций в резервах заказов сначала в минус, потом почти такое же количество в плюс. (В моем случае позиций может быть далеко за 100 позиций, а в период жизненного цикла заказа подобные манипуляции с его резервами происходят неоднократно)
Цель. Уменьшить количество строк в документах, уменьшить количество документов. Тем самым оптимизировать регистр Товары в резерве, и структуру подчиненности документа Заказ покупателя.
Алгоритм работы:
1. Пробегаем по документам Резервирование товаров относительно каждого Заказа покупателя и удаляем в них взаимоисключающие строки. (Например Док1 Товар1 -200шт, Док2 Товар1 +100шт, после обработки Док1 Товар1 - 100шт, Док2 - пусто)
2. Удаляем все документы, в которых строк не осталось.
В итоге получаем состав документов с минимально необходимым набором записей, еще оптимальнее, чем в описано в схеме №2.
Обработка используется мною в УПП 1.3 неизменно со времен 1.2
Работоспособность проверена на УТ 10.х
Примечание. Обработка не учитывает учет по характеристикам. Поэтому если Вы ведете учет по характеристикам, то необходимо немного доработать запрос и обработчик.