Помогите с запросом по регистру

1. 1CLeXx 8 20.02.12 12:15 Сейчас в теме
Доброе время суток! Есть регистр остатков (Продукция) - у него есть
измерения: номенклатура, местохранения
ресурсы: количество, сумма
реквизиты: кодоперации, видтмц



есть запрос

Перем Запрос, ТекстЗапроса, Таб;
	//Создание объекта типа Запрос
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса = 
	"//{{ЗАПРОС(Сформировать)
	|Период с ВыбНачПериода по ВыбКонПериода;
	|Обрабатывать НеПомеченныеНаУдаление;
	|Номенклатура = Регистр.Продукция.Номенклатура;
	|МестоХранения = Регистр.Продукция.МестоХранения;
	|Количество = Регистр.Продукция.Количество;
	|Сумма = Регистр.Продукция.Сумма;
	|КодОперации = Регистр.Продукция.КодОперации;
	|ТипТМЦ = Регистр.Продукция.ТипТМЦ;
	|ТекущийДокумент = Регистр.Продукция.ТекущийДокумент;
	|Функция КоличествоНачОст = НачОст(Количество);
	|Функция КоличествоПриход = Приход(Количество);
	|Функция КоличествоРасход = Расход(Количество);
	|Функция КоличествоКонОст = КонОст(Количество);
	|Функция СуммаНачОст = НачОст(Сумма);
	|Функция СуммаПриход = Приход(Сумма);
	|Функция СуммаРасход = Расход(Сумма);
	|Функция СуммаКонОст = КонОст(Сумма);
	|Группировка Номенклатура упорядочить по Номенклатура.Код без групп все;
	|Группировка МестоХранения упорядочить по МестоХранения.Код без групп все;
	|Условие(Номенклатура в ВыбНоменклатура);
	|Условие(МестоХранения в ВыбМестоХранения);
	|Условие(ТипТМЦ в ВыбТипТМЦ);
	|"//}}ЗАПРОС
	;
	// Если ошибка в запросе, то выход из процедуры
	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли;

	// Подготовка к заполнению выходных форм данными запроса
	Таб = СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица("Сформировать");
	// Заполнение полей "Заголовок"
	Таб.ВывестиСекцию("Заголовок");
	Состояние("Заполнение выходной таблицы...");
	Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
	Пока Запрос.Группировка(1) = 1 Цикл
		// Заполнение полей Номенклатура
		Таб.ВывестиСекцию("Номенклатура");
		Пока Запрос.Группировка(2) = 1 Цикл
			// Заполнение полей МестоХранения
			Таб.ВывестиСекцию("МестоХранения");
		КонецЦикла;
	КонецЦикла;
	// Заполнение полей "Итого"
	Таб.ВывестиСекцию("Итого");
	// Вывод заполненной формы
	Таб.ТолькоПросмотр(1);
	Таб.Показать("Сформировать", "");
Показать



при выполнении запроса, если не выбран ВидТМЦ - показываются НачОст(кол-во и сумма), Приход(кол-во и сумма), Расход(кол-во и сумма), КонОст(кол-во и сумма)

Но когда выбираю ВидТМЦ - показываются только приход и расход за период.
Подскажите где грабля! Спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Shaman100M 1152 20.02.12 12:47 Сейчас в теме
(1) По идее, указание фильтра по ВидТМЦ, (по реквизиту!), сответствует фильтрации движений, т.е. "прихода" и "расхода", возможно, функции остатка теряют актуальность (показаны не все движения), поэтому не отображаются в запросе.

Может, имеет смысл делать два запроса - один по фильтруемым движениям, второй - по остаткам без фильтра по видуТМЦ?
2. ula1c 20.02.12 12:38 Сейчас в теме
т.е. при выборе ТипТМЦ в запросе выводится только итоговая строка с приходом и расходом?
6. 1CLeXx 8 20.02.12 13:00 Сейчас в теме
(2) ula1c,
да, только итоговая строка с приходом и расходом

(5) andruhav,
да реквизит есть, сейчас попробую такой вариант!
3. andruhav 20.02.12 12:46 Сейчас в теме
по реквизиту можно получать только движения, остатки нет
5. andruhav 20.02.12 12:48 Сейчас в теме
посмотри может в номенклатуры есть реквизит ВидТМЦ
если есть такой то сделай по нему условие типа

.........
|ВидТМЦ = Регистр.Продукция.Номенклатура.ВидТМЦ;
............
|Условие(ВидТМЦ в ВыбТипТМЦ);
Strawberry; +1 Ответить
7. 1CLeXx 8 20.02.12 13:23 Сейчас в теме
(5) andruhav, спасибо за помощь! Помогло! Тогда получается что только движения!? Это я так понимаю не обойти? Спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот