03.04.2007 12:30
dmware
 
Подскажите пожалуйста, с какими таблицами работает этот отчет и вообще по какому принципу определяются остатки. Мне нужно написать такой же вот запрос...
Написал вот нечто вроде этого:

Код:
select SACARDCLASS.TREE,
        SACARDCLASS.NAME,
        SMCARD.NAME,
        SMCARD.ARTICLE,
        SMGOODS.QUANTITY,
        SMGOODS.STORELOC
   from SACARDCLASS,
        SMCARD,
        SMGOODS,
        SMSTORELOCATIONS

  where SMSTORELOCATIONS.ID = SMGOODS.STORELOC
        AND SMGOODS.ARTICLE = SMCARD.ARTICLE
        AND SMCARD.IDCLASS = SACARDCLASS.ID
        AND SACARDCLASS.ID = SMCARD.IDCLASS
        AND SMCARD.RECEIPTOK='1'
        AND SMGOODS.STORELOC IN(6, 7)
        AND SMCARD.Article IN(
        SELECT
        SMCARD.ARTICLE
        FROM
        SMCARD,
        SACARDCLASS
        WHERE SMCARD.IDCLASS = SACARDCLASS.ID
        AND SACARDCLASS.TREE LIKE '5.3.%')
        AND SMCARD.ACCEPTED=1
 order by SMGOODS.STORELOC ASC
Таким образом получаю те данные, что можно увидеть в Супермаге в разделе Карточки->Остатки.

Из описания стандартного отчета:
...В отчете "Остатки" анализируются полностью оприходованные документы и документы со статусом "принят на складе"...

Следовательно, SMGOODS, SMCARD (для отображения наименования), SMSTORELOCATIONS (для получения мест хранения) и... привязать еще SMSPEC и SMDOCUMENTS? А в последней уже анализировать поле DOCSTATE? Или я не там смотрю?
03.04.2007 16:09
dmware
 
Выбрал конкретный артикул по конкретному месту хранения, просматриваю документы в разделе Карточки->Документы. Все документы, которые там отображены в статусе "двух зеленых галочек". Теперь здесь же в разделе остатки: 21 единица, а по отчету: 6.
Почему?? Где копать? Какие еще документы могут быть не учтены и как их найти?
03.04.2007 16:23
inna
 
сделай для начала как то пороще, может
select sum(QUANTITY) from smgoods where article=... and STORELOC=.... для проверки
и AND SMCARD.IDCLASS = SACARDCLASS.ID
AND SACARDCLASS.ID = SMCARD.IDCLASS напрягает. Может конечно и можно так -но зачем?
03.04.2007 16:28
OlegON
 
Ты бы полистал форум. Была такая тема уже. И не видно, что у тебя разделение по документам идет. Не забывай, что там и перемещение и инвентаризации в куче лежат..
03.04.2007 16:47
dmware
 
Цитата:
olegon Ты бы полистал форум. Была такая тема уже.
Да, конечно, писали в целом уже об этом:) Извините, если в чем-то повторяюсь. В следующий раз продолжу одну из существующих тем, если она будет открыта. У меня вопросы не столько по самой программе, сколько по таблицам и принципам размещения/извлечения/оображения данных Супермагом, потому и сделал новый топик.

Цитата:
olegon И не видно, что у тебя разделение по документам идет. Не забывай, что там и перемещение и инвентаризации в куче лежат..
По документам действительно в этом запросе разделения не делаю. Супермаг выполняет запрос Товарные->Остатки очень быстро если установить текущую дату. Вероятно в этом случае программа просто выбирает данные из SMGOODS.
03.04.2007 16:50
dmware
 
Цитата:
inna сделай для начала как то пороще, может
select sum(QUANTITY) from smgoods where article=... and STORELOC=.... для проверки
и AND SMCARD.IDCLASS = SACARDCLASS.ID
AND SACARDCLASS.ID = SMCARD.IDCLASS напрягает. Может конечно и можно так -но зачем?
Для того, чтобы отобразить всю группу. Так проще искать расхождения со стандартным отчетом, поскольку можно просто рассчитать в EXCEL сумму остатков и сверить с тем, что в отчете. А вот если уже найдутся расхождения - копать по конкретному артикулу.
03.04.2007 16:55
dmware
 
Цитата:
dmware Выбрал конкретный артикул по конкретному месту хранения, просматриваю документы в разделе Карточки->Документы. Все документы, которые там отображены в статусе "двух зеленых галочек". Теперь здесь же в разделе остатки: 21 единица, а по отчету: 6.
Почему?? Где копать? Какие еще документы могут быть не учтены и как их найти?
Определил, что супермаговский отчет почему-то не учитывает сегодняшний приход (03.04.) в магазин в количестве 15 единиц товара. Вот и 21 получается. Документ в статусе двух зеленых галочек. Однако в разделе Карточки->Остатки - та же 21 единица...
03.04.2007 17:00
inna
 
условия одинаковые - или мне кажется? Просто наоборот написано.
Я собственно и предлагала тебе путь выяснения почему селект неправильный. Сначала пишется простой селект, а потом начинаешь накручивать сверху связи. Сначала надо проверить таблицу smgoods - там должен быть такой же остаток как в СМ. Потом начинаешь ее фильтровать по группе и т.д.
03.04.2007 17:01
inna
 
Если смотреть отчетом, то остаток берется на утро.
03.04.2007 17:05
dmware
 
Цитата:
inna Если смотреть отчетом, то остаток берется на утро.
Ясно, спасибо. Наверное этот самый приход был принят позже. Утром уже наверное проверю.
Часовой пояс GMT +3, время: 14:12.

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