Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Опять про  реквизит регистров (число прочтений - 35270 )
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 записан
 
Славко
Senior Member
****
Отсутствует



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

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

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



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #16 - 01. Июня 2006 :: 11:16
Печать  
Цитата:
если реквизит накопительный, типа сумма чего то там, то думаю только в этом случае его можно вытащить в выборку по периодам, но это опять таки мои логические рассуждения, я плотно не работал с регистром оборотов

А с чего ты взял что регистр оборотный? Улыбка) Вообще-то это регистр остатков Подмигивание
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #17 - 01. Июня 2006 :: 11:22
Печать  
S.W.A.T. писал(а) 01. Июня 2006 :: 11:16:
А с чего ты взял что регистр оборотный? Улыбка) Вообще-то это регистр остатков Подмигивание

да вероятно я просто прочел внимательно тему, и вычитал там следующее:
FROM $РегистрОбороты.

как ты думаешь что это за ВТ и по какому регистру?

если бы речь шла о регистре остатков, я бы однозначно гворил бы о реквизитах...

кроме того ссылка, которая тут приведена на FAQ, говрит о том что мы таки правильно гворили, поясни плз. свою позицию, по поводу того что ты можешь получить значение реквизита, в котором не накапливается сумма в разрее периода а не движения...
  

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


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #18 - 01. Июня 2006 :: 11:25
Печать  
Регистр оборотов отличается от регистра остатков только тем, что в его таблице остатков (rg) копятся не остатки на конец периода, а итоговые обороты за период. Детализации до реквизитов в этой таблице нет.
Реквизит - это характеристика таблицы движений (ra).
  
Наверх
www  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #19 - 01. Июня 2006 :: 11:29
Печать  
ну тогда тем более пусть г-н S.W.A.T. обоснует свою точку зрения, и более детально пояснит в чем мы не правы, ведь он неоднозначно заявил что мы заблуждаемся касательно реквизитов...
причем просьба сделать это аргументированно, например как я логически рассуждал что реквизит не может в итогах иметь значение, пусть так же обоснованно докажет каким образом реквизит привязывается к остатку...
  

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



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #20 - 01. Июня 2006 :: 11:29
Печать  
Это где же я говорил, что реквизит привзан к итогам? Ась? Улыбка

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



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #21 - 01. Июня 2006 :: 11:31
Печать  
S.W.A.T. писал(а) 01. Июня 2006 :: 11:29:
Пояснять? Или ответа fez'a достаточно? Подмигивание

да, поясни, что я не так понял в его ответе? дело в том что из его ответа я сделал выод что мы человеку все правильно поясняли...
  

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



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #22 - 01. Июня 2006 :: 11:32
Печать  
S.W.A.T. писал(а) 01. Июня 2006 :: 11:29:
Это где же я говорил, что реквизит привзан к итогам? А?

возможно мне показалось, но я это "узрел" в http://www.1cpp.ru/forum/YaBB.pl?num=1149155077/9#9
  

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



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #23 - 01. Июня 2006 :: 11:33
Печать  
Цитата:
S.W.A.T. писал(а) 01. Июня 2006 :: 11:29:
Это где же я говорил, что реквизит привзан к итогам? А?

возможно мне показалось, но я это "узрел" в http://www.1cpp.ru/forum/YaBB.pl?num=1149155077/9#9


Предлагаю перечитать еще раз Улыбка Там нет и намека на остатки в разрезе реквизитов Подмигивание
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #24 - 01. Июня 2006 :: 11:34
Печать  
вобщем понятно, мы просто не поняли друг друга, мы говорили о том, что при периодичности отличном от движений, он не сможет получить значения ревизитов...  Подмигивание
  

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



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #25 - 01. Июня 2006 :: 11:36
Печать  
Цитата:
вобщем понятно, мы просто не поняли друг друга, мы говорилио том, что при периодичности отличном от движений, он не сможет получить значения ревизитов...  Подмигивание


Неа, мы говорили, о том что для фильтрации по реквизиту регистра в ВТ оборотов для регистра остатков, неважно какая периодичность ВТ задана, т.к. таблица итогов в данном случае вообще не используется.
  
Наверх
ICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #26 - 02. Июня 2006 :: 08:08
Печать  
Хочу поблагодарить всех кто учатствовал в помощи наставления! И хочу выложить, то что в конце концов я хотел получить в идеале, мне нужно было получить остатки и движение по месяцам в разрезе складов, товарных групп, может кому нибудь пригодиться в хозяйстве:

Сам код:

Код
Выбрать все
ДатаОст=НачМесяца(НачДата)-1;
НачалоМесяца=НачМесяца(НачДата)-1;
recordset.УстановитьТекстовыйПараметр("НачалоМесяца",НачалоМесяца);
recordset.УстановитьТекстовыйПараметр("ДатаОст",ДатаОст);
recordset.УстановитьТекстовыйПараметр("НачДата",НачДата);
recordset.УстановитьТекстовыйПараметр("КонДата",КонДата);
recordset.УложитьСписокОбъектов(ВыбТовар,"#ВыбТовар","Номенклатура");
recordset.УложитьСписокОбъектов(ВыбСклад,"#ВыбСклад","Склады");
ТекстЗапроса="
|SELECT Номенклатура, ТорговаяМарка,Склад,Период,SUM(НачОст) НачОст, SUM(Приход) Приход, SUM(Расход) Расход, SUM(РасхВнутр) РасходВнутр ,SUM(НачОст)+SUM(Приход)-SUM(Расход)-SUM(РасхВнутр) КонОст
|FROM (SELECT СпрТов.CODE Номенклатура,
|             СпрГр.DESCR ТорговаяМарка,
|             СпрСклад.DESCR Склад,    
|             dateadd(month,1,dateadd(day,1-day(dateadd(day,1,РегИт.PERIOD)),РегИт.PERIOD))-1 Период,
|             $РегИт.Количество НачОст,
|             0 Приход,
|             0 Расход,
|             0 РасхВнутр
|      FROM $РегистрИтоги.ОстаткиТМЦ РегИт
|      INNER JOIN $Справочник.Номенклатура СпрТов ON СпрТов.ID=$РегИт.Номенклатура
|      LEFT JOIN $Справочник.Номенклатура СпрГр ON СпрГр.ID=СпрТов.PARENTID
|      INNER JOIN $Справочник.Склады СпрСклад ON СпрСклад.ID=$РегИт.Склад
|      WHERE РегИт.PERIOD=:ДатаОст";
Если ПустоеЗначение(ВыбСклад)=1 Тогда
Иначе    
 ТекстЗапроса=ТекстЗапроса+" AND $РегИт.Склад IN (SELECT val FROM #ВыбСклад)";
КонецЕсли;
Если ПустоеЗначение(ВыбТовар)=1 Тогда
Иначе    
	 ТекстЗапроса=ТекстЗапроса+" AND $РегИт.Номенклатура IN (SELECT val FROM #ВыбТовар)";
КонецЕсли;

ТекстЗапроса=ТекстЗапроса+"
|
|UNION ALL
|
|SELECT СпрТов.CODE Номенклатура,
|       СпрГр.DESCR ТорговаяМарка,
|       СпрСклад.DESCR Склад,
|        as DateTime))),dateadd(day,1,CAST(LEFT(Жур.Date_Time_IDDoc,8) as DateTime))))-1 Период,
|       $РегОб.Количество*(1-РегОб.DEBKRED*2) НачОст,
|       0 Приход,
|       0 Расход,
|       0 РасхВнутр
|FROM $Регистр.ОстаткиТМЦ РегОб
|INNER JOIN _1SJOURN Жур ON РегОб.IDDOC=Жур.IDDOC
|INNER JOIN $Справочник.Номенклатура СпрТов ON СпрТов.ID=$РегОб.Номенклатура
|LEFT JOIN $Справочник.Номенклатура СпрГр ON СпрГр.ID=СпрТов.PARENTID
|INNER JOIN $Справочник.Склады СпрСклад ON СпрСклад.ID=$РегОб.Склад
|WHERE (Жур.DATE_TIME_IDDOC>=:НачалоМесяца) AND (Жур.DATE_TIME_IDDOC<:НачДата) AND (Жур.CLOSED & 1 = 1)
|";
Если ПустоеЗначение(ВыбСклад)=1 Тогда
Иначе    
	 ТекстЗапроса=ТекстЗапроса+" AND ($РегОб.Склад IN (SELECT val FROM #ВыбСклад))";
