|
v7: Запрос по двум регистрам | ☑ | ||
---|---|---|---|---|
0
gun200
20.04.15
✎
09:29
|
ТекстЗапросаСкор =
"//{{ЗАПРОС(ЗапросДляСкорости) |Период с ДатаНачалаПрод по ДатаКонцаПрод; |Фирма = Регистр.Продажи.Фирма, Регистр.ОстаткиТоваров.Фирма; |Склад = Регистр.Продажи.Склад, Регистр.ОстаткиТоваров.Склад; |Товар = Регистр.Продажи.Товар, Регистр.ОстаткиТоваров.Товар; |КатегорияТовара= Регистр.Продажи.Товар.КатегорияТовара,Регистр.ОстаткиТоваров.Товар.КатегорияТовара; |ТипТовара = Регистр.Продажи.Товар.ТипТовара,Регистр.ОстаткиТоваров.Товар.ТипТовара; |Количество = Регистр.Продажи.Количество; |КоличествоВ = Регистр.Продажи.КоличествоВ; |ост = Регистр.ОстаткиТоваров.ОстатокТовара; |Сумма = Регистр.Продажи.Сумма; |Суммав = Регистр.Продажи.СуммаВ; |ВидТовара1 = Регистр.Продажи.Товар.ВидТовара,Регистр.ОстаткиТоваров.Товар.ВидТовара; |Комплект = Регистр.Продажи.Комплект; |Клиент =Регистр.Продажи.Клиент; |Функция ОстатокТовара = НачОст(ост); |Функция Приход =Приход(ост); |Функция РасходТовара = Сумма(Количество-КоличествоВ); |Функция РасходТовараСумм = Сумма(Сумма-СуммаВ); |Условие (не(Клиент в спрсс)); |Условие (ВидТовара1=Перечисление.ВидыТоваров.товар); |Условие (Товар В ВыбТовар);"; Если ВыбСклад.Выбран() = 1 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (Склад = ВыбСклад);" КонецЕсли; Если ВыбФирма.Выбран() = 1 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (Фирма = ВыбФирма);" КонецЕсли; Если ПустоеЗначение(ВыбКатегорияТовара)=0 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (КатегорияТовара = ВыбКатегорияТовара);"; КонецЕсли; Если ПустоеЗначение(ВыбТипТовара)=0 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (ТипТовара = ВыбТипТовара);"; КонецЕсли; ТекстЗапросаСкор = ТекстЗапросаСкор + " |Группировка Товар; |Группировка День Все; |";//}}ЗапросСкор Есть два регистра ОстаткиТоваров - регистр остатков, Продажи- оборотный. Подскажите, возможно ли в запросе объединять два вида регистров ? По остаткам все выводит, по оборотному всегда ноль в любой группировке. |
|||
1
Ёпрст
20.04.15
✎
09:31
|
(0) возможно.
Для начала выкини нелепые условия, которые отбрасывают данные по второму регистру. |
|||
2
Ёпрст
20.04.15
✎
09:32
|
если че, их пишут в Когда() при расчете функций, а не в Условие()
|
|||
3
Ёпрст
20.04.15
✎
09:32
|
в таком случае.
|
|||
4
gun200
20.04.15
✎
09:33
|
Ой думал все выкинул, а оказывается забыл:
Условие (не(Клиент в спрсс)); Спасибо. |
|||
5
gun200
20.04.15
✎
09:45
|
Не помогло.
|
|||
6
Ёпрст
20.04.15
✎
09:46
|
Нам отсюда не видно финальный текст запроса
|
|||
7
gun200
20.04.15
✎
09:51
|
ТекстЗапросаСкор =
"//{{ЗАПРОС(ЗапросДляСкорости) |Период с ДатаНачалаПрод по ДатаКонцаПрод; |Фирма = Регистр.Продажи.Фирма, Регистр.ОстаткиТоваров.Фирма; |Склад = Регистр.Продажи.Склад, Регистр.ОстаткиТоваров.Склад; |Товар = Регистр.Продажи.Товар, Регистр.ОстаткиТоваров.Товар; |КатегорияТовара= Регистр.Продажи.Товар.КатегорияТовара,Регистр.ОстаткиТоваров.Товар.КатегорияТовара; |ТипТовара = Регистр.Продажи.Товар.ТипТовара,Регистр.ОстаткиТоваров.Товар.ТипТовара; |Количество = Регистр.Продажи.Количество; |КоличествоВ = Регистр.Продажи.КоличествоВ; |ост = Регистр.ОстаткиТоваров.ОстатокТовара; |Сумма = Регистр.Продажи.Сумма; |Суммав = Регистр.Продажи.СуммаВ; |Клиент =Регистр.Продажи.Клиент; |Функция ОстатокТовара = НачОст(ост); |Функция Приход =Приход(ост); |Функция РасходТовара = Сумма(Количество-КоличествоВ) ; |Функция РасходТовараСумм = Сумма(Сумма-СуммаВ); |Условие (Товар В ВыбТовар); |"; Если ВыбСклад.Выбран() = 1 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (Склад = ВыбСклад);" КонецЕсли; Если ВыбФирма.Выбран() = 1 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (Фирма = ВыбФирма);" КонецЕсли; Если ПустоеЗначение(ВыбКатегорияТовара)=0 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (КатегорияТовара = ВыбКатегорияТовара);"; КонецЕсли; Если ПустоеЗначение(ВыбТипТовара)=0 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (ТипТовара = ВыбТипТовара);"; КонецЕсли; ТекстЗапросаСкор = ТекстЗапросаСкор + " |Группировка Товар; |Группировка День Все; |";//}}ЗапросСкор |
|||
8
Builder
20.04.15
✎
10:09
|
Интересно, почему одно условие написано нормально
|Условие (Товар В ВыбТовар); А остальные как то не очень : Если ВыбСклад.Выбран() = 1 Тогда ТекстЗапросаСкор = ТекстЗапросаСкор + " |Условие (Склад = ВыбСклад);" КонецЕсли; Ну и попробуй сделать такой же отчет только по оборотному регистру. Да и в чем нерабочесть отчета? Были какие то приколы с такими группировками - попробуй убрать группы: |Группировка Товар без групп; |
|||
9
gun200
20.04.15
✎
10:36
|
Попробовал, только по оборотному выдало 0. Исправил вот эти строчки:
|Функция РасходТовара = Сумма(Количество-КоличествоВ); |Функция РасходТовараСумм = Сумма(Сумма-СуммаВ); Стало: |Функция РасходТовара = Сумма(Количество); |Функция РасходТовараСумм = Сумма(Сумма); Очень странно. |
|||
10
gun200
20.04.15
✎
10:39
|
Все заработало, только вопрос, почему запрос выдает 0 в случае, когда отнимаю возврат ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |