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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Виртуальные таблицы не учитывает последнего движения
28. Марта 2011 :: 06:32
Печать  
При использовании Виртуальных таблиц для получения остатков и оборотов по регистру остатков за последний день в обороты не попадают движения выполненные последним документом. Это возможно как то поправить или надо как то выкручиваться.

from ra99 as ra99_vt (nolock)
inner join _1sjourn as j99_vt (nolock) on j99_vt.iddoc = ra99_vt.iddoc
where j99_vt.date_time_iddoc > '20110325' and j99_vt.date_time_iddoc < '201103259TJ70G     0  0'
and j99_vt.rf99 = 0x1
and (ra99_vt.sp3603='     0   ')

Я так понимаю это позиция последнего документа '201103259TJ70G     0  0' . Вот по ней и не попадают движения

Может что то посоветуете????
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #1 - 28. Марта 2011 :: 06:50
Печать  
так поставь знак <=
Либо (что еще лучше ) можно использовать Дт~ (через      УстановитьТекстовыйПараметр )
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #2 - 28. Марта 2011 :: 07:33
Печать  
Это я написал то что формируют Виртуальные таблицы. Это не мой запрос!!! А конечную дату я ставлю с модификатором ДатаКон~
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #3 - 28. Марта 2011 :: 07:34
Печать  
В том то и дело, что бы исправить Виртуальные таблицы.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #4 - 28. Марта 2011 :: 07:49
Печать  
oav писал(а) 28. Марта 2011 :: 07:34:
В том то и дело, что бы исправить Виртуальные таблицы.

А какая у Вас  версия 1cpp ( сам не пользуюсь витр функциями)?
Может в последних версиях уже исправили ?
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #5 - 28. Марта 2011 :: 07:54
Печать  
И в 2,5 и в 3,2 везде одна и та же ошибка!
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #6 - 28. Марта 2011 :: 07:58
Печать  
oav писал(а) 28. Марта 2011 :: 07:54:
И в 2,5 и в 3,2 везде одна и та же ошибка!

ну тогда оформляй тестовый пример с ошибкой в багзилу.
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #7 - 28. Марта 2011 :: 08:23
Печать  
Это очень плохо...........
Ждать нет времени!
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #8 - 28. Марта 2011 :: 08:30
Печать  
Пиши запрос руками, без ВТ.. делов то.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #9 - 28. Марта 2011 :: 08:33
Печать  
oav писал(а) 28. Марта 2011 :: 08:23:
Это очень плохо...........
Ждать нет времени!

Ога. Когда нет времени на чтение документации - это очень плохо.
  

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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #10 - 28. Марта 2011 :: 08:45
Печать  
Если бы это было все просто, то вот такой запрос да еще в разрезе дней

ТекстЗапроса = "
|SELECT
|      СпрТовар.Code  as code,
|   CAST(:НачДата as datetime) as curr_date,
|      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеНачальныйОстаток as beg_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеПриход           as in_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеРасход           as out_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеКонечныйОстаток  as end_amount,
                 |      Рег.ОстатокТовараНаСкладеНачальныйОстаток as beg_rest,
                 |      Рег.ОстатокТовараНаСкладеПриход as in_qty,
                 |      Рег.ОстатокТовараНаСкладеРасход as out_qty,
                 |      Рег.ОстатокТовараНаСкладеКонечныйОстаток as end_rest
                 |FROM
                 |  а,,Фирма=$ПустойИД,(Товар,Склад),(ОстатокТовараНаСкладе)) as Рег
                 |INNER JOIN
                 |      $Справочник.Номенклатура as СпрТовар ON СпрТовар.ID = Рег.Товар      
                 |                  AND СпрТовар.Code IN (SELECT Val FROM #ФильтрТовар)
                 |";            
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #11 - 28. Марта 2011 :: 10:22
Печать  
Цитата:
<КонецПериода>
Тип: значение.
Строка, представляющая период или момент времени во внутреннем формате 1С.
Если передан период времени (дата, позиция документа), он в расчет не включается.
Для того чтобы он включался в расчет нужно воспользоваться модификатором, или предварительно сформировать момент времени (См. СформироватьПозициюДокумента()).
По умолчанию точка актуальности.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #12 - 28. Марта 2011 :: 10:25
Печать  
Цитата:
...ОстаткиТоваров(:НачДата,:НачДата~,,ДвиженияИГраницыПериод...

Полагаю параметр НачДата  - все таки типа Дата, а не позиция.
Поэтому, если применен первый модификатор ~, то ВТ должна выдавать весь день включая послений док.
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #13 - 28. Марта 2011 :: 11:10
Печать  
oav писал(а) 28. Марта 2011 :: 08:45:
Если бы это было все просто, то вот такой запрос да еще в разрезе дней

ТекстЗапроса = "
|SELECT
|      СпрТовар.Code  as code,
|   CAST(:НачДата as datetime) as curr_date,
|      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеНачальныйОстаток as beg_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеПриход           as in_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеРасход           as out_amount,
                 |      $ПоследнееЗначение.Номенклатура.ЦенаПриобретенияИстория(СпрТовар.ID, :НачДата)*Рег.ОстатокТовараНаСкладеКонечныйОстаток  as end_amount,
                 |      Рег.ОстатокТовараНаСкладеНачальныйОстаток as beg_rest,
                 |      Рег.ОстатокТовараНаСкладеПриход as in_qty,
                 |      Рег.ОстатокТовараНаСкладеРасход as out_qty,
                 |      Рег.ОстатокТовараНаСкладеКонечныйОстаток as end_rest
                 |FROM
                 | да,,Фирма=$ПустойИД,(Товар,Склад),(ОстатокТовараНаСкладе)) as Рег
                 |INNER JOIN
                 |      $Справочник.Номенклатура as СпрТовар ON СпрТовар.ID = Рег.Товар      
                 |                  AND СпрТовар.Code IN (SELECT Val FROM #ФильтрТовар)
                 |";            


так поставь
Запрос.Отладка(1);
и получишь свой текст запроса
а) В нем проверишь условие на дату
б) этот запрос уже можешь дорабатывать под свои потребности


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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #14 - 28. Марта 2011 :: 11:23
Печать  
Я так и сделал. Смотри начало.... Если точка акт. меньше конца даты то подставляется точка акт. И это правильно.! Но условие сравнения стоит не <=, а просто < !!! По этому и движения по последнему документу не попадают. А как следствие не правильно считается и начальный остаток. Конечный остаток считается правильно, а если нет движения то начальный остаток не тот. Если смотреть по дням, то конечный остаток предыдущего дня не равен, начальному остатку последнего дня. Вот в чем проблема. Хотелось, что бы ВТ работали правильно. Очень удобно. Конечно можно и самому запрос составить. Но зачем тогда ВТ????
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 7
ОтправитьПечать