Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Опять про  реквизит регистров (число прочтений - 35167 )
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Опять про  реквизит регистров
01. Июня 2006 :: 09:44
Печать  
Есть Регистр ОстаткиТМЦ с Измерениями Товар, Склад; Ресурс Количество; Реквизит-Внутреннее, мне нужно получить выборку по внутренним перемещениям то есть по реквизиту - внутреннее:

Код
Выбрать все
recordset.УстановитьТекстовыйПараметр("НачДата",НачДата);
recordset.УстановитьТекстовыйПараметр("КонДата",КонДата);
ТекстЗапроса="
|SELECT РегОб.Товар [Товар $Справочник.Номенклатура],
|             РегОб.Склад [Склад $Справочник.Склады],
|             РегОб.КоличествоРасход Расход,
|             РегОб.Внутреннее ВнутПер
|FROM $РегистрОбороты.ОстаткиТМЦ(:НачДата,:КонДата~, , , Внутреннее=1,
|(Склад,Товар),Количество) РегОб
|";

ТЗ = глПолучитьВыборку(secordset,ТекстЗапроса);

 



вываливается с ошибкой
{Глобальный модуль(158)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Внутреннее'.

Подскажите, в каком направлении копать нужно, спасибо.
  
Наверх
ICQ  
IP записан
 
Bess_Tolkovaia
Junior Member
**
Отсутствует


Натуральная блондинка,
1 штука

Сообщений: 89
Местоположение: Минск, РБ
Зарегистрирован: 26. Мая 2006
Пол: Женский
Re: Опять про  реквизит регистров
Ответ #1 - 01. Июня 2006 :: 09:58
Печать  
А реквизит "Внутреннее" точно есть?
  
Наверх
ICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #2 - 01. Июня 2006 :: 09:59
Печать  
конечно, отбор то работает
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #3 - 01. Июня 2006 :: 10:03
Печать  
периодичность "Документ " надо указать, я думаю:

|FROM $РегистрОбороты.ОстаткиТМЦ(:НачДата,:КонДата~, Документ, , Внутреннее=1,

тока оптимизации в этом случае не получится
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #4 - 01. Июня 2006 :: 10:03
Печать  
я по регистрам оборотов не силен, но все таки, возник вопрос по поводу:
Период | Period - только за период (не разворачивать);

что значит не разворачивать, может в этом проблема?
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #5 - 01. Июня 2006 :: 10:18
Печать  
DrACe писал(а) 01. Июня 2006 :: 10:03:
периодичность "Документ " надо указать, я думаю:

|FROM $РегистрОбороты.ОстаткиТМЦ(:НачДата,:КонДата~, Документ, , Внутреннее=1,

тока оптимизации в этом случае не получится


про периодичность она мне нужна будет только по месяцам,  поставил " месяц"... с этим тоже не работает! те же грабли  Нерешительный
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #6 - 01. Июня 2006 :: 10:21
Печать  
$РегОб.Внутреннее=1
или
(Склад,Товар),Количество) РегОб
where $РегОб.Внутреннее=1

тоже не работате? или просто не пришло в голову так попрбовать?

но DrACe тут прав, реквизит заполнячется движением, и вытащить его можно только сдетализировав по документу, по крайней мере по остаткам так, думаю что по оборотам тот же "принцып", кроме как движению его не привяжешь, я о реквизите, поэтому ниче и не работает...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #7 - 01. Июня 2006 :: 10:30
Печать  
сейчас попробую с $РегОб.Внутреннее скажу результат
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #8 - 01. Июня 2006 :: 10:31
Печать  
rusness писал(а) 01. Июня 2006 :: 10:30:
сейчас попробую с $РегОб.Внутреннее скажу результат

без детализации до документа, он тебя врядли поймет...

  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #9 - 01. Июня 2006 :: 10:33
Печать  
Цитата:
$РегОб.Внутреннее=1
или
(Склад,Товар),Количество) РегОб
where $РегОб.Внутреннее=1
тоже не работате? или просто не пришло в голову так попрбовать?


Не сработает

Цитата:
но DrACe тут прав, реквизит заполнячется движением, и вытащить его можно только сдетализировав по документу, по крайней мере по остаткам так, думаю что по оборотам тот же "принцып", кроме как движению его не привяжешь, я о реквизите, поэтому ниче и не работает...


Опять неправда, автору нужен отбор по реквизиту, а как сгруппируются данные дело десятое. Вообще (0) должно работать. ИМХО как вариант просто сделать запрос по таблице движений с группировкой, ибо ВТ в данном случае так и работает.
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #10 - 01. Июня 2006 :: 10:34
Печать  
дело в том, что когда ты обращаешься к реквизитам регистра - это тоже самое, что и простой запрос Таблице Оборотов, т.е. НИКАКОЙ ОПТИМИЗАЦИИ (использования Таблицы Итогов) НЕ ПОЛУЧИТСЯ

в связи с этим твой запрос ничего не потеряет, если ты без ВТ сразу напишешь:
Код
Выбрать все
recordset.УстановитьТекстовыйПараметр("НачДата",НачДата);
recordset.УстановитьТекстовыйПараметр("КонДата",КонДата);
ТекстЗапроса="
|SELECT
|	$РегОб.Товар				[Товар $Справочник.Номенклатура],
|	$РегОб.Склад				[Склад $Справочник.Склады],
|	SUM($РегОб.Количество)		Расход,
|	$РегОб.Внутреннее			ВнутПер    -- зачем здесь этот реквизит, если он всегда = 1?
|FROM $Регистр.ОстаткиТМЦ as РегОб (NOLOCK)
|	INNER JOIN _1SJOURN AS Журнал (NOLOCK) ON (РегОб.IDDOC = Журнал.IDDOC)
|
|WHERE
|		(Журнал.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
|	AND ($РегОб.Внутреннее=1)
|	AND (РегОб.DEBKRED = 1) -- тебя ведь только Расход интересует
|
|GROUP BY
|	$РегОб.Товар,
|	$РегОб.Склад,
|	$РегОб.Внутреннее
|";

ТЗ = глПолучитьВыборку(secordset,ТекстЗапроса);
 


если у тебя включен отбор по какому-либо измерению, то присоединять журнал не надо - поле DATE_TIME_IDDOC уже есть в таблице движений регистра
  
Наверх
 
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #11 - 01. Июня 2006 :: 10:36
Печать  
с детализацией по документу тоже не работает, Славко , а условие внутри ВТ срабатывает я уже проверял
  
Наверх
ICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #12 - 01. Июня 2006 :: 10:43
Печать  
DrACe

да похоже так и придется делать...  Спасибо буду юзать..
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #13 - 01. Июня 2006 :: 11:07
Печать  
S.W.A.T. писал(а) 01. Июня 2006 :: 10:33:
Опять неправда, автору нужен отбор по реквизиту, а как сгруппируются данные дело десятое. Вообще (0) должно работать. ИМХО как вариант просто сделать запрос по таблице движений с группировкой, ибо ВТ в данном случае так и работает.

возможно, я высказывал предположение, но давай рассуждать логически, тыже не можешь получить остатто на документ, вот мне не понятно как ты можешь получить значение реквизита на остаток, ведь остаток это сгрупированные данные, и реквизиты в выборку не включены, если делать срез по движению, то тогда логично получать и фильтровать по значениям реквизитов
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #14 - 01. Июня 2006 :: 11:09
Печать  
Мне кажется, что это вопрос из FAQ.
http://1c.alterplast.ru/faq/query.html, первый вопрос.
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать