|
СКД Неправильный расчет начального остатка | ☑ | ||
---|---|---|---|---|
0
S_Scorp
27.09.11
✎
17:15
|
Вот текст запроса:
ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Клиент КАК КлиентС, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидкиС, СкидкиКлиентовОстаткиИОбороты.Валюта КАК ВалютаС, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокС, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокС, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриходС, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасходС, СкидкиКлиентовОстаткиИОбороты.Период КАК ПериодС, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК СуммаНачальныйОстатокСкидка, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаПриход ИНАЧЕ 0 КОНЕЦ КАК СуммаПриходСкидка, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК СуммаРасходСкидка, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК СуммаКонечныйОстатокСкидка ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(&Дата1, &Дата2, Квартал, , ) КАК СкидкиКлиентовОстаткиИОбороты ================================================================ Данный текст запроса я загоняю в СКД на 1С 8.2. В итоге начальный остаток по ресурсу, который вычисляется с помощью оператора "Выбор", считается неправильно! В итог по группировке попадает сумма всех начальных остатков в колонке! А вот начальный остаток по ресурсу "СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток" считается правильно. Обойтись без оператора "Выбор" я не могу, но мне нужно чтобы начальный остаток считался правильно, подскажите как быть? |
|||
1
Defender aka LINN
27.09.11
✎
17:21
|
Выбрать * из ИЗ
РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(&Дата1, &Дата2, Квартал, , ВидСкидки = &Задолженность) Пейсатели... |
|||
2
S_Scorp
27.09.11
✎
17:40
|
Это просто кусок запроса, там на самом деле так:
ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК СуммаНачальныйОстатокЗадолженность, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки = &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК СуммаНачальныйОстатокСкидка ...и.т.д. Дело не в тексте запроса, а в том, что если ресурс виртуальной таблицы засунуть в какую нибудь функцию, то Начальный и Конечный остатки по ней расчитываются неправильно! |
|||
3
IronDemon
27.09.11
✎
17:42
|
Дело в тексте запроса, если ресурс виртуальной таблицы засунуть в какую нибудь функцию, то Начальный и Конечный остатки по ней расчитываются неправильно!1!
|
|||
4
IronDemon
27.09.11
✎
17:42
|
Во вложенном запросе считай.
|
|||
5
S_Scorp
27.09.11
✎
17:45
|
Я ничего и не считаю, это же СКД, она сама итоги считает, так вот, нужно дать ей понять что "СуммаНачальныйОстатокСкидка" - это действительно начальный остаток, а не оборот!
|
|||
6
IronDemon
27.09.11
✎
17:47
|
Млин, запрос с Выбор во вложенный запрос засунь. Чтобы СКД не рассчитывала остатки по многим полям.
|
|||
7
S_Scorp
28.09.11
✎
08:23
|
Не понимаю, что это даст. Вот:
ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Клиент КАК КлиентС, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидкиС, СкидкиКлиентовОстаткиИОбороты.Валюта КАК ВалютаС, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокС, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокС, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриходС, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасходС, СкидкиКлиентовОстаткиИОбороты.Период КАК ПериодС, ВложенныйЗапрос.Нач, ВложенныйЗапрос.Прих, ВложенныйЗапрос.Расх, ВложенныйЗапрос.Кон ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(&Дата1, &Дата2, Квартал, , ) КАК СкидкиКлиентовОстаткиИОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Период КАК Период, СкидкиКлиентовОстаткиИОбороты.Клиент КАК Клиент, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидки, СкидкиКлиентовОстаткиИОбороты.Валюта КАК Валюта, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки <> &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК Нач, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки <> &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК Кон, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки <> &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаПриход ИНАЧЕ 0 КОНЕЦ КАК Прих, ВЫБОР КОГДА СкидкиКлиентовОстаткиИОбороты.ВидСкидки <> &Задолженность ТОГДА СкидкиКлиентовОстаткиИОбороты.СуммаРасход ИНАЧЕ 0 КОНЕЦ КАК Расх ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(, , Квартал, , ) КАК СкидкиКлиентовОстаткиИОбороты) КАК ВложенныйЗапрос ПО СкидкиКлиентовОстаткиИОбороты.Период = ВложенныйЗапрос.Период И СкидкиКлиентовОстаткиИОбороты.Клиент = ВложенныйЗапрос.Клиент И СкидкиКлиентовОстаткиИОбороты.ВидСкидки = ВложенныйЗапрос.ВидСкидки И СкидкиКлиентовОстаткиИОбороты.Валюта = ВложенныйЗапрос.Валюта Вот такой запрос я написал, но это не помагает( |
|||
8
S_Scorp
28.09.11
✎
08:43
|
Я понял:
ВЫБРАТЬ Скидка.Период КАК ПериодСкидка, Скидка.Клиент КАК КлиентСкидка, Скидка.ВидСкидки КАК ВидСкидкиСкидка, Скидка.Валюта КАК ВалютаСкидка, Скидка.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокСкидка, Скидка.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокСкидка, Скидка.СуммаОборот КАК СуммаОборотСкидка, Скидка.СуммаПриход КАК СуммаПриходСкидка, Скидка.СуммаРасход КАК СуммаРасходСкидка, Задолженность.Период КАК ПериодЗадолженность, Задолженность.Клиент КАК КлиентЗадолженность, Задолженность.ВидСкидки КАК ВидСкидкиЗадолженность, Задолженность.Валюта КАК ВалютаЗадолженность, Задолженность.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокЗадолженность, Задолженность.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокЗадолженность, Задолженность.СуммаОборот КАК СуммаОборотЗадолженность, Задолженность.СуммаПриход КАК СуммаПриходЗадолженность, Задолженность.СуммаРасход КАК СуммаРасходЗадолженность ИЗ (ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Период КАК Период, СкидкиКлиентовОстаткиИОбороты.Клиент КАК Клиент, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидки, СкидкиКлиентовОстаткиИОбороты.Валюта КАК Валюта, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, СкидкиКлиентовОстаткиИОбороты.СуммаОборот КАК СуммаОборот, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриход, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасход ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(, , Квартал, , ВидСкидки <> &Задолженность) КАК СкидкиКлиентовОстаткиИОбороты) КАК Скидка ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Период КАК Период, СкидкиКлиентовОстаткиИОбороты.Клиент КАК Клиент, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидки, СкидкиКлиентовОстаткиИОбороты.Валюта КАК Валюта, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток, СкидкиКлиентовОстаткиИОбороты.СуммаОборот КАК СуммаОборот, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриход, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасход ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(, , Квартал, , ВидСкидки = &Задолженность) КАК СкидкиКлиентовОстаткиИОбороты) КАК Задолженность ПО Скидка.Период = Задолженность.Период И Скидка.Клиент = Задолженность.Клиент И Скидка.ВидСкидки = Задолженность.ВидСкидки И Скидка.Валюта = Задолженность.Валюта Вот как надо было, спасибо всем! |
|||
9
S_Scorp
28.09.11
✎
15:07
|
К имеющимся двум таблицам добавил третью, и компоновщик стал неправильно считать итог по начальному остатку. Вот запрос:
ВЫБРАТЬ Скидка.РегистраторСкидка, Скидка.ПериодСкидка, Скидка.КлиентСкидка, Скидка.ВидСкидкиСкидка, Скидка.ВалютаСкидка, Скидка.СуммаНачальныйОстатокСкидка, Скидка.СуммаКонечныйОстатокСкидка, Скидка.СуммаОборотСкидка, Скидка.СуммаПриходСкидка, Скидка.СуммаРасходСкидка, Задолженность.РегистраторЗадолженность, Задолженность.ПериодЗадолженность, Задолженность.КлиентЗадолженность, Задолженность.ВидСкидкиЗадолженность, Задолженность.ВалютаЗадолженность, Задолженность.СуммаНачальныйОстатокЗадолженность, Задолженность.СуммаКонечныйОстатокЗадолженность, Задолженность.СуммаОборотЗадолженность, Задолженность.СуммаПриходЗадолженность, Задолженность.СуммаРасходЗадолженность, Резерв.РегистраторРезерв, Резерв.ПериодРезерв, Резерв.КлиентРезерв, Резерв.ВидСкидкиРезерв, Резерв.ВалютаРезерв, Резерв.СуммаНачальныйОстатокРезерв, Резерв.СуммаКонечныйОстатокРезерв, Резерв.СуммаОборотРезерв, Резерв.СуммаПриходРезерв, Резерв.СуммаРасходРезерв ИЗ (ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Регистратор КАК РегистраторСкидка, СкидкиКлиентовОстаткиИОбороты.ПериодСекунда КАК ПериодСкидка, СкидкиКлиентовОстаткиИОбороты.Клиент КАК КлиентСкидка, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидкиСкидка, СкидкиКлиентовОстаткиИОбороты.Валюта КАК ВалютаСкидка, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокСкидка, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокСкидка, СкидкиКлиентовОстаткиИОбороты.СуммаОборот КАК СуммаОборотСкидка, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриходСкидка, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасходСкидка ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(, , Авто, , ВидСкидки <> &Задолженность) КАК СкидкиКлиентовОстаткиИОбороты) КАК Скидка ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СкидкиКлиентовОстаткиИОбороты.Регистратор КАК РегистраторЗадолженность, СкидкиКлиентовОстаткиИОбороты.ПериодСекунда КАК ПериодЗадолженность, СкидкиКлиентовОстаткиИОбороты.Клиент КАК КлиентЗадолженность, СкидкиКлиентовОстаткиИОбороты.ВидСкидки КАК ВидСкидкиЗадолженность, СкидкиКлиентовОстаткиИОбороты.Валюта КАК ВалютаЗадолженность, СкидкиКлиентовОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокЗадолженность, СкидкиКлиентовОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокЗадолженность, СкидкиКлиентовОстаткиИОбороты.СуммаОборот КАК СуммаОборотЗадолженность, СкидкиКлиентовОстаткиИОбороты.СуммаПриход КАК СуммаПриходЗадолженность, СкидкиКлиентовОстаткиИОбороты.СуммаРасход КАК СуммаРасходЗадолженность ИЗ РегистрНакопления.СкидкиКлиентов.ОстаткиИОбороты(, , Авто, , ВидСкидки = &Задолженность) КАК СкидкиКлиентовОстаткиИОбороты) КАК Задолженность ПО Скидка.РегистраторСкидка = Задолженность.РегистраторЗадолженность ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РезервыСкидкиОстаткиИОбороты.Регистратор КАК РегистраторРезерв, РезервыСкидкиОстаткиИОбороты.ПериодСекунда КАК ПериодРезерв, РезервыСкидкиОстаткиИОбороты.Клиент КАК КлиентРезерв, РезервыСкидкиОстаткиИОбороты.ВидСкидки КАК ВидСкидкиРезерв, РезервыСкидкиОстаткиИОбороты.Валюта КАК ВалютаРезерв, РезервыСкидкиОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстатокРезерв, РезервыСкидкиОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстатокРезерв, РезервыСкидкиОстаткиИОбороты.СуммаОборот КАК СуммаОборотРезерв, РезервыСкидкиОстаткиИОбороты.СуммаПриход КАК СуммаПриходРезерв, РезервыСкидкиОстаткиИОбороты.СуммаРасход КАК СуммаРасходРезерв ИЗ РегистрНакопления.РезервыСкидки.ОстаткиИОбороты(, , Авто, , ) КАК РезервыСкидкиОстаткиИОбороты) КАК Резерв ПО Скидка.РегистраторСкидка = Резерв.РегистраторРезерв Товарищи помогите добить отчет, что неправильно теперь? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |