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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #30 - 28. Марта 2011 :: 12:40
Печать  
Я конечно могу сначала проверить совпадает ли дата конца с датой ТА. Затем если совпадают, то получить позицию ТА. Затем прибавить 1 к позиции и поставить это значение в условие ВТ. Все это можно. ... Но хотелось бы чтобы это уже было в макроподстановке ВТ. И на мой взгляд это правильно???
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #31 - 28. Марта 2011 :: 12:56
Печать  
oav писал(а) 28. Марта 2011 :: 12:40:
Я конечно могу сначала проверить совпадает ли дата конца с датой ТА. Затем если совпадают, то получить позицию ТА. Затем прибавить 1 к позиции и поставить это значение в условие ВТ. Все это можно. ... Но хотелось бы чтобы это уже было в макроподстановке ВТ. И на мой взгляд это правильно???

я не знаю кто прав Вы утверждая что при переносе документа через ТА позиция ТА равна позиции этого документа или
при этом ТА тоже немного сдвигается и становиться больше этого документа.
Но все равно в ответах уже есть несколько способов решения.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #32 - 28. Марта 2011 :: 14:01
Печать  
oav писал(а) 28. Марта 2011 :: 06:32:
Я так понимаю это позиция последнего документа '201103259TJ70G     0  0' .

это не похоже на позицию документа, т.к. документов с iddoc = '     0' в нормальных условиях не бывает.
это более походит на позицию времени.
  

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #33 - 28. Марта 2011 :: 14:01
Печать  
у себя проверил:
select *
from $РегистрОстаткиОбороты.Рег(:НачДата, :НачДата~,,ДвиженияИГраницыПериода)
,где НачДата = дата ТА.
Работает правильно
  

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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #34 - 28. Марта 2011 :: 14:14
Печать  
Вот это точно позиция времени 201103259TJ70G
9TJ70G это час , мин , сек и еще * 10000 и приведенное 36 сис. счисления. Это я проверил. От того что это позиция времени документа, на котором установлена ТА ничего не меняется. Условие в запросе "меньше" а не "меньше или равно". В этом проблема!
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #35 - 28. Марта 2011 :: 14:18
Печать  
если бы в запросе была позиция документа, а не времени, то было бы
не <'201103259TJ70G     0  0'
а <'201103259TJ70Gxxxxxx  0'
и тогда бы этот документ попал в выборку
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #36 - 28. Марта 2011 :: 14:18
Печать  
так можешь вообще дату сам сформировать
'20110331z' и передавать ее в качестве параметра.
(как утверждает trad все это можно и не делать итак все работает.
можешь сам проверить это утверждение в своей бд )
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #37 - 28. Марта 2011 :: 14:47
Печать  
Вопрос в том , чтобы в "from $РегистрОстаткиОбороты.Рег(:НачДата, :НачДата~,,ДвиженияИГраницыПериода)" я, не думал о том равна дата конца дате ТА или меньше ее , а просто подставлять выбранную мной дату, а макроподстановка обрабатывала эту дату и подставляла то что надо. По моему это вполне нормальное желание. Иначе зачем писать макроподстановку, если она где то делает нужную подстановку а, где то я должен сам это делать...!
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #38 - 28. Марта 2011 :: 15:10
Печать  
А к с та те! В запросе стоит  < '201103259TJ70G     0  0' поэтому наверное и документ не попадает т.к. '201103259TJ70Gxxxxxx  0' это позиция больше!!!!!
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #39 - 28. Марта 2011 :: 15:52
Печать  
Да похоже действительно ошибка
1cpp версия 3.2.3.1
вот какие делал тесты ( причем проверки идут в самой виртуальной функции )
Цитата:
ТА Стояла на нач дня 31.12.2011
провел документ за ТА
после время документа и время ТА равны '201112318B3QW0 16CYMОФІ'



|:ВыбДата
Запрос.УстановитьТекстовыйПараметр("ВыбДата", "20111031z");
sql
where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc < '20111031z'
----------------------
|:ВыбДата
Запрос.УстановитьТекстовыйПараметр("ВыбДата", "20111130z");
sql
where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc < '20111130z'
----------------------
|:ВыбДата
Запрос.УстановитьТекстовыйПараметр("ВыбДата", "20111231z");
sql
where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc < '201112318B3QW0 16CYMОФІ'
----------------------
|,:ВыбДата~
Запрос.УстановитьТекстовыйПараметр("ВыбДата", ПолучитьПозициюТА());
sql
where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc < '201112318B3QW0 16CYMОФІ'
----------------------
|,:ВыбДата~
Запрос.УстановитьТекстовыйПараметр("ВыбДата",  ПолучитьДатуТА());
sql
where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc < '201112318B3QW0 16CYMОФІ'



Надо если  ПозицияВремени >= Позиции ТА то знак
менять на меньше равно т.е  вместо  <

where j99_vt.date_time_iddoc > '20110301' and j99_vt.date_time_iddoc <= '201112318B3QW0 16CYMОФІ'


или второй вариант как исправить ( он мне кажеться лучше чем первый )
Надо если  ПозицияВремени >= Позиции ТА условие
<  ПозицияТА  убираем совсем.
т.е должно генериться условие

where j99_vt.date_time_iddoc > '20110301'
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #40 - 28. Марта 2011 :: 17:15
Печать  
Z1 писал(а) 28. Марта 2011 :: 15:52:
Надо если  ПозицияВремени >= Позиции ТА то знак
менять на меньше равно т.е  вместо  <

Не надо.  Подмигивание Это будет ошибкой.
  

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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #41 - 29. Марта 2011 :: 03:52
Печать  
Кто нибудь может сказать, какова перспектива исправления этой неприятности?????
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #42 - 29. Марта 2011 :: 04:52
Печать  
так нету неприятности то никакой.
ты лучше разберись почему у тебя в запросе подставляется позиция времени а не позиция документа
  

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


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #43 - 29. Марта 2011 :: 05:07
Печать  
Я беру и просто тупо подставляю в запрос
ТекстЗапроса = "
|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 #ФильтрТовар)
                |";

RS.УстановитьТекстовыйПараметр("НачДата", ТекДата);
где ТекДата - текущая дата
Она может совпадать с датой ТА!
И если она совпадает с датой ТА , то на SQL отправляется запрос с условием  < '201103259TJ70G     0  0'
где 201103259TJ70G     0  0 позиция времени последнего документа, по этому движение по последнему документу и не попадает в запрос!!! Кажется я все понятно написал......
Хотелось бы , что бы в этом случае, макроподстановка, которая реализована в ВТ сама подставляла позицию последнего документа +1 , а не я должен был бы за этим следить!!!!
  
Наверх
 
IP записан
 
oav
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 97
Местоположение: Пермь
Зарегистрирован: 09. Ноября 2009
Пол: Мужской
Re: Виртуальные таблицы не учитывает последнего движения
Ответ #44 - 29. Марта 2011 :: 05:12
Печать  
Если это очень сложно ?! Так Вы так и напишите.... Хотя на мой взгляд это не так и сложно!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 ... 7
ОтправитьПечать