diff --git a/src/Configuration.xml b/src/Configuration.xml
index 4697219..3f03709 100644
--- a/src/Configuration.xml
+++ b/src/Configuration.xml
@@ -62,7 +62,7 @@
Role.РК_ОсновнаяРоль
- 1.3.1.106
+ 1.3.1.107
Language.Русский
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
index 55a82ad..010cf72 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Ext/ObjectModule.bsl
@@ -292,49 +292,51 @@
Возврат Результат;
КонецЕсли;
- Удаляемые = Новый Соответствие;
+ УдаляемыеИндексы = Новый Соответствие;
Группы = Новый Соответствие;
- Для Каждого СтрТ Из ВходящиеКомиссионныеТовары Цикл
+ Для Инд = 0 По ВходящиеКомиссионныеТовары.Количество() - 1 Цикл
+ СтрТ = ВходящиеКомиссионныеТовары[Инд];
Ключ = КлючАналитикиКомиссионнойСтроки(СтрТ);
- СтрокиГруппы = Группы.Получить(Ключ);
- Если СтрокиГруппы = Неопределено Тогда
- СтрокиГруппы = Новый Массив;
- Группы.Вставить(Ключ, СтрокиГруппы);
+ ИндексыГруппы = Группы.Получить(Ключ);
+ Если ИндексыГруппы = Неопределено Тогда
+ ИндексыГруппы = Новый Массив;
+ Группы.Вставить(Ключ, ИндексыГруппы);
КонецЕсли;
- СтрокиГруппы.Добавить(СтрТ);
+ ИндексыГруппы.Добавить(Инд);
КонецЦикла;
Для Каждого ЭлементГруппы Из Группы Цикл
- СтрокиГруппы = ЭлементГруппы.Значение;
+ ИндексыГруппы = ЭлементГруппы.Значение;
Помеченные = Новый Соответствие;
Отрицательные = Новый Массив;
ПоложительныеССерией = Новый Массив;
- Для Каждого СтрТ Из СтрокиГруппы Цикл
- Если Помеченные.Получить(СтрТ) <> Неопределено Тогда
+ Для Каждого Инд Из ИндексыГруппы Цикл
+ Если Помеченные.Получить(Инд) <> Неопределено Тогда
Продолжить;
КонецЕсли;
+ СтрТ = ВходящиеКомиссионныеТовары[Инд];
Кол = СтрТ.Количество;
Если Кол < 0 И Не СерияЗаполненаВСтрокеКомиссии(СтрТ) Тогда
- Отрицательные.Добавить(СтрТ);
+ Отрицательные.Добавить(Инд);
ИначеЕсли Кол > 0 И СерияЗаполненаВСтрокеКомиссии(СтрТ) Тогда
- ПоложительныеССерией.Добавить(СтрТ);
+ ПоложительныеССерией.Добавить(Инд);
КонецЕсли;
КонецЦикла;
- Для Каждого НегСтр Из Отрицательные Цикл
- Если Помеченные.Получить(НегСтр) <> Неопределено Тогда
+ Для Каждого ИндНег Из Отрицательные Цикл
+ Если Помеченные.Получить(ИндНег) <> Неопределено Тогда
Продолжить;
КонецЕсли;
- НужноеКол = -НегСтр.Количество;
- Для Каждого ПозСтр Из ПоложительныеССерией Цикл
- Если Помеченные.Получить(ПозСтр) <> Неопределено Тогда
+ НужноеКол = -ВходящиеКомиссионныеТовары[ИндНег].Количество;
+ Для Каждого ИндПоз Из ПоложительныеССерией Цикл
+ Если Помеченные.Получить(ИндПоз) <> Неопределено Тогда
Продолжить;
КонецЕсли;
- Если ПозСтр.Количество = НужноеКол Тогда
- Помеченные.Вставить(НегСтр, Истина);
- Помеченные.Вставить(ПозСтр, Истина);
+ Если ВходящиеКомиссионныеТовары[ИндПоз].Количество = НужноеКол Тогда
+ Помеченные.Вставить(ИндНег, Истина);
+ Помеченные.Вставить(ИндПоз, Истина);
Результат.УдаленоПар = Результат.УдаленоПар + 1;
Прервать;
КонецЕсли;
@@ -343,35 +345,34 @@
Остаток = Новый Массив;
СуммаКол = 0;
- Для Каждого СтрТ Из СтрокиГруппы Цикл
- Если Помеченные.Получить(СтрТ) <> Неопределено Тогда
+ Для Каждого Инд Из ИндексыГруппы Цикл
+ Если Помеченные.Получить(Инд) <> Неопределено Тогда
Продолжить;
КонецЕсли;
- Остаток.Добавить(СтрТ);
- СуммаКол = СуммаКол + СтрТ.Количество;
+ Остаток.Добавить(Инд);
+ СуммаКол = СуммаКол + ВходящиеКомиссионныеТовары[Инд].Количество;
КонецЦикла;
Если Остаток.Количество() > 1 И ?(СуммаКол >= 0, СуммаКол, -СуммаКол) < 0.000001 Тогда
- Для Каждого СтрТ Из Остаток Цикл
- Помеченные.Вставить(СтрТ, Истина);
+ Для Каждого Инд Из Остаток Цикл
+ Помеченные.Вставить(Инд, Истина);
КонецЦикла;
Результат.УдаленоГруппNetZero = Результат.УдаленоГруппNetZero + 1;
КонецЕсли;
Для Каждого ЭлементПометки Из Помеченные Цикл
- Удаляемые.Вставить(ЭлементПометки.Ключ, Истина);
+ УдаляемыеИндексы.Вставить(ЭлементПометки.Ключ, Истина);
КонецЦикла;
КонецЦикла;
Для Инд = ВходящиеКомиссионныеТовары.Количество() - 1 По 0 Цикл
- СтрТ = ВходящиеКомиссионныеТовары[Инд];
- Если Удаляемые.Получить(СтрТ) <> Неопределено Тогда
+ Если УдаляемыеИндексы.Получить(Инд) <> Неопределено Тогда
ВходящиеКомиссионныеТовары.Удалить(Инд);
КонецЕсли;
КонецЦикла;
- Результат.УдаленоСтрок = Удаляемые.Количество();
Результат.СталоСтрок = ВходящиеКомиссионныеТовары.Количество();
+ Результат.УдаленоСтрок = Результат.БылоСтрок - Результат.СталоСтрок;
Возврат Результат;
КонецФункции