Переключение на Главную Страницу Страницы: 1 2 3 [4]  ОтправитьПечать
Очень популярная тема (более 25 ответов) ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе. (число прочтений - 13106 )
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе.
Ответ #45 - 30. Октября 2012 :: 07:37
Печать  
Раньше версия 2.5.8 стояла, стал подключать RIK_dll, взял из
архива и 1СРР, сейчас стоит 3.0.1.22
Отладка возвращает:
select  
    Таб.Товар [Товар $Справочник.Номенклатура],
     Таб.Склад [Склад $Справочник.МестаХранения],
     sum(Таб.Остаток) Остаток
from
( SELECT  
     РегОстатки.Товар Товар,
     РегОстатки.Склад Склад,
     РегОстатки.ОстатокТовараОстаток Остаток
     FROM
           (
select
rg99_vt.sp3603 as Фирма,
rg99_vt.sp101 as Товар,
rg99_vt.sp100 as Склад,
rg99_vt.sp102 as ОстатокТовараОстаток
from rg99 as rg99_vt (nolock)
where rg99_vt.period={d '2012-10-01'}
and (
rg99_vt.sp102 <> 0
)
) as Rests99('20121016Z', , ,
                              (Товар, Склад), (ОстатокТовара)) as РегОстатки
      Union all
SELECT  
     Р1.Товар,
     Р2.Склад,
     0
     FROM
           (
select
rg99_vt.sp3603 as Фирма,
rg99_vt.sp101 as Товар,
rg99_vt.sp100 as Склад,
rg99_vt.sp102 as ОстатокТовараОстаток
from rg99 as rg99_vt (nolock)
where rg99_vt.period={d '2012-10-01'}
and (
rg99_vt.sp102 <> 0
)
) as Rests99('20121016Z', ,
                              (Фирма='     0   ') AND (Товар in (select val from #ВТТовары)) AND (Склад in (select val from #ВТСклады)),    
                              (Товар, Склад), (ОстатокТовара)) as Р1,
           (
select
rg99_vt.sp3603 as Фирма,
rg99_vt.sp101 as Товар,
rg99_vt.sp100 as Склад,
rg99_vt.sp102 as ОстатокТовараОстаток
from rg99 as rg99_vt (nolock)
where rg99_vt.period={d '2012-10-01'}
and (
rg99_vt.sp102 <> 0
)
) as Rests99('20121016Z', ,
                              (Фирма='     0   ') AND (Товар in (select val from #ВТТовары)) AND (Склад in (select val from #ВТСклады)),    
                              (Товар, Склад), (ОстатокТовара)) as Р2
) Таб
Group by Таб.Товар,Таб.Склад
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{C:\DB.ADM\PV\НЕ_РАБ_ВЕРСИИ\TEST_QUERY_УЛОЖИТЬСПИСОК2.ERT(77)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20121016Z'.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе.
Ответ #46 - 30. Октября 2012 :: 07:41
Печать  
Сейчас вернул версию 2.5.8
попробовал, та же петрушка:
SQL Server Driver][SQL Server]Incorrect syntax near '20121016Z'.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе.
Ответ #47 - 30. Октября 2012 :: 07:44
Печать  
Какую версию все же оставить, они совместимы сверху вниз или нет?
Все, что работало в старых версиях, будет работать в новой 3.5.1.22  ???
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе.
Ответ #48 - 30. Октября 2012 :: 08:11
Печать  
Убери все табуляции и лишние пробелы с текста запроса

Вот, для типовой ТиС усё работает:
Код
Выбрать все
//*******************************************
Процедура Сформировать()
	Запрос = СоздатьОбъект("ODBCRecordSet");
	ТекстЗапроса="
	|select
	|  Таб.Товар [Товар $Справочник.Номенклатура],
	|  Таб.Склад [Склад $Справочник.Склады],
	|  sum(Таб.Количество) Количество
	|  from
	|(
	| select
	|   РегОстатки.Номенклатура Товар,
	|   РегОстатки.Склад Склад,
	|   РегОстатки.КоличествоОстаток Количество
	| from
	|  $РегистрОстатки.ОстаткиТМЦ(:КонДата~,,,(Номенклатура,Склад),(Количество)) as РегОстатки
	| Union all
	| select
	|   Р1.Номенклатура,
	|   Р2.Склад,
	|   0
	| from
	|  $РегистрОстатки.ОстаткиТМЦ(:КонДата~,,,(Номенклатура,Склад),(Количество)) as Р1,
	|  $РегистрОстатки.ОстаткиТМЦ(:КонДата~,,,(Номенклатура,Склад),(Количество)) as Р2
	|) Таб
	|Group by Таб.Товар,Таб.Склад";
	Запрос.Отладка(1);
	Запрос.УстановитьТекстовыйПараметр("КонДата",ТекущаяДата());
	Запрос.ВыполнитьИнструкцию(ТекстЗапроса).ВыбратьСтроку();
КонецПроцедуры 


  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: ВСЕ Вошедшие в запрос для вывода товара с нулевым остатком на складе.
Ответ #49 - 30. Октября 2012 :: 10:37
Печать  
Спасибо, дружище!
Все заработало.
Это я похоже с запятыми перестарался
"$РегистрОстатки.ОстаткиТоваров (:ДатаКон~, , , Условие"
там должно быть 2 а не 3 запятые.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 
ОтправитьПечать