КонецЕсли;  
Если ПустоеЗначение(ВыбТовар)=1 Тогда
Иначе    
	 ТекстЗапроса=ТекстЗапроса+" AND ($РегОб.Номенклатура IN (SELECT val FROM #ВыбТовар))";
КонецЕсли;
ТекстЗапроса=ТекстЗапроса+"
|
|UNION ALL
|
|SELECT СпрТов.CODE Номенклатура,
|       СпрГр.DESCR ТорговаяМарка,
|       СпрСклад.DESCR Склад,
|       dateadd(month,1,dateadd(day,1-day(CAST(LEFT(Жур.Date_Time_IDDoc,8) as DateTime)),CAST(LEFT(Жур.Date_Time_IDDoc,8) as DateTime)))-1 Период,
|       0 НачОст,            
|       CASE
|         WHEN РегОб.DEBKRED=0 THEN $РегОб.Количество
|       END Приход,
|       CASE
|         WHEN РегОб.DEBKRED=1 AND $РегОб.Внутреннее=0 THEN $РегОб.Количество
|       END Расход,
|       CASE
|         WHEN РегОб.DEBKRED=1 AND $РегОб.Внутреннее=1 THEN $РегОб.Количество
|       END РасхВнутр
|FROM $Регистр.ОстаткиТМЦ РегОб
|INNER JOIN _1SJOURN Жур ON РегОб.IDDOC=Жур.IDDOC
|INNER JOIN $Справочник.Номенклатура СпрТов ON СпрТов.ID=$РегОб.Номенклатура
|LEFT JOIN $Справочник.Номенклатура СпрГр ON СпрГр.ID=СпрТов.PARENTID
|INNER JOIN $Справочник.Склады СпрСклад ON СпрСклад.ID=$РегОб.Склад
|WHERE (Жур.DATE_TIME_IDDOC>=:НачДата) AND (Жур.DATE_TIME_IDDOC<:КонДата) AND (Жур.CLOSED & 1 = 1)
|";
Если ПустоеЗначение(ВыбСклад)=1 Тогда
Иначе    
	 ТекстЗапроса=ТекстЗапроса+" AND ($РегОб.Склад IN (SELECT val FROM #ВыбСклад))";
КонецЕсли;  
Если ПустоеЗначение(ВыбТовар)=1 Тогда
Иначе    
	 ТекстЗапроса=ТекстЗапроса+" AND ($РегОб.Номенклатура IN (SELECT val FROM #ВыбТовар))";
КонецЕсли;
ТекстЗапроса=ТекстЗапроса+"
|) TMP
|GROUP BY Номенклатура,ТорговаяМарка,Склад,Период
|ORDER BY ТорговаяМарка,Номенклатура,Склад,Период ASC
|";
ТЗ = recordset.ВыполнитьИнструкцию(ТекстЗапроса);

 



в ну а сам результат выглядит примерно так - смотрите вложение!
Если вы увидите ошибки просьба не пинать  Подмигивание

  

_jpg ( 61 KB | Загрузки )
Наверх
ICQ  
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #27 - 02. Июня 2006 :: 09:04
Печать  
у меня еще один вопросик есть по выводу результатов, как получить все периоды в запросе? у меня выбирает только те периоды там где были движения?

см вложение.

Хотя там период я выбрал с 01.01.2006 по 02.02.2006.

Спасибо.
  

__1.jpg ( 64 KB | Загрузки )
__1.jpg
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #28 - 02. Июня 2006 :: 09:09
Печать  
если бы ты воспользовался ВТ $РегистрОстаткиОбороты, думаю ты бы решил свою проблему...
у нас для того что ты хотел получить в идеале используется именно эта ВТ и всего одна...
  

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


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #29 - 02. Июня 2006 :: 09:12
Печать  
да только как бы пришлось по поводу внутренних перемещений? загвостка только в них. попробовать ВТ РегистрОстаткиОбороты ОстаткиТМЦ соединить с Таблицей Регистр ОстаткиТМЦ?

Я могу получить только периодичность месяц- да это можно сделать с одной таблицей (ВТ РегистрОстаткиОбороты), а как отфильтровать тогда по реквизиту Внутреннее Таблицы ОстаткиТМЦ?
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #30 - 02. Июня 2006 :: 09:14
Печать  
я не хочу об этом уже говорить, тут достаточно говорено-переговорено по этому вопросу...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
U_zer
Экс-Участник


Re: Опять про  реквизит регистров
Ответ #31 - 02. Июня 2006 :: 09:28
Печать  
Цитата:
если бы ты воспользовался ВТ $РегистрОстаткиОбороты, думаю ты бы решил свою проблему...
у нас для того что ты хотел получить в идеале используется именно эта ВТ и всего одна...


Хмм, даже если использовать РегистрОстаткиОбороты, все равно получишь только те периоды, по которым были движения и ничего больше.
  
Наверх
 
IP записан
 
rusness
Junior Member
**
Отсутствует


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #32 - 02. Июня 2006 :: 09:36
Печать  
Не U_zer Славко прав:
посмотри четвертый параметр у РегистрОстаткиОбороты

Цитата:
<МетодДополнения>
Тип: конструкция типа ключевое слово.
Имеет смысл только когда используется разворот по периодам.
Задается один из следующих вариантов:
Движения (Actions) - в таблицу включаются обороты по каждому периоду движений,
и текущие остатки, только по тем комбинациям измерений, по которым были
движения в период расчета;
ДвиженияИГраницыПериода (ActionsAndPeriodBoundaries) - в таблицу включаются
обороты по каждому периоду движений, и текущие остатки; а также таблица
дополняется записями о ненулевых остатках на начало и/или конец на границы
периода расчета.


ок сейчас уже башка не варит - пятница все таки, в понедельник попробую как Славко посоветовал  Круглые глаза


  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Опять про  реквизит регистров
Ответ #33 - 02. Июня 2006 :: 09:47
Печать  
Весь прикол в том, что в данном случае ты железно получишь итоги по границам периода.

Если, например, период с 1 по 5, а 3-го движений не было, то в выборке это 3-е будет отсутствовать.

Об этом, кстати, уже давно известно. И неоднократно обсуждалось.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #34 - 02. Июня 2006 :: 09:54
Печать  
Цитата:
Весь прикол в том, что в данном случае ты железно получишь итоги по границам периода.

Если, например, период с 1 по 5, а 3-го движений не было, то в выборке это 3-е будет отсутствовать.

Об этом, кстати, уже давно известно. И неоднократно обсуждалось.

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

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
U_zer
Экс-Участник


Re: Опять про  реквизит регистров
Ответ #35 - 02. Июня 2006 :: 09:59
Печать  
Было бы неплохо закинуть ссылочку сюда, там вроде был приведен код запроса с дополнением дырок в периоде.
А вообще, в фак бы это!
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #36 - 02. Июня 2006 :: 10:06
Печать  
Цитата:
Было бы неплохо закинуть ссылочку сюда, там вроде был приведен код запроса с дополнением дырок в периоде.
А вообще, в фак бы это!

инициатива наказуема...  Подмигивание
  

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


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #37 - 02. Июня 2006 :: 10:07
Печать  
Славко ну ты даешь... (с юмором)  Улыбка
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #38 - 02. Июня 2006 :: 10:27
Печать  
я б дал и без юмора, но у меня просто итланд еле шаволиться...
я там в этой ветке дискутировал, так что если там, на итленде, поискть мои посты, то можно будет без труда найти эту ветку, обсуждение было в мае...
  

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


1C++ is the BeST!

Сообщений: 16
Местоположение: Moscow
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Опять про  реквизит регистров
Ответ #39 - 02. Июня 2006 :: 12:46
Печать  
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать