Вариативный запрос по остаткам и оборотам номенклатуры (УТ 11.3.4.1) #802274


#0 by BBDragon
Добрый день! Хочу сделать отчет по остаткам, оборотам и ценам номенклатуры за заданный период. В зависимости от типа регистратора (Поступление или Реализация) надо делать соответствующую выборку и выводить в отчет следующее: Номенклатура, Нач.остаток, Приход, Расход, Кон.Остаток и после этого данные из регистраторов - наименование самого документа-регистратора, дата, цена товара, количество товара, сумма и контрагент. Бьюсь уже 2 часа, что-то никак не соображу как сделать вариативный запрос. Т.е. в зависимости от типа документа после выполнения Выбрать надо запрашивать данные по поступлению или реализации (а еще ведь возможно и перемещение товара!). Подскажите, пожалуйста, как это правильно оформить. Вот текущий код запроса: ВЫБРАТЬ     ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг КАК Реализация ИЗ Он не работает, естественно, вываливается с ошибкой "Недостаточно памяти"
#1 by BBDragon
Пардон, опечатка в конце запроса, исправил. Правда результат тот же - "Недостаточно памяти". База на SQL 2012, запускаю отчет на самом сервере, 32 Гб оперативки.     ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг КАК Реализация ИЗ
#2 by Dvoe4nik
а для чего у тя первый запрос где выбираешь поступления и реализацию без условий отбора и не обращаешься к ним?
#3 by Джинн
Бредовый отчет. Нет никаких "остатков по регистратору".
#4 by catena
ИЗ     РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах Не удивительно, что памяти недостаточно. Ты умножаешь таблицу регистра на таблицу оборотов. Круто, правда?
#5 by BBDragon
Просто создаю связку с документами, не нужно что ли? Или все в одном запросе лучше сделать? Я знаю, что неправильно. Подскажите, пожалуйста, как надо сделать
#6 by Ganiev
))) Получай все из ТоварыНаСкладахОстаткиИОбороты в выбранных полях сделай функцию по отдельным полям типа  что-то "Выбор когда ТоварыНаСкладахОстаткиИОбороты.Регистратор Ссылка Документ.ПоступлениеТоваровУслуг Тогда ТоварыНаСкладахОстаткиИОбороты.Регистратор Иначе Null Конец как ДатаП"
#7 by BBDragon
Сделал вычисляемое поле ДатаДок с выражением: Выбор Когда ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор)=ТИП(Документ.ПоступлениеТоваровУслуг) Тогда ПоступлениеТоваровУслуг.Ссылка.Дата ИНАЧЕ ВЫБОР Когда ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОстаткиИОбороты.Регистратор)=ТИП(Документ.РеализацияТоваровУслуг) Тогда РеализацияТоваровУслуг.Ссылка.Дата Иначе NULL Конец КОНЕЦ Однако СКД ругается: "Поле не найдено ПоступлениеТоваровУслуг.Ссылка.Дата". Регистратор.Дата или ПоступлениеТоваровУслуг.Дата тоже не подходит.
#8 by Cyberhawk
"Нет никаких "остатков по регистратору"" // Но есть последовательные движения на шкале времени ))
#9 by BBDragon
Может вы подскажете как сделать то? А то с утра никак толком не получится отчет доделать :(
#10 by Джинн
Сегодня они такие, завтра они другие, ибо какой-то дятел порядок следования документов поменял...
#11 by Джинн
Подсказываю - перестать заниматься онанизмом и использовать типовые отчеты. Они вполне достойно решают бизнес-задачу.
#12 by BBDragon
Если бы можно было обойтись простыми - я бы так и сделал. Есть конкретное задание, над ним и бьюсь
#13 by Cyberhawk
"подскажете как сделать то?" // А что требуется-то? Я вроде издалека намекал, а в взяли и разжевали )
#14 by BBDragon
У меня не работает запрос, я и спросил - как его исправить? Неужели на всем форуме никто не может ответить? Для профи же это пара пустяков
#15 by BBDragon
Я и книги Хрусталевой пересмотрел вчера, не нашел подобного запроса. Есть попроще, но это я и сам могу, а вот чтобы увязать столько данных в одном отчете - нигде не нашел.
#16 by catena
Этот запрос надо заново переписывать. А всем лень возиться. Погоди, может найдется добрая душа, разжует.
#17 by vicof
А если тебе скажут с крыши прыгнуть, тоже прыгнешь? +100500 И вообще задача не озвучена. Но она явно идиотская.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С