Движения в регистре и запрос
09.11.2010
10:58
#1
"Есть запрос для отчета, который выводит карточку по товарам по виду
Товар
Прих Док
Расх Док
Итого по товару
Задача в том что при отсутствии движений в периоде ДатаНачала По ДатаКонец строка "Товар" и "Итого по товару" не выводится, так как нет движений по регистру
как переделать запрос что бы строка товар выводилась независимо от движения в период?
Текст запроса:
ТекстЗапроса="
|ПЕРИОД С ДатаНачала По ДатаКонец;
|Товар=Регистр.ПартииТоваров.Товар;
|ВидТМЦ=Регистр.ПартииТоваров.Товар.ВидТМЦ;
|Фирма=Регистр.ПартииТоваров.Фирма;
|Склад=Регистр.ПартииТоваров.Склад;
|Поставщик=Регистр.ПартииТоваров.Поставщик;
|ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
|Докум=Регистр.ПартииТоваров.ТекущийДокумент;
|ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара;
|Стоимость=Регистр.ПартииТоваров.Стоимость;
|НДС=Регистр.ПартииТоваров.НДС;
|Оборот=Регистр.ПартииТоваров.Оборот;
|СуммаНДС=Регистр.ПартииТоваров.НДСрасхода;
|СуммаНП=Регистр.ПартииТоваров.НПрасхода;
|Группировка Склад;
|Группировка ВидТМЦ;
|Группировка Товар Упорядочить по Товар.Код Без групп;
|Группировка ПрихДокумент Упорядочить по ПрихДокумент.ДатаДок;";
|Группировка Докум Упорядочить по Докум.ДатаДок;";"
Товар
Прих Док
Расх Док
Итого по товару
Задача в том что при отсутствии движений в периоде ДатаНачала По ДатаКонец строка "Товар" и "Итого по товару" не выводится, так как нет движений по регистру
как переделать запрос что бы строка товар выводилась независимо от движения в период?
Текст запроса:
ТекстЗапроса="
|ПЕРИОД С ДатаНачала По ДатаКонец;
|Товар=Регистр.ПартииТоваров.Товар;
|ВидТМЦ=Регистр.ПартииТоваров.Товар.ВидТМЦ;
|Фирма=Регистр.ПартииТоваров.Фирма;
|Склад=Регистр.ПартииТоваров.Склад;
|Поставщик=Регистр.ПартииТоваров.Поставщик;
|ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
|Докум=Регистр.ПартииТоваров.ТекущийДокумент;
|ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара;
|Стоимость=Регистр.ПартииТоваров.Стоимость;
|НДС=Регистр.ПартииТоваров.НДС;
|Оборот=Регистр.ПартииТоваров.Оборот;
|СуммаНДС=Регистр.ПартииТоваров.НДСрасхода;
|СуммаНП=Регистр.ПартииТоваров.НПрасхода;
|Группировка Склад;
|Группировка ВидТМЦ;
|Группировка Товар Упорядочить по Товар.Код Без групп;
|Группировка ПрихДокумент Упорядочить по ПрихДокумент.ДатаДок;";
|Группировка Докум Упорядочить по Докум.ДатаДок;";"
09.11.2010
11:52
#2
"Например:
|Условие(Оборот <> 0);
или
Пока Запрос.Группировка("Склад")=1 Цикл
ВыведенСклад=0;
Пока Запрос.Группировка("ВидТМЦ")=1 Цикл
ВыведенВидТМЦ=0;
Пока Запрос.Группировка("Товар")=1 Цикл
Если ВыведенСклад=0 Тогда
Таб.ВывестиСекцию("СекцияСклад");
ВыведенСклад=1;
КонецЕсли;
Если ВыведенВидТМЦ=0 Тогда
Таб.ВывестиСекцию("СекцияВидТМЦ");
ВыведенВидТМЦ=1;
КонецЕсли;
Таб.ВывестиСекцию("СекцияТовар");
КонецЦикла;
КонецЦикла;
КонецЦикла;"
|Условие(Оборот <> 0);
или
Пока Запрос.Группировка("Склад")=1 Цикл
ВыведенСклад=0;
Пока Запрос.Группировка("ВидТМЦ")=1 Цикл
ВыведенВидТМЦ=0;
Пока Запрос.Группировка("Товар")=1 Цикл
Если ВыведенСклад=0 Тогда
Таб.ВывестиСекцию("СекцияСклад");
ВыведенСклад=1;
КонецЕсли;
Если ВыведенВидТМЦ=0 Тогда
Таб.ВывестиСекцию("СекцияВидТМЦ");
ВыведенВидТМЦ=1;
КонецЕсли;
Таб.ВывестиСекцию("СекцияТовар");
КонецЦикла;
КонецЦикла;
КонецЦикла;"
10.11.2010
09:24
#8
"да при чем тут функции???
выполняется запрос по регистру и он не возвращает товар если по нему за заданный период небыло движений и значит
|ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
|Докум=Регистр.ПартииТоваров.ТекущийДокумент;
получаются пустыми и товар не попадает в группировку.
может я чего не понимаю, но где тут функции вызывать то?"
выполняется запрос по регистру и он не возвращает товар если по нему за заданный период небыло движений и значит
|ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
|Докум=Регистр.ПартииТоваров.ТекущийДокумент;
получаются пустыми и товар не попадает в группировку.
может я чего не понимаю, но где тут функции вызывать то?"
10.11.2010
09:28
#9
Значит все таки не знаешь! А ведь есть какие функции как начальный остаток и конечный остаток, с помощью которых можно в отчет включить то что не имело движений в периоде!
10.11.2010
09:38
#10
"так вот часть запроса с функциями...
|Функция НачОстатокТовара=НачОст(ОстатокТовара);
|Функция КонОстатокТовара=КонОст(ОстатокТовара);
|Функция ПрихОстатокТовара=Приход(ОстатокТовара);
|Функция РасхОстатокТовара=Расход(ОстатокТовара);
|Функция НачСтоимость=НачОст(Стоимость);
|Функция КонСтоимость=КонОст(Стоимость);
|Функция ПрихСтоимость=Приход(Стоимость);
|Функция РасхСтоимость=Расход(Стоимость);
|Функция ОборотТовара=Сумма(Оборот);
и все равно если нет движений товар не выводится("
|Функция НачОстатокТовара=НачОст(ОстатокТовара);
|Функция КонОстатокТовара=КонОст(ОстатокТовара);
|Функция ПрихОстатокТовара=Приход(ОстатокТовара);
|Функция РасхОстатокТовара=Расход(ОстатокТовара);
|Функция НачСтоимость=НачОст(Стоимость);
|Функция КонСтоимость=КонОст(Стоимость);
|Функция ПрихСтоимость=Приход(Стоимость);
|Функция РасхСтоимость=Расход(Стоимость);
|Функция ОборотТовара=Сумма(Оборот);
и все равно если нет движений товар не выводится("
Читают тему
(гостей: 1)