Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема запрос по периодам (число прочтений - 1997 )
valeriy99
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 03. Марта 2012
Пол: Мужской
запрос по периодам
03. Марта 2012 :: 11:23
Печать  
Не знаю в чем проблема, но синтаксис запроса выдает ошибку: "RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
{D:\TEST\EXTFORMS\Проба\Запрос.ERT(98)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Период'."

Сам запрос:
     |SELECT
     |      РегЗОС.Контрагент as [Партнер $Справочник.Контрагенты],
     |      РегЗОС.ТТ as [ТТ $Справочник.ТТ],
     |      РегЗОС.Склад as [Склад $Справочник.МестаХранения],
     |      РегЗОС.Подразделение as [Подразделение $Справочник.Подразделения],
     |      РегЗОС.ЗалоговыйРесурс as [Печь $Справочник.НеоборотныеАктивы],
     |      РегЗОС.КвоКонечныйОстаток as КвоП,
     |      РегЗОС.Период Период
     |FROM
     |      )) as РегЗОС";

Что не так? Печаль
  
Наверх
 
IP записан
 
pari
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 08. Мая 2008
Re: запрос по периодам
Ответ #1 - 03. Марта 2012 :: 12:51
Печать  
Если поле Период есть, наверно тогда так нужно:
РегЗОС.Период as Период
« Последняя редакция: 09. Марта 2012 :: 18:05 - pari »  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по периодам
Ответ #2 - 03. Марта 2012 :: 13:34
Печать  
http://www.1cpp.ru/docum/icpp/html/ODBC.html#id36
Цитата:
Период - тип datetime; дата начала периода, по которому происходит разворот оборотов; существует только в том случае, если указана периодичность День, Неделя, Декада, Месяц, Квартал, Год;
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
valeriy99
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 03. Марта 2012
Пол: Мужской
Re: запрос по периодам
Ответ #3 - 03. Марта 2012 :: 14:29
Печать  
Если указать период непосредственно:
     |       as РегЗОС";
то ошибка такова:
"Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ЗалоговыеОС"State 42000, native 137, message [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@_CP_2'"
     
     
Если объявить как переменную:
     |      )) as РегЗОС";

     RS.УстановитьТекстовыйПараметр("Период","День");  

то ошибка такова:
"State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Период'"

Собственно ошибка в строке запроса:
|      РегЗОС.Период Период            
Печаль Печаль
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по периодам
Ответ #4 - 03. Марта 2012 :: 14:49
Печать  
valeriy99 писал(а) 03. Марта 2012 :: 14:29:
Если указать период непосредственно:
     |       as РегЗОС";
то ошибка такова:
"Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ЗалоговыеОС"State 42000, native 137, message [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@_CP_2'"

Мне отсюда твои параметры и условие не видны, но, как минимум, :ВыбДокН,:ВыбДокК~ выглядит оригинально.  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
valeriy99
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 03. Марта 2012
Пол: Мужской
Re: запрос по периодам
Ответ #5 - 03. Марта 2012 :: 15:01
Печать  
       Текст запроса с условиями, объявлением переменных и присвоением им значений:

     RS = СоздатьОбъект("ODBCRecordset");
     RS.РежимRPC(1);
     прНА=глПечи;

     Условие="NOT(Контрагент = $ПустойИД OR Контрагент = $ПустойИД13) AND NOT(ТТ = $ПустойИД OR ТТ = $ПустойИД13)";
     Условие=Условие+" AND ЗалоговыйРесурс IN (SELECT Val FROM #Группа)";

     ТекстЗапроса = "
     |SELECT
     |      РегЗОС.Контрагент as [Партнер $Справочник.Контрагенты],
     |      РегЗОС.ТТ as [ТТ $Справочник.ТТ],
     |      РегЗОС.Склад as [Склад $Справочник.МестаХранения],
     |      РегЗОС.Подразделение as [Подразделение $Справочник.Подразделения],
     |      РегЗОС.ЗалоговыйРесурс as [Печь $Справочник.НеоборотныеАктивы],
     |      РегЗОС.КвоКонечныйОстаток as КвоП,
     |      РегЗОС.Период Период
     |FROM
     |      )) as РегЗОС";
     
     RS.УложитьСписокОбъектов(прНА, "#Группа", "НеоборотныеАктивы");
     
     
     RS.УстановитьТекстовыйПараметр("Период","День");

     RS.Отладка(1);
     ТЗ = СоздатьОбъект("ИндексированнаяТаблица");
     RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ,1);
     ТЗ.Показать();
Смущённый
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по периодам
Ответ #6 - 03. Марта 2012 :: 15:36
Печать  
valeriy99 писал(а) 03. Марта 2012 :: 15:01:
     Условие="NOT(Контрагент = $ПустойИД OR Контрагент = $ПустойИД13) AND NOT(ТТ = $ПустойИД OR ТТ = $ПустойИД13)";

Ты не знаешь, какого типа эти реквизиты?

valeriy99 писал(а) 03. Марта 2012 :: 15:01:
     |      РегЗОС.Период Период
     |FROM
     |      )) as РегЗОС";

При периодичности Период поле Период отсутствует.

valeriy99 писал(а) 03. Марта 2012 :: 15:01:
     

Последний день периода в выборку не попадёт.

valeriy99 писал(а) 03. Марта 2012 :: 15:01:
     RS.УстановитьТекстовыйПараметр("Период","День");

Это лишнее.


А так хз.  Озадачен  Сделай запрос конструктором и сравни со своим.

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: запрос по периодам
Ответ #7 - 05. Марта 2012 :: 04:45
Печать  
А чего, измерения ТТ и Клиентос в регистре имеют тип "<Справочник>" без вида ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать