Добрый День!
Подскажите пожалуйста, почему выводится неверное количество номенклатуры
В регистре ПартииТоваровНаСкладах номенклатура "Я познаю мир. Зоология" забита следующим образом
-2 шт. на комиссию
-2шт. купленный
(Рисунок 1)
Соответственно, если брать данные о Количестве из Регистра,
получается правильное отображение номенклатуры "Я познаю мир. Зоология" ,НО НЕПРАВИЛЬНОЕ отображение номенклатуры "Канцтовары"
(Рисунок 2)
Если берем данные о Количестве из Справочника ОтчетОРозничныхПродажах,
то номенклатура "Канцтовары" выводится правильно, а вот "Я познаю мир. Зоология" неправильно
(Рисунок 3)
(Рисунок 4)
Вся номенклатура "Канцтовары" имеет один и тот же код, т.е. это одна и таже номенклатура, но забитая с разной ценой и количеством (Рисунок 3)
Функция Печать() Экспорт
ТабДокумент = Новый ТабличныйДокумент;
ТзИнгридиенты = Новый ТаблицаЗначений();
ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтчетОРозничныхПродажахТовары.Цена КАК Цена,
| ОтчетОРозничныхПродажахТовары.Номенклатура.Ссылка КАК Номенклатура,
| ПартииТоваровНаСкладах.СтатусПартии КАК СтатусПартии,
| ОтчетОРозничныхПродажахТовары.Количество КАК Количество,
| ОтчетОРозничныхПродажахТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
| ОтчетОРозничныхПродажахТовары.Сумма КАК Сумма,
| ОтчетОРозничныхПродажахТовары.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ПартииТоваровНаСкладах.Количество КАК Количество1
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
| ПО ОтчетОРозничныхПродажахТовары.Ссылка = ПартииТоваровНаСкладах.Регистратор
| И ОтчетОРозничныхПродажахТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
|ГДЕ
| ОтчетОРозничныхПродажахТовары.Ссылка = &Ссылка
| И ПартииТоваровНаСкладах.Регистратор = &Ссылка
|ИТОГИ
| СУММА(Цена * Количество1) КАК Цена,
| СУММА((Цена - Цена * ПроцентСкидкиНаценки / 100) * Количество1) КАК Сумма,
| СУММА(Количество1)
|ПО
| СтатусПартии,
| НоменклатурнаяГруппа";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
РезультатЗапроса = Запрос.Выполнить();
//Шапка
ВыборкаСтатус = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СтатусПартии");
Пока ВыборкаСтатус.Следующий() Цикл
ОбластьДанные1 = Макет.ПолучитьОбласть("Шапка");
ВыСтСтПа = ВыборкаСтатус.СтатусПартии;
ОбластьДанные1.Параметры.СтатусПартии =
?(ВыСтСтПа = "Купленный", "Продажи фирмы",
?(ВыСтСтПа = "На комиссию", "Комиссионные продажи" ,ВыСтСтПа));
ТабДокумент.Вывести(ОбластьДанные1);
//Группа
ВыборкаГруппа = ВыборкаСтатус.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа");
Пока ВыборкаГруппа.Следующий() Цикл
ОбластьДанные2 = Макет.ПолучитьОбласть("Группа");
ОбластьДанные2.Параметры.НоменклатурнаяГруппа = ВыборкаГруппа.НоменклатурнаяГруппа;
//Итог
ОбластьДанные2.Параметры.КолИтог = ВыборкаГруппа.Количество1;
ОбластьДанные2.Параметры.СуммаИтог = ВыборкаГруппа.Сумма;
ОбластьДанные2.Параметры.СуммаБСИтог = ВыборкаГруппа.Цена;
ТабДокумент.Вывести(ОбластьДанные2);
//Данные
ВыборкаДетальныеЗаписи = ВыборкаГруппа.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДанные3 = Макет.ПолучитьОбласть("Данные");
ОбластьДанные3.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
ОбластьДанные3.Параметры.Колво = ВыборкаДетальныеЗаписи.Количество1;
ЦенаСоСкидкой = ВыборкаДетальныеЗаписи.Цена * ВыборкаДетальныеЗаписи.ПроцентСкидкиНаценки/100;
ОбластьДанные3.Параметры.Цена = ВыборкаДетальныеЗаписи.Цена;
ОбластьДанные3.Параметры.Сумма = (ОбластьДанные3.Параметры.Цена - ЦенаСоСкидкой)*ВыборкаДетальныеЗаписи.Количество1;
ОбластьДанные3.Параметры.Скидка = ВыборкаДетальныеЗаписи.ПроцентСкидкиНаценки;
ОбластьДанные3.Параметры.СуммаБС = ВыборкаДетальныеЗаписи.Цена*ВыборкаДетальныеЗаписи.Количество1;
ТабДокумент.Вывести(ОбластьДанные3);
Конеццикла;
КонецЦикла;
КонецЦикла;
Возврат ТабДокумент;
КонецФункции
но как я понимаю, когда забивалась информация по "Канцтовары", понималось всё что относится к Канцтоварам
Канцтовары (Ручка) - 3 рубля
Канцтовары (Пенал) - 100 рублей
Канцтовары (Линейка) - 10 рублей
и в итоге Имеем одну Номенклатуру, но с разным количеством
(7) уточни у заказчика, что он хочет видеть.
Недаром ручки с карандашами записаны как Канцтовары.
Скорее всего, детализацию по ним в этом отчете тоже показывать не надо.
Роман, у вас в отчете о розничных продажах две строчки, отличающиеся статусом партии. Этот отчет списал по партиям 4 штуки всего. И вот вы в запросе соединяете так, что у вас к каждой строке документа (с количеством 2 штуки) присоединяется все количество движения по регистру партий (4 штуки).
Роман, попробуйте соединить движения по партиям с движениям по регистру Продажи. Из продаж надо взять значения ресурсов и вычислить цены со скидкой и без и посчитать процент скидки. Вот примерно так.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПартииТоваровНаСкладах.СтатусПартии КАК СтатусПартии,
| ПартииТоваровНаСкладах.Количество КАК Количество,
| ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
| ПартииТоваровНаСкладах.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВложенныйЗапрос.ПроцентСкидки КАК ПроцентСкидкиНаценки,
| ВложенныйЗапрос.Цена КАК Цена,
| ПартииТоваровНаСкладах.Количество * ВложенныйЗапрос.Цена КАК Сумма,
| ВложенныйЗапрос.Номенклатура.Код,
| ВложенныйЗапрос.ЦенаБезСкидок * ПартииТоваровНаСкладах.Количество КАК СуммаБС
|ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Продажи.Номенклатура КАК Номенклатура,
| Продажи.Количество КАК Количество,
| Продажи.Стоимость КАК Стоимость,
| Продажи.СтоимостьБезСкидок КАК СтоимостьБезСкидок,
| Продажи.СтоимостьБезСкидок / Продажи.Количество КАК ЦенаБезСкидок,
| (1 - Продажи.Стоимость / Продажи.СтоимостьБезСкидок) * 100 КАК ПроцентСкидки,
| Продажи.Стоимость / Продажи.Количество КАК Цена
| ИЗ
| РегистрНакопления.Продажи КАК Продажи
| ГДЕ
| Продажи.Регистратор = &Ссылка
|
| СГРУППИРОВАТЬ ПО
| Продажи.Номенклатура,
| Продажи.Количество,
| Продажи.Стоимость,
| Продажи.СтоимостьБезСкидок) КАК ВложенныйЗапрос
| ПО ПартииТоваровНаСкладах.Номенклатура = ВложенныйЗапрос.Номенклатура
|ГДЕ
| ПартииТоваровНаСкладах.Регистратор = &Ссылка
|ИТОГИ
| МАКСИМУМ(Цена),
| СУММА(Сумма),
| СУММА(СуммаБС)
|ПО
| СтатусПартии,
| НоменклатурнаяГруппа";