|
1С 8.2. СКД. Отличаются итоги по группировкам. | ☑ | ||
---|---|---|---|---|
0
shulkin
27.11.14
✎
12:10
|
Построил отчет в СКД. Отчет рассчитывает доходность продаж. Данные выбираются запросами, используется несколько временных таблиц, вычисляемые поля, и есть расчет ресурсов по разным группировкам разными способами.
При формировании отчета с группировкой самого низкого уровня, по номенклатуре, итоги верные. Верные, потому вручную пересчитывал. При формировании отчета с группировками более высокого уровня без группировки самого низкого уровня итоги неверные. Предполагаю что СКД искажает итоги при выборке данных и сворачивании по группировкам, но не могу понять что тому причина. Подскажите пожалуйста, может кто сталкивался, куда копать? |
|||
1
shulkin
27.11.14
✎
12:12
|
Код запроса:
ВЫБРАТЬ РасчетыСКлиентамиПоДокументамПрочиеОбороты.РасчетныйДокумент КАК ДокументРеализации, СУММА(РасчетыСКлиентамиПоДокументамПрочиеОбороты.СуммаРасход) КАК ОплатаВалюта, МАКСИМУМ(РасчетыСКлиентамиПоДокументамПрочиеОбороты.Период) КАК ДатаПоследнейОплатыЗаПериод ПОМЕСТИТЬ СписокДокументовРеализации ИЗ РегистрНакопления.РасчетыСКлиентамиПоДокументамПрочие.Обороты( &НачалоПериода, &КонецПериода, Регистратор, Валюта = &Валюта И РасчетныйДокумент ССЫЛКА Документ.ВводДвижений) КАК РасчетыСКлиентамиПоДокументамПрочиеОбороты ГДЕ РасчетыСКлиентамиПоДокументамПрочиеОбороты.Регистратор.ВидРасчетногоДокумента <> ЗНАЧЕНИЕ(Справочник.ВидыРасчетныхДокументов.ВозвратОтПокупателя) И РасчетыСКлиентамиПоДокументамПрочиеОбороты.Регистратор.ВидРасчетногоДокумента <> ЗНАЧЕНИЕ(Справочник.ВидыРасчетныхДокументов.ВозвратТоваровОтКлиента) СГРУППИРОВАТЬ ПО РасчетыСКлиентамиПоДокументамПрочиеОбороты.РасчетныйДокумент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 1 КАК Поле1, МИНИМУМ(СписокДокументовРеализации.ДокументРеализации.Дата) КАК ДокументРеализацииДата ПОМЕСТИТЬ НижняяГраница ИЗ СписокДокументовРеализации КАК СписокДокументовРеализации ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВыручкаПрочихПродажОбороты.Регистратор КАК ДокументРеализации, ВЫБОР КОГДА ВыручкаПрочихПродажОбороты.Контрагент.СтарыйКонтрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ВыручкаПрочихПродажОбороты.Контрагент ИНАЧЕ ВыручкаПрочихПродажОбороты.Контрагент.СтарыйКонтрагент КОНЕЦ КАК Контрагент, СписокДокументовРеализации.ДатаПоследнейОплатыЗаПериод, ВыручкаПрочихПродажОбороты.СуммаВыручкиОборот КАК ВыручкаПоДокументу, СписокДокументовРеализации.ОплатаВалюта / ВыручкаПрочихПродажОбороты.СуммаВыручкиВалютаОборот КАК КоэффициентОплаты ПОМЕСТИТЬ РеализацияПоДокументамСКоэффициентамиОплаты ИЗ НижняяГраница КАК НижняяГраница ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаПрочихПродаж.Обороты({(ДОБАВИТЬКДАТЕ(&НачалоПериода, ГОД, -100)) КАК Поле2}, &КонецПериода, Регистратор, Валюта = &Валюта) КАК ВыручкаПрочихПродажОбороты ПО (ВыручкаПрочихПродажОбороты.Период >= НижняяГраница.ДокументРеализацииДата) ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокДокументовРеализации КАК СписокДокументовРеализации ПО (ВыручкаПрочихПродажОбороты.Регистратор = СписокДокументовРеализации.ДокументРеализации) ГДЕ ВыручкаПрочихПродажОбороты.Регистратор.ВозвратПоставщику = ЛОЖЬ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВыручкаПрочихПродажОбороты.Регистратор, ВЫБОР КОГДА ВыручкаПрочихПродажОбороты.Контрагент.СтарыйКонтрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА ВыручкаПрочихПродажОбороты.Контрагент ИНАЧЕ ВыручкаПрочихПродажОбороты.Контрагент.СтарыйКонтрагент КОНЕЦ, NULL, ВыручкаПрочихПродажОбороты.СуммаВыручкиОборот, 0 ИЗ РегистрНакопления.ВыручкаПрочихПродаж.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Валюта = &Валюта) КАК ВыручкаПрочихПродажОбороты ЛЕВОЕ СОЕДИНЕНИЕ СписокДокументовРеализации КАК СписокДокументовРеализации ПО ВыручкаПрочихПродажОбороты.Регистратор = СписокДокументовРеализации.ДокументРеализации ГДЕ ВыручкаПрочихПродажОбороты.Регистратор.ВозвратПоставщику = ЛОЖЬ И СписокДокументовРеализации.ДокументРеализации ЕСТЬ NULL ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ СписокДокументовРеализации ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВыручкаПрочихПродажОбороты.Период КАК ДатаРеализации, ВыручкаПрочихПродажОбороты.Организация, РеализацияПоДокументамСКоэффициентамиОплаты.Контрагент.Страна КАК Страна, РеализацияПоДокументамСКоэффициентамиОплаты.Контрагент КАК Контрагент, РеализацияПоДокументамСКоэффициентамиОплаты.Контрагент.ТорговыйПредставитель КАК ТорговыйПредставитель, ВыручкаПрочихПродажОбороты.Склад, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаСорт КАК Сорт, ВыручкаПрочихПродажОбороты.Номенклатура.ВидНоменклатуры.ГруппаПродукции КАК ГруппаПродукции, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаМодель.ГруппаОсновнойНоменклатуры КАК ГруппаОсновнойНоменклатуры, ВыручкаПрочихПродажОбороты.Номенклатура.ВидНоменклатуры КАК Вид, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаМодель КАК Модель, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаРазмер КАК Размер, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаЦвет КАК Цвет, ВыручкаПрочихПродажОбороты.Номенклатура.ХарактеристикаРисунок КАК Рисунок, ВыручкаПрочихПродажОбороты.Регистратор КАК ДокументРеализации, РеализацияПоДокументамСКоэффициентамиОплаты.ДатаПоследнейОплатыЗаПериод, ВыручкаПрочихПродажОбороты.Номенклатура, ВыручкаПрочихПродажОбороты.КоличествоОборот КАК Количество, ВыручкаПрочихПродажОбороты.СтоимостьОборот КАК СтоимостьРуб, ВыручкаПрочихПродажОбороты.СуммаВыручкиОборот КАК СуммаСНДСРуб, ВыручкаПрочихПродажОбороты.СуммаВыручкиВалютаОборот КАК СуммаВыручкиВалюта, ВыручкаПрочихПродажОбороты.СуммаВыручкиДляРентабельностиВалютаОборот КАК СуммаВыручкиПоСебестоимостиВалюта, ВыручкаПрочихПродажОбороты.СебестоимостьВалютаОборот КАК СебестоимостьВалюта, ВыручкаПрочихПродажОбороты.СебестоимостьВалютаОборот * РеализацияПоДокументамСКоэффициентамиОплаты.КоэффициентОплаты КАК СебестоимостьПоОплатеВалюта, ВыручкаПрочихПродажОбороты.СуммаВыручкиВалютаОборот * РеализацияПоДокументамСКоэффициентамиОплаты.КоэффициентОплаты КАК ОплатаВалюта, 0 КАК ДолгВалюта ИЗ НижняяГраница КАК НижняяГраница ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаПрочихПродаж.Обороты({(ДОБАВИТЬКДАТЕ(&НачалоПериода, ГОД, -100)) КАК Поле2}, &КонецПериода, Регистратор, Валюта = &Валюта) КАК ВыручкаПрочихПродажОбороты ПО (ВыручкаПрочихПродажОбороты.Период >= НижняяГраница.ДокументРеализацииДата) ВНУТРЕННЕЕ СОЕДИНЕНИЕ РеализацияПоДокументамСКоэффициентамиОплаты КАК РеализацияПоДокументамСКоэффициентамиОплаты ПО (РеализацияПоДокументамСКоэффициентамиОплаты.ДокументРеализации = ВыручкаПрочихПродажОбороты.Регистратор) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РасчетыСКлиентамиПоДокументамПрочиеОстатки.РасчетныйДокумент.Дата, РасчетыСКлиентамиПоДокументамПрочиеОстатки.Организация, РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.Страна, ВЫБОР КОГДА РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.СтарыйКонтрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент ИНАЧЕ РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.СтарыйКонтрагент КОНЕЦ, ВЫБОР КОГДА РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.СтарыйКонтрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) ТОГДА РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.ТорговыйПредставитель ИНАЧЕ РасчетыСКлиентамиПоДокументамПрочиеОстатки.Контрагент.СтарыйКонтрагент.ТорговыйПредставитель КОНЕЦ, РасчетыСКлиентамиПоДокументамПрочиеОстатки.РасчетныйДокумент.Склад, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, РасчетыСКлиентамиПоДокументамПрочиеОстатки.РасчетныйДокумент, РеализацияПоДокументамСКоэффициентамиОплаты.ДатаПоследнейОплатыЗаПериод, NULL, 0, 0, 0, 0, 0, 0, 0, 0, РасчетыСКлиентамиПоДокументамПрочиеОстатки.СуммаОстаток ИЗ РегистрНакопления.РасчетыСКлиентамиПоДокументамПрочие.Остатки(&Период, Валюта = &Валюта) КАК РасчетыСКлиентамиПоДокументамПрочиеОстатки ЛЕВОЕ СОЕДИНЕНИЕ РеализацияПоДокументамСКоэффициентамиОплаты КАК РеализацияПоДокументамСКоэффициентамиОплаты ПО РасчетыСКлиентамиПоДокументамПрочиеОстатки.РасчетныйДокумент = РеализацияПоДокументамСКоэффициентамиОплаты.ДокументРеализации ГДЕ НЕ(РасчетыСКлиентамиПоДокументамПрочиеОстатки.СуммаОстаток МЕЖДУ -1 И 1) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |