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

Отмена оприходования для накладной на отпуск

Добавлено: 09 сен 2011, 16:57
n0where
Доброе время суток.

Такой вопрос как запретить отмену через произвоственный алгоритм.
Делаю через pt.Binding = 1 (TRecAcc). Однако не отрабатывает. На оприходование данная конструкция работает.

Подскажите в чем проблема.

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 08:35
Semi-bit
Мы такие вещи триггерами делаем...

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 09:22
n0where
Как сделать триггером?

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 10:24
oiko
Ерунда триггером получиться, т.к. надо блокировать все таблицы участвующие в оприходовании при помощи какого-нибудь RiseApplicationError, либо возвращать все эти записи в исходное состояние (экран кстати не перерисуется).
Можно попробовать алгоритмом до удаления ордеров изменить настройку которая явно не даст удалить ордера (сделать ему закрытый период), а после удаления вернуть ее обратно - вдруг прокатит.
Лучше всего докомпиляцией блокировать по условию стандартное событие удаления ордеров cmValue5 вроде.

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 10:53
n0where
Т.о. получается что производственным алгоритмом проще всего.

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 13:59
mwoland
мб попробовать при закрытии производственного алгоритма послать событие cmcancel. у мну кое-где прокатывало.

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

Function RunInter( wflag:Word; Var pt:TRecAcc ) : Boolean; {
putcommand(cmCancel);
}
или 
RunInter := false;
или
Function DoneInter( Var pt:TRecAcc ) : Boolean; {
putcommand(cmCancel);DoneInter := false;
}
или
handleevent
cmdone: {
putcommand(cmCancel);
}
end;

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 14:44
n0where
Не катит.

Re: Отмена оприходования для накладной на отпуск

Добавлено: 12 сен 2011, 17:16
oiko
Естественно не покатит - проще всего докомпиляция.