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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Получаю неверные остатки запросом
06. Сентября 2006 :: 06:26
Печать  
Вот такой запрос:
Код
Выбрать все
Функция _ПолучитьОстаткиПоТоварам(док, ЮрЛицо, Склад) Экспорт
	ТекстЗапроса = "
	|SELECT
	|	рег.Номенклатура AS [Номенклатура $Справочник.Номенклатура],
	|	рег.КоличествоОстаток AS Количество,
	|	рег.СебестоимостьОстаток AS Себестоимость
	|FROM
	|	$РегистрОстатки.Товары(:ВыбДата~,, ЮрЛицо = :ЮрЛицо AND Склад = :Склад, Номенклатура, (Количество, Себестоимость)) AS рег
	|
	|";
	RS.УстановитьТекстовыйПараметр("ЮрЛицо", ЮрЛицо);
	RS.УстановитьТекстовыйПараметр("Склад", Склад);
	RS.УстановитьТекстовыйПараметр("ВыбДата", СформироватьПозициюДокумента(док, -1));
	тз = RS.ВыполнитьИнструкцию(ТекстЗапроса);
	Возврат тз;
КонецФункции
 



Эта функция успешно работает уже несколько месяцев.
Буквально на днях обнаружил странную вещь, причем только по некоторым позициям товаров.
Если делать запрос стандартным 1Совским способом, то я получаю остаток:
   Количество: -0.438
   Сумма: 0
Если я делаю запрос вышеприведенным способом, то я получаю остаток:
    Количество: -0.438
    Сумма: 5764704214.93018

Релиз 1cpp.1816fb03, та же фигня и на других более поздних релизах.
В чем может быть дело?
  
Наверх
 
IP записан
 
InterMax
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #1 - 06. Сентября 2006 :: 06:41
Печать  
Текст запроса SQL в студию!
  
Наверх
 
IP записан
 
Zima
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #2 - 06. Сентября 2006 :: 06:52
Печать  
Код
Выбрать все
SELECT
	рег.Номенклатура AS [Номенклатура $Справочник.Номенклатура],
	рег.КоличествоОстаток AS Количество,
	рег.СебестоимостьОстаток AS Себестоимость
FROM
	(
select
rr36674_vt.sp36667 as Номенклатура,
sum(rr36674_vt.sp36670) as КоличествоОстаток,
sum(rr36674_vt.sp36671) as СебестоимостьОстаток
from (
select
rg36674_vt.sp36667,
rg36674_vt.sp36670,
rg36674_vt.sp36671
from rg36674 as rg36674_vt (nolock)
where rg36674_vt.period={d '2006-08-01'}
and (rg36674_vt.sp36668 = '    36C00' AND rg36674_vt.sp36666 = '    13C00')
union all
select
ra36674_vt.sp36667,
case ra36674_vt.debkred when 1 then ra36674_vt.sp36670 else -ra36674_vt.sp36670 end,
case ra36674_vt.debkred when 1 then ra36674_vt.sp36671 else -ra36674_vt.sp36671 end
from ra36674 as ra36674_vt (nolock)
where ra36674_vt.date_time_iddoc >= '20060816D3JB40  AYEXC0 ' and ra36674_vt.date_time_iddoc < '20060831Z'
and (ra36674_vt.sp36668 = '    36C00' AND ra36674_vt.sp36666 = '    13C00')
) as rr36674_vt
group by
rr36674_vt.sp36667
having
sum(rr36674_vt.sp36670) <> 0 or
sum(rr36674_vt.sp36671) <> 0
) as рег
 

  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



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

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #4 - 06. Сентября 2006 :: 08:03
Печать  
Вот так, например:

Код
Выбрать все
	реги = СоздатьОбъект("Регистры");
	рег = реги.Товары;
	рег.УстановитьЗначениеФильтра("ЮрЛицо", ЮрЛицо, 1);
	рег.УстановитьЗначениеФильтра("Склад", Склад, 1);
	Если ИтогиАктуальны() = 0 Тогда
		рег.ВременныйРасчет();
		реги.Актуальность(1);
		реги.РассчитатьРегистрыНа(ТекущийДокумент());
	КонецЕсли;
	тз = СоздатьОбъект("ТаблицаЗначений");
	рег.ВыгрузитьИтоги(тз, 1, 1);
 

  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #5 - 06. Сентября 2006 :: 09:12
Печать  
воде никаких различий нет, а релиз 1С у тя часом не 18-й?
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #6 - 06. Сентября 2006 :: 09:14
Печать  
Релиз 25й.
Все крутится на серваке 2003м.
Базу я выгружал, прибивал и загружал по-новой - без толку.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



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

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #8 - 06. Сентября 2006 :: 09:58
Печать  
Все примитивно до безобразия

Регистр Товары.
Измерения - ЮрЛицо, Склад, Номенклатура, Фирма (справочники)
Ресурсы - Количество, Себестоимость, НДС, Сумма
Реквизиты - ВидОперации (перечисление)

Регистр остатков, быстрая обработка движений.
Отборов по измерениям нет.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #9 - 06. Сентября 2006 :: 10:40
Печать  
и ты хочешь сказать что штатно:
тз.Итог("Себестоимость")=0
тз.Итог("Количество")=-0.438
а не:
тз.Итог("Себестоимость")=5764704214.93018
тз.Итог("Количество")=-0.438

не верю...
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #10 - 06. Сентября 2006 :: 11:11
Печать  
Ну как "не верю"...
Злой
Врать-то мне зачем???
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



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

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


Re: Получаю неверные остатки запросом
Ответ #12 - 06. Сентября 2006 :: 11:27
Печать  
Zima писал(а) 06. Сентября 2006 :: 11:11:
Ну как "не верю"...
Злой
Врать-то мне зачем???


Попробуй dbcc checkdb с опцией REPAIR_ALLOW_DATA_LOSS
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #13 - 06. Сентября 2006 :: 11:45
Печать  
Цитата:
Попробуй dbcc checkdb с опцией REPAIR_ALLOW_DATA_LOSS

он же уже базу выгружал-загружал и не помогло. А чекать свежую базу имхо нет смысла.
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #14 - 06. Сентября 2006 :: 11:46
Печать  
Твой SQL-запрос считает (для данного документа) от конца периода, а стандартный 1С-запрос - всегда от начала. При переполнении ресурса его значение искажается (устанавливается в 9 во всех разрядах). Т.о. результаты запросов 1С и 1С++ на документ во второй половине периода могут не совпадать. При чём документ, переполняющий ресурс, может быть позже расчётного.

Найди и обезвредь документ, переполняющий ресурс "Себестоимость" (если это ещё не сделано), после чего пересчитай итоги.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать