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