Документ инвентаризации, отрабатывает некорректно.
Всем здравствуйте. Имеется проблема с документом инвентаризации, суть в том, что в столбцах количество, цена, вес и.т.д при заполнение, в каждой строке всё плюсуется, т.е. условно есть Номенклатурная позиция Браслет с разной серией номенклатуры их всего на складе 11 штук, если в отчете НТТ развернуть эту номенклатуру, по серии, то получается 11 разных браслетов ( т.к. разная серия), а в документе инвентаризации при заполнении в каждой строке ставится 11 шт., вместо 1 шт., соответственно вес и цена увеличиваются в 11 раз. Думал проблема в запросе, но на консоле заюзал, результат получил корректный. В чем может быть причина? файл прикрепил ниже.
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Вот сразу вся процедура:
Если РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).ВестиПартионныйУчетПоСкладам Тогда
ВремСклад = Склад;
Иначе
ВремСклад = Справочники.Склады.ПустаяСсылка();
КонецЕсли;
ВалютаУпрУчета = глЗначениеПеременной("ВалютаУправленческогоУчета");
СтруктураКурса = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаУпрУчета, Дата);
КурсУпрУчета = СтруктураКурса.Курс;
КратностьУпрУчета = СтруктураКурса.Кратность;
ЭтоНТТ = Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ;
Если ЭтоНТТ Тогда
РегОстатки = "ТоварыВНТТ";
ИначеЕсли Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
РегОстатки = "ТоварыНаСкладах";
Иначе
РегОстатки = "ТоварыВРознице";
КонецЕсли;
ПостроительОтчета.Текст =
"ВЫБРАТЬ
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,
| ОстаткиТоваров.СерияНоменклатуры,
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
| ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
| " + ?(ЭтоНТТ, "ОстаткиТоваров.ЦенаВРознице","ОстаткиТоваров.Качество") + ",
| СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
| СУММА(ОстаткиТоваров.ювВесОстаток) КАК Вес,
| ВЫБОР
| КОГДА (СУММА(ВЫБОР КОГДА ОстаткиТоваров.Номенклатура.ювРасчетСтоимостиПоВесу ТОГДА ОстаткиПартий.ювВесОстаток ИНАЧЕ ОстаткиПартий.КоличествоОстаток КОНЕЦ) = 0)
| ИЛИ (СУММА(ВЫБОР КОГДА ОстаткиТоваров.Номенклатура.ювРасчетСтоимостиПоВесу ТОГДА ОстаткиПартий.ювВесОстаток ИНАЧЕ ОстаткиПартий.КоличествоОстаток КОНЕЦ) ЕСТЬ NULL) ТОГДА
| 0
| ИНАЧЕ
| СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ВЫБОР КОГДА ОстаткиТоваров.Номенклатура.ювРасчетСтоимостиПоВесу ТОГДА ОстаткиТоваров.ювВесОстаток ИНАЧЕ ОстаткиТоваров.КоличествоОстаток КОНЕЦ)
| / СУММА(ВЫБОР КОГДА ОстаткиТоваров.Номенклатура.ювРасчетСтоимостиПоВесу ТОГДА ОстаткиПартий.ювВесОстаток ИНАЧЕ ОстаткиПартий.КоличествоОстаток КОНЕЦ)
| КОНЕЦ КАК Сумма
|ИЗ
| РегистрНакопления." + РегОстатки + ".Остатки(&МоментДокумента, Склад = &Склад) КАК ОстаткиТоваров
|
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
| " + ?(ПоОрганизации, "ДокументОприходования.Организация = &Организация И ", "") + "Склад = &ПартионныйСклад) КАК ОстаткиПартий
|ПО
| ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
| И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры
| И (ОстаткиТоваров.СерияНоменклатуры = ОстаткиПартий.СерияНоменклатуры
| ИЛИ НЕ ОстаткиТоваров.Номенклатура.ВестиПартионныйУчетПоСериям)
| " + ?(ЭтоНТТ, ""," И ОстаткиТоваров.Качество = ОстаткиПартий.Качество") + "
|
|{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
| ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}
|" + ?(ПоОрганизации, "ГДЕ ЕСТЬNULL(ОстаткиПартий.КоличествоОстаток,0) > 0", "") + "
|СГРУППИРОВАТЬ ПО
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,
| ОстаткиТоваров.СерияНоменклатуры,
| " + ?(ЭтоНТТ, "ОстаткиТоваров.ЦенаВРознице","ОстаткиТоваров.Качество") + "
|УПОРЯДОЧИТЬ ПО
| ОстаткиТоваров.Номенклатура.Наименование,
| ОстаткиТоваров.ХарактеристикаНоменклатуры.Наименование,
| ОстаткиТоваров.СерияНоменклатуры.Наименование
|";
Запрос = ПостроительОтчета.ПолучитьЗапрос();
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("ПартионныйСклад", ВремСклад);
Запрос.УстановитьПараметр("Организация", Организация);
Если ЭтоНовый() Тогда
Запрос.УстановитьПараметр("МоментДокумента", КонецДня(Дата));
Иначе
Запрос.УстановитьПараметр("МоментДокумента", МоментВремени());
КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Количество = 0 Тогда
Продолжить;
КонецЕсли;
СтрокаТабличнойЧасти = Товары.Добавить();
СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
СтрокаТабличнойЧасти.КоличествоУчет = Выборка.Количество;
СтрокаТабличнойЧасти.ювВесУчет = Выборка.Вес;
СтрокаТабличнойЧасти.Количество = ?(ТолькоУчетные, 0, СтрокаТабличнойЧасти.КоличествоУчет);
СтрокаТабличнойЧасти.ювВес = ?(ТолькоУчетные, 0, СтрокаТабличнойЧасти.ювВесУчет);
СтрокаТабличнойЧасти.ЕдиницаИзмерения = Выборка.ЕдиницаХранения;
СтрокаТабличнойЧасти.Коэффициент = Выборка.КоэффициентЕдиницыХранения;
СтрокаТабличнойЧасти.СуммаУчет = Выборка.Сумма;
СтрокаТабличнойЧасти.Сумма = ?(ТолькоУчетные, 0, Выборка.Сумма);
Коэфф = ЮвелирнаяТорговля.КоэффициентРасчетаСтоимости(СтрокаТабличнойЧасти, "КоличествоУчет", "ювВесУчет");
СтрокаТабличнойЧасти.Цена = ?(Коэфф = 0, 0, СтрокаТабличнойЧасти.СуммаУчет / Коэфф);
Если Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда
СтрокаТабличнойЧасти.ЦенаВРознице = Выборка.ЦенаВРознице;
Иначе
СтрокаТабличнойЧасти.Качество = Выборка.Качество;
КонецЕсли;
СтрокаТабличнойЧасти.СуммаРегл = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТабличнойЧасти.Сумма, ВалютаУпрУчета,
мВалютаРегламентированногоУчета, КурсУпрУчета, 1, КратностьУпрУчета, 1);
СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
СтрокаТабличнойЧасти.СерияНоменклатуры = Выборка.СерияНоменклатуры;
КонецЦикла;
Показать
(2) Отладчиком побегал, количество суммирует:
а так как Серии разные, соответственно, он их между собой не должен суммировать, разве нет? или думаешь не в этом дело?
Посмотрел наложена группировка:
| СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
| СУММА(ОстаткиТоваров.ювВесОстаток) КАК Вес,
Но есть и группировка:
|СГРУППИРОВАТЬ ПО
| ОстаткиТоваров.Номенклатура,
| ОстаткиТоваров.ХарактеристикаНоменклатуры,
| ОстаткиТоваров.СерияНоменклатуры
а так как Серии разные, соответственно, он их между собой не должен суммировать, разве нет? или думаешь не в этом дело?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот