Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Отчет Ведомость по Остаткам прямым запросом! (число прочтений - 6077 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Отчет Ведомость по Остаткам прямым запросом!
23. Июля 2008 :: 07:43
Печать  
Народ помогите плиззз, нужно собрать именно из регистра остатки движение остатков, тоесть нач,приход,расход,кон остатков и движения документов по ним.
есть ниже следующий запрос и он работает, НО не могу в Индтз вывести еще документы, тоесть чтобы по ним сгруппировать и получится по датам документов группировка, как в типовой версии 1С:Торговля Ведомость по остаткам!

[code]
     рс = СоздатьОбъект("ODBCRecordset");
     рс.Отладка(1);
     ТекстЗапроса = "-- qryMaker:Отчет1.2008.07.22.16.13.43
           |SELECT
           |        ОборотыТМЦ.ТМЦ [ТМЦ $Справочник.ТМЦ]
           |      , ОборотыТМЦ.Склад [Склад $Справочник.МестаХранения]
           |      , ОборотыТМЦ.Фирма [Фирма $Справочник.Фирмы]
           |      , Sum(ОборотыТМЦ.КоличествоНачальныйОстаток) НачКолОстаток
           |      , Sum(ОборотыТМЦ.КоличествоПриход) КолПриход
           |      , Sum(ОборотыТМЦ.КоличествоРасход) КолРасход
           |      , Sum(ОборотыТМЦ.КоличествоКонечныйОстаток) КонКолОстаток
           |      , Sum(ОборотыТМЦ.ТранспНачальныйОстаток) НачТранспОстаток
           |      , Sum(ОборотыТМЦ.ТранспПриход) ТранспПриходС
           |      , Sum(ОборотыТМЦ.ТранспРасход) ТранспРасходС
           |      , Sum(ОборотыТМЦ.ТранспКонечныйОстаток) КонТранспОстаток
           |FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:ДатаНачала,:ДатаКонца~,Document,,,";
           Если (ПустоеЗначение(Фирма)=0) и (ПустоеЗначение(Склад)=0) Тогда
                 ТекстЗапроса=ТекстЗапроса+"(Фирма = :Фирма) AND (Склад = :Склад),";
           ИначеЕсли ПустоеЗначение(Фирма)=0 Тогда
                 ТекстЗапроса=ТекстЗапроса+"(Фирма = :Фирма),";
           ИначеЕсли ПустоеЗначение(Склад)=0 Тогда
                 ТекстЗапроса=ТекстЗапроса+"(Склад = :Склад),";
           Иначе
                 ТекстЗапроса=ТекстЗапроса+",";
           КонецЕсли;
     ТекстЗапроса = ТекстЗапроса+"
           |            (Фирма, Склад, ТМЦ),
           |            (Количество, Трансп)) AS ОборотыТМЦ (NoLock)
           |GROUP BY ОборотыТМЦ.Фирма
           |      , ОборотыТМЦ.Склад
           |      , ОборотыТМЦ.ТМЦ
           |";
     рс.УстановитьТекстовыйПараметр("ДатаНачала",ДатаНачала);
     рс.УстановитьТекстовыйПараметр("ДатаКонца",ДатаКонца);
     рс.УстановитьТекстовыйПараметр("Фирма",Фирма);
     рс.УстановитьТекстовыйПараметр("Склад",Склад);
     рс.УстановитьТекстовыйПараметр("ТМЦ",ТМЦ);
     
     
     тз=СоздатьОбъект("ИндексированнаяТаблица");
     рс.ВыполнитьИнструкцию(ТекстЗапроса,тз,1);
     тз.ВыбратьСтроку();

[/code]
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #1 - 23. Июля 2008 :: 08:12
Печать  
зачем тебе Sum(ОборотыТМЦ.КоличествоНачальныйОстаток) НачКолОстаток ? Виртуальная таблица и так дает сумму. И где ты выбираешь из ВТ документ?
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #2 - 23. Июля 2008 :: 08:36
Печать  
Я бы делал через остатки - юнион олл - движения, без ВТ
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #3 - 23. Июля 2008 :: 09:15
Печать  
Mikeware писал(а) 23. Июля 2008 :: 08:12:
зачем тебе Sum(ОборотыТМЦ.КоличествоНачальныйОстаток) НачКолОстаток ? Виртуальная таблица и так дает сумму. И где ты выбираешь из ВТ документ?


По поводу нач и кон сумм не знал, убрал и в ИндТЗ пропали колонки по нач остаткам Печаль
вот именно что, я пробовал разные фигни и не смог выбрать документы и не понимаю как их выбрать Печаль в ВТ там есть только группировка по документам и все. Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #4 - 23. Июля 2008 :: 09:15
Печать  
Цитата:
Я бы делал через остатки - юнион олл - движения, без ВТ

для меня такое жестоко Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #5 - 23. Июля 2008 :: 11:05
Печать  
неужели никто ничего посоветовать не может? никто такого не писал чтоли?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #6 - 23. Июля 2008 :: 11:07
Печать  
pavlo писал(а) 23. Июля 2008 :: 09:15:
вот именно что, я пробовал разные фигни и не смог выбрать документы и не понимаю как их выбрать Печаль в ВТ там есть только группировка по документам и все. Печаль

Код
Выбрать все
 SELECT
  right(ОборотыТМЦ.ПозицияДокумента,9)  [Документ $Документ],
    ОборотыТМЦ.ВидДокумента [Документ_вид],
......
 


Вообще, в документации это описано.
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #7 - 23. Июля 2008 :: 15:22
Печать  
хм, не видел такого в документации Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #8 - 24. Июля 2008 :: 02:32
Печать  
Mikeware писал(а) 23. Июля 2008 :: 11:07:
pavlo писал(а) 23. Июля 2008 :: 09:15:
вот именно что, я пробовал разные фигни и не смог выбрать документы и не понимаю как их выбрать Печаль в ВТ там есть только группировка по документам и все. Печаль

Код
Выбрать все
 SELECT
  right(ОборотыТМЦ.ПозицияДокумента,9)  [Документ $Документ],
    ОборотыТМЦ.ВидДокумента [Документ_вид],
......
 


Вообще, в документации это описано.


Странно, когда это добавляю в select то ругается, что нужна группировка, добавляю в группировку орет, что не определено значение "ОборотыТМЦ.Документ" Печаль
В чем проблема не в курсе?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #9 - 24. Июля 2008 :: 05:41
Печать  
Потому что у тебя нет в таблице поля ОборотыТМЦ.Документ, у тебя есть: ОборотыТМЦ.ПозицияДокумента
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #10 - 24. Июля 2008 :: 05:48
Печать  
JohnyDeath писал(а) 24. Июля 2008 :: 05:41:
Потому что у тебя нет в таблице поля ОборотыТМЦ.Документ, у тебя есть: ОборотыТМЦ.ПозицияДокумента


группирую по ОборотыТМЦ.ПозицияДокумента и тогда ругается так Печаль
Column 'ОборотыТМЦ.ВидДокумента' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #11 - 24. Июля 2008 :: 08:41
Печать  
pavlo писал(а) 24. Июля 2008 :: 05:48:
группирую по ОборотыТМЦ.ПозицияДокумента и тогда ругается так Печаль
Column 'ОборотыТМЦ.ВидДокумента' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

А зачем вообще группируешь? Чего хочешь получить от запроса???
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #12 - 24. Июля 2008 :: 11:56
Печать  
так я же пишу, что хочу получить в итоге остатки на начало, приход, расход и остатки на конец.
группировка Фирма-Склад-ТМЦ-Документы движения
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #13 - 25. Июля 2008 :: 03:11
Печать  
ну не ужеле никто не может помочь?  Плачущий
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #14 - 25. Июля 2008 :: 07:10
Печать  
Убери summ() и группировки. Или вынеси их во внешний запрос
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #15 - 25. Июля 2008 :: 08:33
Печать  
убирал и толку нет, выгружается чего попало и уж тем более нет там документов Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #16 - 25. Июля 2008 :: 08:43
Печать  
pavlo писал(а) 25. Июля 2008 :: 08:33:
убирал и толку нет, выгружается чего попало и уж тем более нет там документов Печаль

В список измерений ВТ добавь "ТМЦ,Склад,Фирма". А вообще, конечно, лучше самому сесть один раз и написать через UNION без ВТ, тогда сразу всё станет понятным. Подмигивание
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #17 - 25. Июля 2008 :: 08:52
Печать  
если я правильно понимаю у меня это есть уже в ВТ Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #18 - 25. Июля 2008 :: 08:53
Печать  
pavlo писал(а) 25. Июля 2008 :: 08:33:
убирал и толку нет, выгружается чего попало и уж тем более нет там документов Печаль

Есть там докуменеты, и выгружается как раз то, что ты просишь.
SELECT
right(ОборотыТМЦ.ПозицияДокумента,9)  [Документ $Документ],
    ОборотыТМЦ.ВидДокумента [Документ_вид],
       ОборотыТМЦ.Номенклатура [Номенклатура $Справочник.Номенклатура]
     , ОборотыТМЦ.Склад [Склад $Справочник.Склады]
     , ОборотыТМЦ.Фирма [Фирма $Справочник.Фирмы]
     , ОборотыТМЦ.КоличествоНачальныйОстаток  НачКолОстаток
     , ОборотыТМЦ.КоличествоПриход  КолПриход
     , ОборотыТМЦ.КоличествоРасход КолРасход
     , ОборотыТМЦ.КоличествоКонечныйОстаток КонКолОстаток
FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:ДатаНачала,:ДатаКонца~,Document,,,(Склад = :ВыбСклад),
           (Фирма, Склад, Номенклатура),
           (Количество)) AS ОборотыТМЦ (NoLock)
order by Номенклатура, ПозицияДокумента,Фирма,Склад
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #19 - 25. Июля 2008 :: 09:29
Печать  
Column 'ОборотыТМЦ.ВидДокумента' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Код
Выбрать все
	ТекстЗапроса = "-- qryMaker:Отчет1.2008.07.22.16.13.43
		|SELECT
		|	right(ОборотыТМЦ.ПозицияДокумента,9)  [Документ $Документ]
			|	, ОборотыТМЦ.ВидДокумента [Документ_вид]
		|	, ОборотыТМЦ.ТМЦ [ТМЦ $Справочник.ТМЦ]
		|	, ОборотыТМЦ.Склад [Склад $Справочник.МестаХранения]
		|	, ОборотыТМЦ.Фирма [Фирма $Справочник.Фирмы]
		|	, ОборотыТМЦ.КоличествоНачальныйОстаток НачКолОстаток
		|	, ОборотыТМЦ.КоличествоПриход КолПриход
		|	, ОборотыТМЦ.КоличествоРасход КолРасход
		|	, ОборотыТМЦ.КоличествоКонечныйОстаток КонКолОстаток
		|	, ОборотыТМЦ.ТранспНачальныйОстаток НачТранспОстаток
		|	, ОборотыТМЦ.ТранспПриход ТранспПриходС
		|	, ОборотыТМЦ.ТранспРасход ТранспРасходС
		|	, ОборотыТМЦ.ТранспКонечныйОстаток КонТранспОстаток
		|FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:ДатаНачала,:ДатаКонца~,Document,,,";
		Если (ПустоеЗначение(Фирма)=0) и (ПустоеЗначение(Склад)=0) Тогда
			ТекстЗапроса=ТекстЗапроса+"(Фирма = :Фирма) AND (Склад = :Склад),";
		ИначеЕсли ПустоеЗначение(Фирма)=0 Тогда
			ТекстЗапроса=ТекстЗапроса+"(Фирма = :Фирма),";
		ИначеЕсли ПустоеЗначение(Склад)=0 Тогда
			ТекстЗапроса=ТекстЗапроса+"(Склад = :Склад),";
		Иначе
			ТекстЗапроса=ТекстЗапроса+",";
		КонецЕсли;
	ТекстЗапроса = ТекстЗапроса+"
		|		(Фирма, Склад, ТМЦ),
		|		(Количество, Трансп)) AS ОборотыТМЦ (NoLock)
		|GROUP BY ОборотыТМЦ.ТМЦ
		|	, ОборотыТМЦ.ПозицияДокумента
		|	, ОборотыТМЦ.Фирма
		|	, ОборотыТМЦ.Склад
		|";
	рс.УстановитьТекстовыйПараметр("ДатаНачала",ДатаНачала);
	рс.УстановитьТекстовыйПараметр("ДатаКонца",ДатаКонца);
	рс.УстановитьТекстовыйПараметр("Фирма",Фирма);
	рс.УстановитьТекстовыйПараметр("Склад",Склад);
	рс.УстановитьТекстовыйПараметр("ТМЦ",ТМЦ);

 

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #20 - 25. Июля 2008 :: 09:45
Печать  
pavlo писал(а) 25. Июля 2008 :: 09:29:
Column 'ОборотыТМЦ.ВидДокумента' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

нет у тебя агрегатных функций - коего хрена ставить group by ?????
  
Наверх
ICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #21 - 25. Июля 2008 :: 09:50
Печать  
промахнулся извиняюсь  Смущённый
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Отчет Ведомость по Остаткам прямым запросом!
Ответ #22 - 25. Июля 2008 :: 10:09
Печать  
pavlo писал(а) 25. Июля 2008 :: 09:50:
промахнулся извиняюсь  Смущённый

Я тож извиняюсь - нервно сегодня. И жарко.
Скачай 1СQA - в нем отлаживай. Быстрее и понятнее...
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать