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



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

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

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


но мне почему то кажется что дело не в этом, хотя именно позициядока-1 меня и смущала с самого начала, но подумав решил что это все равно одно и тоже... хотя могу и ошибаться...
  

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


I Love YaBB 2!

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

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


А можно поподробнее про "переполняющий ресурс". Что это такое? Как он может что-то переполнять?
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #17 - 06. Сентября 2006 :: 12:43
Печать  
Zima писал(а) 06. Сентября 2006 :: 12:41:
А можно поподробнее про "переполняющий ресурс". Что это такое? Как он может что-то переполнять?

ты сначала попробуй запустить мой вариант втоего прямого запроса, а уж потом и сам все поймешь, если он таки даст другой резуьтат...
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #18 - 06. Сентября 2006 :: 12:58
Печать  
Цитата:
Zima писал(а) 06. Сентября 2006 :: 12:41:
А можно поподробнее про "переполняющий ресурс". Что это такое? Как он может что-то переполнять?

ты сначала попробуй запустить мой вариант втоего прямого запроса, а уж потом и сам все поймешь, если он таки даст другой резуьтат...


А он на этот код вот так ругается
тз = RS.ВыполнитьИнструкцию(ТекстЗапроса);
{Глобальный модуль(8299)}: State 22007, native 241, message [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #19 - 06. Сентября 2006 :: 13:02
Печать  
Zima писал(а) 06. Сентября 2006 :: 12:41:
А можно поподробнее про "переполняющий ресурс". Что это такое? Как он может что-то переполнять?


Посмотри текст любой процедуры _1sp_RGxxx_Change. Все движения регистра учитываются (суммируются) в таблице остатков в разрезе периодов. Если сумма движений и остатков не помещается в установленную (в конфигураторе) разрядность, результат сложения замещается на число, содержащее 9 во всех разрядах.
  

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



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #20 - 06. Сентября 2006 :: 13:17
Печать  
Zima писал(а) 06. Сентября 2006 :: 12:58:
А он на этот код вот так ругается
тз = RS.ВыполнитьИнструкцию(ТекстЗапроса);
{Глобальный модуль(8299)}: State 22007, native 241, message [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.

ну так исправь как нужно... сделай полный аналог получения остатков, получай остатки на текущий документ, а не по текущий документ... я мог что то ам не так исправить...
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #21 - 06. Сентября 2006 :: 13:17
Печать  
berezdetsky писал(а) 06. Сентября 2006 :: 13:02:
Посмотри текст любой процедуры _1sp_RGxxx_Change. Все движения регистра учитываются (суммируются) в таблице остатков в разрезе периодов. Если сумма движений и остатков не помещается в установленную (в конфигураторе) разрядность, результат сложения замещается на число, содержащее 9 во всех разрядах.


Так а не проще ли тогда просто увеличить разрядность ресурсов в регистре для решения проблемы?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #22 - 06. Сентября 2006 :: 13:28
Печать  
Zima писал(а) 06. Сентября 2006 :: 13:17:
Так а не проще ли тогда просто увеличить разрядность ресурсов в регистре для решения проблемы?

Не обязательно проблема в недостаточной разрядности. Это может быть ошибка расчёта. Но это уже частности.
  

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


I Love YaBB 2!

Сообщений: 13
Зарегистрирован: 06. Сентября 2006
Re: Получаю неверные остатки запросом
Ответ #23 - 07. Сентября 2006 :: 03:59
Печать  
Заметил интересную вещь - если установить ТА на 31.08, то для всех документов начиная с 16.08 я получаю верные остатки.

Я не совсем понял как можно получать остатки от конца периода. Точнее зачем это вообще нужно.
Не разобрался как сделать запрос, который позволит считать отстатки от начала периода и как сделать запрос, который будет давать остатки на документ а не по документ.
Может подскажете как? В хелпе все очень неоднозначно описано.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



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

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #25 - 07. Сентября 2006 :: 07:07
Печать  
Цитата:
вот если сделаешь без этого значка, будет тебе на документ
нет, не угадал
  

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



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

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #27 - 07. Сентября 2006 :: 07:38
Печать  
Цитата:
что значит не угадал? я не гадал, я доку читал. поясни что я не так вычитал?

параметр запроса типа строка без модификатора никакого отношения к позиции документа не имеет
  

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #28 - 07. Сентября 2006 :: 07:42
Печать  
+
чтобы получать в запросе позиции на/по документ нужно всегда использовать первый модификатор ~
а вот при установке параметра уже вызывать СформироватьПозициюДокумента с соответствующими параметрами
  

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получаю неверные остатки запросом
Ответ #29 - 07. Сентября 2006 :: 07:43
Печать  
Цитата:
что значит не угадал? я не гадал, я доку читал.
в доке этого нет. значит прочитать не мог. значит выдумал сам. суть - гадал
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать