Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Остатки SMGOODS отличаются от остатков по документам : Супермаг Плюс (Супермаг 2000)

29.03.2024 10:18


09.11.2015 11:53
DMaslov
 
Обнаружил такое.

Очевидная причина - кривизна рук программиста. Чего-то полез править, и недоправил.

Но, может, кто подскажет какие-то штатные (без залезания в БД руками) ситуации, когда такое получается.

SQL код:
select rest_doc.articlerest_doc.quantitysmgoods.quantity
  from 
(
select spc.articlenvl(sum(
                               
decode(head.doctype,
                                      
'WI'spc.quantity,
                                      
'CR'spc.quantity,
                                      
'CS', -spc.quantity,
                                      
'WO', -spc.quantity,
                                      
0
                                     
)
                           ), 
0
                       
quantity
 
  from smdocuments head
smspec spc
 where head
.doctype spc.doctype
   
and head.id spc.docid
   
and (head.location or head.locationfrom or head.locationto 6)
 
group by spc.article
       
rest_docsmgoods
 where rest_doc
.article smgoods.article
   
and smgoods.storeloc 6
   
and rest_doc.quantity != smgoods.quantity 
09.11.2015 11:58
Mtirt
 
А вы уверены, что все документы движения товара учли?
Нет перемещений? Нет производства?
09.11.2015 17:05
DMaslov
 
Просто так я проверять не взялся бы, разумеется. Заметили по некоторым артикулам такое расхождение, и мне сообщили.

SQL код:
select head.doctypeap.appnamecount(1)
  
from smdocuments headssdoctypes dtsmclientapps ap
 where head
.doctype dt.doctype
   
and dt.appmodule ap.id
 group by head
.doctypeap.appname 
09.11.2015 17:11
Mtirt
 
Штатно, увы, уже много лет остатки не разбегаются...
Кстати, в исходном запросе статусы документов учитываются? Неужели нет заблокированных или в черновике приходов/расходов?
Штатная процедура наведения порядка находится в адм.модуле и называется "Перерасчет остатков".
09.11.2015 17:13
OlegON
 
"Не смешно, зато про войну" :)
Вопрос-то был, что в первом запросе учитываются, например, не все документы товародвижения. Сравнивать теплое с мягким нет смысла.
Для начала прогоните перерасчет остатков в этом месте хранения, чтобы не ломать голову, что, кто и где там напортачил.
А потом сядьте узким кругом принимающих решение лиц и определитесь, зачем вам такой геморрой с ручной заменой шестеренок на ходу.
09.11.2015 17:29
DMaslov
 
> Неужели нет заблокированных или в черновике приходов/расходов?

Это забыл учесть, спасибо.

> Вопрос-то был, что в первом запросе учитываются, например, не все документы товародвижения.

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

> прогоните перерасчет остатков в этом месте хранения, чтобы не ломать голову, что, кто и где там напортачил.

По сути, мой запрос, с напильником, решает ту же задачу.

> Штатно, увы, уже много лет остатки не разбегаются...

Ясно.
09.11.2015 17:38
Mtirt
 
Цитата:
DMaslov
По сути, мой запрос, с напильником, решает ту же задачу.
Не решает, так как статусы документов не учитывает.

С изменениями скриптами smgoods я бы поступала поосторожнее.
Там еще ожидаемое количество есть, которое меняется заказами и приходами. Еще и его можно "порушить". А еще, что будет, если кто-то во время изменения остаток надумает исправить документ?

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

Ну и хорошо бы сделать ревизию всего собственного кода на предмет выявления источника расхождения остатков.
09.11.2015 17:39
Mtirt
 
Цитата:
OlegON "Не смешно, зато про войну" :)
Вопрос-то был, что в первом запросе учитываются, например, не все документы товародвижения.
Судя по второму запросу и перчисленным типам документов учитываются все имеющиеся в базе.
09.11.2015 18:31
DMaslov
 
Цитата:
Mtirt Не решает, так как статусы документов не учитывает.
С напильником, head.docstate = 3, и блокировки.

Цитата:
делается при монопольном доступе к базе.
Да, я уже понял, что у СуперМАГа - это решение всех проблем.
09.11.2015 19:03
OlegON
 
Цитата:
DMaslov Да, я уже понял, что у СуперМАГа - это решение всех проблем.
Надо отметить, что проблема в большинстве случаев только одна - кривые руки, полагающие, что если что-то крутится, то это обязательно надо покрутить :)
Часовой пояс GMT +3, время: 10:18.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.