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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #30 - 07. Сентября 2006 :: 07:47
Печать  
Цитата:
в хелпе все достаочно однозначно написано... ведь ты для чего то к ГраницеРасчета прилепил ~
вот если сделаешь без этого значка, будет тебе на документ, а с ним, у тебя по документ...
да, я вот сейчас почитал доку, таки нельзя указывать ФлагСмещения=0, что я тебе и посоветовал, но потом я же тебе посоветовал исправить так чтобы работало, а согласно доке тебе нужно воспользоваться:
СформироватьПозициюДокумента(<Дата>,<Час>,<Мин>,<Сек>,<ФлагКонцаСекунды>)
Назначение:
Формирует и возвращает позицию документа согласно переданным параметрам.
Параметры:
<Дата> - дата, на которую формируется позиция документа,
<Час> - час, на который формируется позиция документа,
<Мин> - минута, на которую формируется позиция документа,
<Сек> - секунда, на которую формируется позиция документа.
<ФлагКонцаСекунды> - необязательный параметр. Число: 1 - позиция будет браться от следующей секунды. 0 - позиция от указан-ной секунды. Значение по умолчанию - 0.


В базе тьма документов реализации с одинаковой датой и одинаковым временем, например 16.08.06 22:00:00
Как в таком случае сформировать позицию именно на начало того документа который мне нужен?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #31 - 07. Сентября 2006 :: 07:50
Печать  
Zima писал(а) 07. Сентября 2006 :: 03:59:
Заметил интересную вещь - если установить ТА на 31.08, то для всех документов начиная с 16.08 я получаю верные остатки.

А если включить ОбратныйРасчетОтТА()?

Проверь, верны ли движения документов, полученных таким запросом:
Код
Выбрать все
SELECT DISTINCT Товары.IDDOC [Документ $Документ]
	, Товары.IDDOCDEF Документ_вид
FROM $Регистр.Товары AS Товары
WHERE (Товары.DATE_TIME_IDDOC > '20060801')
	AND (Товары.DATE_TIME_IDDOC < '20060831Z')
	AND (($Товары.Себестоимость > 100000000) OR ($Товары.Себестоимость < -100000000)) 


Если верны или их нет - увеличивай разрядность.
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #32 - 07. Сентября 2006 :: 07:54
Печать  
Да и еще, ребят, очень прошу, кто-нибудь может мне однозначно сказать, как избавиться от появления этих 99999999.999? Я вообще не понимаю, каким образом получается эта цифра, зачем рассчитывать остатки от конца периода, если это вообще неверно. Извините, страшно болит голова, мышление отключено.  Печаль

"при получении остатков на или по дату, близкую к концу текущего периода - сохранения остатков, используются остатки на конец текущего периода "

Зачем? Если я перепровожу документ задним числом, логично предположить, что остатки на конец периода неверны.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #33 - 07. Сентября 2006 :: 07:57
Печать  
кажется понял, ему нужно в УтановитьТекстовыйПараметр в качестве параметра передавать документ, а не позицию документа? я просто не совсем понимаю то, что написано в документации, думаю не я один такой...
а когда он передает момент времени с модификатором или позицию дока, то это получается "по"...
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #34 - 07. Сентября 2006 :: 08:00
Печать  
Zima писал(а) 07. Сентября 2006 :: 07:54:
Да и еще, ребят, очень прошу, кто-нибудь может мне однозначно сказать, как избавиться от появления этих 99999999.999? Я вообще не понимаю, каким образом получается эта цифра, зачем рассчитывать остатки от конца периода, если это вообще неверно. Извините, страшно болит голова, мышление отключено.  Печаль

Как избавиться - см. выше.
Расчитывать остатки от конца периода - верно. Разница лишь в том, что во встроенных в 1С методах расчёта ты наступишь на грабли на месяц (на расчётный период) позже.

Выздоравливай. Улыбка
  

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



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #35 - 07. Сентября 2006 :: 08:01
Печать  
Zima писал(а) 07. Сентября 2006 :: 07:47:
В базе тьма документов реализации с одинаковой датой и одинаковым временем, например 16.08.06 22:00:00
Как в таком случае сформировать позицию именно на начало того документа который мне нужен?

судя по высказываниям  trad-а и более вдумчивом прочтении доки, думаю:
Код
Выбрать все
УстановитьТекстовыйПараметр("ПозицияДока",док.ТекущийДокумент()) 


  

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


Re: Получаю неверные остатки запросом
Ответ #36 - 07. Сентября 2006 :: 08:07
Печать  
Цитата:
а когда он передает момент времени с модификатором или позицию дока, то это получается "по"...


При передаче позиции, модификатор нужен, тебе же объяснили уже.

А вообще лучше использовать MW.ПолучитьДатуВремяИДДок().
  
Наверх
 
IP записан
 
Zima
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #37 - 07. Сентября 2006 :: 08:21
Печать  
berezdetsky писал(а) 07. Сентября 2006 :: 08:00:
Zima писал(а) 07. Сентября 2006 :: 07:54:
Да и еще, ребят, очень прошу, кто-нибудь может мне однозначно сказать, как избавиться от появления этих 99999999.999? Я вообще не понимаю, каким образом получается эта цифра, зачем рассчитывать остатки от конца периода, если это вообще неверно. Извините, страшно болит голова, мышление отключено.  Печаль

Как избавиться - см. выше.
Расчитывать остатки от конца периода - верно. Разница лишь в том, что во встроенных в 1С методах расчёта ты наступишь на грабли на месяц (на расчётный период) позже.

Выздоравливай. Улыбка


А можно ткнуть меня носом, где это "выше"?

Почему верно, у меня ТА стоит на месяц вперед, все работают задним числом. По-любому остаток на конец периода неверный. Если формировать отчет по готовому и сведенному периоду - да, оптимизация разумна и уместна, но если пепероводятся документы задним числом?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #38 - 07. Сентября 2006 :: 08:34
Печать  
Zima писал(а) 07. Сентября 2006 :: 08:21:
Почему верно, у меня ТА стоит на месяц вперед, все работают задним числом. По-любому остаток на конец периода неверный.

Из первого предложения второе не следует. Когда ты разберёшься, что хранится в таблицах RGxxx и как расчитываются остатки на момент времени, ты поймёшь: расчёт от начала или от конца периода - это всего лишь вопрос оптимизации. А не верные данные в RGxxx - это не проблема метода расчёта остатков.
  

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



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #39 - 07. Сентября 2006 :: 08:40
Печать  
да он уже вроде разобрался, у него проблема из за того что в ВТ идет обратный отсчет на даты, близкие к концу периода...
вижу 2 выхода:
1. даать возможность в ВТ параметром выбирать метод оптимизации
2. получать остатки без ВТ, т.е. самому написать запрос. котороый будет делать расчет с начала периода, если граница расчета не попадает в границы периодов...
думаю что вариант 1 реализовываться не будет
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #40 - 21. Мая 2010 :: 12:14
Печать  
Цитата:
Цитата:
а когда он передает момент времени с модификатором или позицию дока, то это получается "по"...


При передаче позиции, модификатор нужен, тебе же объяснили уже.

А вообще лучше использовать MW.ПолучитьДатуВремяИДДок().

Кстати таки не лучше .....
Я тоже наступил на грабли, на которые народ 4 года назад наступал ...... "первопроходимец" блин!  Улыбка
И вот что выяснил ..... может кому таки интересно еще
Код
Выбрать все
.........
	|  $РегистрОстатки.ОстаткиТоваров(:НаДату~,
............
	Запрос.УстановитьТекстовыйПараметр("НаДату", ВыбДок.ПолучитьПозицию());
 


выдает правильные остатки т.е. на начало позиции документа ВыбДок. При этом в обработанном запросе получаем следующее условие
Код
Выбрать все
where j14820_vt.date_time_iddoc >= '2009122816VF9S  NHF8KRC' and j14820_vt.date_time_iddoc < '20091231Z'
 


И тут-же делаем
Код
Выбрать все
Сообщить(МД.ПолучитьДатуВремяИдДок(ВыбДок.ПолучитьПозицию()));
 


и получаем
2009122816VF9S
т.е. позиция начала секунды а не документа как я понимаю Печаль В результате неправильные остатки, т.к. у меня в этой секунде есть еще 2 документа впереди
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать