Страница 1 из 2

ПЛАТЕЖНЫЕ ДОКУМЕНТЫ

Добавлено: 10 ноя 2009, 15:27
korvanakorvana
Необходимо сделать выборку. Выбрать препараты с опр датой отгрузки по определенным документам(платежное поручение)

Так вот вопрос как определить что оплата была по платежному поручению(какой у него код? )?

Добавлено: 10 ноя 2009, 15:58
Seybukan
Все системные коды документов живут:
Настройка \ Настройка \ Заполнение каталогов \ Документы системы

Что касается отдельно всех платежных документов (платежки, ордера, бухсправки) - то там может быть еще и пользовательский код, если настроено ведение нескольких касс, расчетных счетов, валютных счетов, бухсправок. Но это дополнительная фильтрация по пользовательскому коду в рамках одного системного.

Добавлено: 11 ноя 2009, 11:01
korvanakorvana
компилятор не видя в Mark.inc ругается на AtConst.inc говорит что его нет....дайте пожалуйста

Добавлено: 11 ноя 2009, 11:16
edward_K
он весит дофига - тока на мыло, поскольку в профиле не укзано, то шли на мое. С другой стороны можно просто создать пустышку.

Добавлено: 11 ноя 2009, 11:23
korvanakorvana

Добавлено: 11 ноя 2009, 11:26
korvanakorvana
Платежное поручение нашла :) Basefin.Tipdoc==10051.
Но когда включаю в выборку при компилировании вылетает сообщение
Изображение

Добавлено: 11 ноя 2009, 11:33
edward_K
1. сообшение можно и не картинкой вырезать а брать из vip_res.log
2. ну нет индексов что вы заказали - "(noindex)" после условия по которому нет индекса вам поможет. Без запроса точно не сказать. Посмотрите в словаре может более подходящее условие подберете по индексам.
3. Лучше ориентироваться по tidkgal или по аналогичным полям - для платежки это 1 или 2, а tipdoc это польз.тип - он зависит от ваших настроек.

Добавлено: 11 ноя 2009, 11:34
korvanakorvana

Добавлено: 11 ноя 2009, 11:44
edward_K
а запросик из него не проще вырезать? :)

Добавлено: 11 ноя 2009, 11:54
korvanakorvana
Пардон)

Код: Выделить всё

create view
var
date1, dat1, date2, dat2, date3, dat3:date;
XlRes: Boolean;
aFileName: String;
as
Select *
From 
basefin, 
basedoc, 
stepdoc, 
katsopr,
katmc katmc1,
tkvart,
t_katmc _katmc
, KatMC
, t_katmc
, t_bf
, t_do
, toplat
Where
((
    katmc.nrec==_katmc.nrec
and 10051==basefin.tipdoc
and 1==basefin.direct

//and '2909'==basefin.nodoc(noindex)

and dat1<<=basefin.ddoc
and dat2>>=basefin.ddoc(noindex)
and basefin.cbasedoc==basedoc.nrec

and word(201)==basedoc.viddoc(noindex)

and dat3<<=basedoc.ddoc(noindex)

and basedoc.nrec==stepdoc.cbasedoc
and stepdoc.nrec==katsopr.cstepdoc

and katsopr.nrec == spsopr.csopr
and 1 == spsopr.prmc
and spsopr.cmcusl == katmc1.nrec
));

Добавлено: 11 ноя 2009, 11:56
KATZ
korvanakorvana
Есть индексы tipdoc+ddoc и direct+ddoc, возьмите один из них (наверное, лучше первый, т. к. для входящих ПП, пусть даже пользовательского типа, всегда будет direct=1).

Добавлено: 11 ноя 2009, 12:06
edward_K
угу - типа этого
and 10051==basefin.tipdoc
and dat1<<=basefin.ddoc
and dat2>>=basefin.ddoc
tipdoc вам однозначно определит направление.
если у вас поле 2 раза фильтруется(и сие могет быть тока в последнем условии если по индексу) то и noindex нужно писать в обоих строках.

Добавлено: 11 ноя 2009, 13:44
korvanakorvana
про tipdoc+ddoc и direct+ddoc я первый раз узнала KATZ
спасибо за инфу.edward_K как всегда мой спаситель)

Добавлено: 16 ноя 2009, 12:16
korvanakorvana
basefin.tidkgal а его с какими полями связать?

Добавлено: 16 ноя 2009, 12:56
edward_K
1 или 2 для поручений. А дальше зависит. Если одна накладная=одно До, то просто
Для свое отгрузки отбор входящих платежек
1 == basefin.direct//входящий
and katsopr.cstepdoc == basefin.cstepdoc
and 2 == basefin.TIDKGAL(noindex) // сторонее платежное поручение
Если нет то ищите на форуме SpSopHoz - но платежи все должны быть распределены по накладным.