Доброго времени суток, Юрий.
Натолкнулся на неприятный момент в "Отчёте о реализации товаров в период проведения маркетинговой акции" - по некоторым акциям отчет получался пустой.
Покрутив запрос qryMain в жабе, выяснил, что не выполняется условие при проверке ID документа, созданного на основании МА, в случае, если на базе данной МА создавалась ещё одна маркетинговая акция (например, экспортом). В этом случае запрос SELECT MAX(B.ID) FROM SUPERMAG.SMCOMMONBASES B WHERE B.BASEID = :DOC_ID возвращает не ID акта переоценки, а ID МА, созданной на основании данной.
Оказалось, оператор, вместо того, что бы как обычно сделать на одинаковый товар один документ МА для всех МХ, решила для наглядности сделать для каждого МХ свою акцию, экспортировав ее из первого созданного док-та.
Решил проблему добавлением проверки на тип документа:
....
AND P1.DOCID =
(SELECT MIN(B.ID) FROM SUPERMAG.SMCOMMONBASES B WHERE B.BASEID = :DOC_ID and b.doctype = 'AC')
AND P2.DOCID =
(SELECT MAX(B.ID) FROM SUPERMAG.SMCOMMONBASES B WHERE B.BASEID = :DOC_ID and b.doctype = 'AC')
....
Вроде бы, цена по началу и завершению МА меняется на основании актов переоценки?