Документ инвентаризации, отрабатывает некорректно.

1. ProGG3R 19.06.18 09:11 Сейчас в теме
Всем здравствуйте. Имеется проблема с документом инвентаризации, суть в том, что в столбцах количество, цена, вес и.т.д при заполнение, в каждой строке всё плюсуется, т.е. условно есть Номенклатурная позиция Браслет с разной серией номенклатуры их всего на складе 11 штук, если в отчете НТТ развернуть эту номенклатуру, по серии, то получается 11 разных браслетов ( т.к. разная серия), а в документе инвентаризации при заполнении в каждой строке ставится 11 шт., вместо 1 шт., соответственно вес и цена увеличиваются в 11 раз. Думал проблема в запросе, но на консоле заюзал, результат получил корректный. В чем может быть причина? файл прикрепил ниже.
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. A.Sytchev 19.06.18 09:27 Сейчас в теме
Кинь код заполнения табличной части данными запроса, если ты уверен, что в самом запросе все ок.
3. ProGG3R 19.06.18 09:33 Сейчас в теме
(2) Вот сразу вся процедура:

Если РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).ВестиПартионныйУчетПоСкладам Тогда
		ВремСклад = Склад;
	Иначе
		ВремСклад = Справочники.Склады.ПустаяСсылка();
	КонецЕсли;

	ВалютаУпрУчета    = глЗначениеПеременной("ВалютаУправленческогоУчета");
	СтруктураКурса    = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаУпрУчета, Дата);
	КурсУпрУчета      = СтруктураКурса.Курс;
	КратностьУпрУчета = СтруктураКурса.Кратность;

	ЭтоНТТ = Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ;
	
	Если ЭтоНТТ Тогда
		РегОстатки = "ТоварыВНТТ";
	ИначеЕсли Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда
		РегОстатки = "ТоварыНаСкладах";
	Иначе
		РегОстатки = "ТоварыВРознице";
	КонецЕсли;

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

	Запрос = ПостроительОтчета.ПолучитьЗапрос();

	Запрос.УстановитьПараметр("Склад",           Склад);
	Запрос.УстановитьПараметр("ПартионныйСклад", ВремСклад);
	Запрос.УстановитьПараметр("Организация", Организация);
	Если ЭтоНовый() Тогда
		Запрос.УстановитьПараметр("МоментДокумента", КонецДня(Дата));
	Иначе
		Запрос.УстановитьПараметр("МоментДокумента", МоментВремени());
	КонецЕсли;

	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл

		Если Выборка.Количество = 0 Тогда
			Продолжить;
		КонецЕсли;

		СтрокаТабличнойЧасти = Товары.Добавить();

		СтрокаТабличнойЧасти.Номенклатура     = Выборка.Номенклатура;
		СтрокаТабличнойЧасти.КоличествоУчет   = Выборка.Количество;
		СтрокаТабличнойЧасти.ювВесУчет 		  = Выборка.Вес;
		СтрокаТабличнойЧасти.Количество       = ?(ТолькоУчетные, 0, СтрокаТабличнойЧасти.КоличествоУчет);
		СтрокаТабличнойЧасти.ювВес		      = ?(ТолькоУчетные, 0, СтрокаТабличнойЧасти.ювВесУчет);
		СтрокаТабличнойЧасти.ЕдиницаИзмерения = Выборка.ЕдиницаХранения;
		СтрокаТабличнойЧасти.Коэффициент      = Выборка.КоэффициентЕдиницыХранения;
		СтрокаТабличнойЧасти.СуммаУчет        = Выборка.Сумма;
		СтрокаТабличнойЧасти.Сумма            = ?(ТолькоУчетные, 0, Выборка.Сумма);
		
		Коэфф = ЮвелирнаяТорговля.КоэффициентРасчетаСтоимости(СтрокаТабличнойЧасти, "КоличествоУчет", "ювВесУчет");
		
		СтрокаТабличнойЧасти.Цена             = ?(Коэфф = 0, 0, СтрокаТабличнойЧасти.СуммаУчет / Коэфф);

		Если Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда
			СтрокаТабличнойЧасти.ЦенаВРознице = Выборка.ЦенаВРознице;
		Иначе
			СтрокаТабличнойЧасти.Качество     = Выборка.Качество;
		КонецЕсли;

		СтрокаТабличнойЧасти.СуммаРегл        = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТабличнойЧасти.Сумма, ВалютаУпрУчета,
		                                        мВалютаРегламентированногоУчета, КурсУпрУчета, 1, КратностьУпрУчета, 1);

		СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
		СтрокаТабличнойЧасти.СерияНоменклатуры = Выборка.СерияНоменклатуры;

	КонецЦикла;
Показать
4. ProGG3R 19.06.18 09:51 Сейчас в теме
(2) Отладчиком побегал, количество суммирует:
Посмотрел наложена группировка:
|	СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество, 
|	СУММА(ОстаткиТоваров.ювВесОстаток) КАК Вес,
Но есть и группировка:
|СГРУППИРОВАТЬ ПО 
|	ОстаткиТоваров.Номенклатура, 
|	ОстаткиТоваров.ХарактеристикаНоменклатуры, 
|	ОстаткиТоваров.СерияНоменклатуры

а так как Серии разные, соответственно, он их между собой не должен суммировать, разве нет? или думаешь не в этом дело?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот