create view v1
as select
*
from
BaseDoc, ...
where
((
BaseDoc.Nrec == StepDoc.cBaseDoc
and StepDoc.Nrec == SpStep.cStepDoc
and SpStep.Nrec == SpDocNal.cSpDoc
and ....
))
bounds b1 as cBaseDoc = BaseDoc.Nrec;
....
// Фиксируем текущий документ
cBaseDoc := BaseDoc.Nrec;
PushBounds(tbB1);
/* Переводим документ в режим таблицы в памяти,
* считываем всю необходимую информацию по данному документу в память
*/
if (ReinitTable(#BaseDoc, fmMemory+fmSubTree+fmAutoLoad))
{
// Обрабатываем
....
// При необходимости записываем в БД
if (<все-как-надо>)
if (mtFlush(#BaseDoc, fmTransaction) <> tsOk)
}
// Восстанавливаем как было
if (ReinitTable(#BaseDoc, fmNormal))
...
PopBounds(tbB1);