|
|
Разделить документ на равные части по количеству Ø |
☑ |
|
0
Alpen
14.10.05
✎
11:01
|
Имеем документ. Для простоты условимся, что в ТЧ имеются только два реквизита: Товар и Количество. Требуется разделить документ на N равных частей, чтобы Итог("количество") в каждой части был одинаковым. Делить товар по количеству между накладными нельзя(т.е. товар должен в полном количестве присутствовать в одной из частей). Понятно, что точно разделить получится не всегда, но требуется достичь наиболее близкий к точному результат. Подскажите, каким образом правильно подойти к решению данной задачи или ткните. Может кто-то уже решал подобные задачи в рамках 1С. Буду признателен за любую информацию.
|
|
|
1
Glide
14.10.05
✎
11:08
|
1. Выгрузить в ТЗ и отсортировать по убыванию. 2. Определить НужноеКол=Итог("Количество")/N 3. Берем 1-е значение и ищем остаток в ТЗ. Пишем в Док1. 4. Пункт.3 в цикле до ТЗ.КоличествоСтрок()/2. 5. Остаток раскидываем по тем Докам, которые неполные. 6. После пары итераций придешь к консенсусу
|
|
|
3
Alpen
14.10.05
✎
11:21
|
2(1). Идея ясна. Только не понял по пункту 4 почему до ТЗ.КоличествоСтрок()/2.
|
|
|
4
Glide
14.10.05
✎
14:00
|
(3) Пока половину строк ТЗ переберешь, то концовка уже очистится! Она же отсортирована на уменьшение! Кстати забыл отметить: не забывай исключать отобранные товары из ТЗ
|
|
|
5
FLENDGER
14.10.05
✎
14:24
|
*хм интересная задачка... а что делать, если, например, 2 строки в ТЧ: товар1 - 500шт, товар2 - 1шт - как разбить на 3 дока? :)
|
|
|
6
Glide
14.10.05
✎
15:50
|
(5) ОФФ. Зачем из исключений делать правила? Если (ТЗ.КоличествоСтрок()=2)И(ИмяПользователя()="FLENDGER") Тогда Сообщить("Ты знал! Ты знал!"); КонецЕсли;
|
|