declare
cursor c_obj is
select b1.ID as ID_HOZ_OP, a1.ID as PRD_ID
from Z#HOZ_OP_ACC b1, Z#PRODUCT a1
where a1.C_ARRAY_DOG_ACC = b1.COLLECTION_ID and a1.C_DATE_CLOSE is NULL and a1.CLASS_ID in ('AGR_FACTOR') and b1.C_ACCOUNT_DOG#1#2 = P#ACC and b1.C_NAME_ACCOUNT in (18858763) and exists (
select c1.ID as A$1
from Z#PRODUCT f2, Z#RES_PORT f1, Z#HOZ_OP_ACC e1, Z#AC_FIN d1, Z#RES_ACC_VAL c1
where f1.id=f2.id
and (c1.C_RES_ACC = d1.ID and d1.ID = e1.C_ACCOUNT_DOG#1#2 and e1.COLLECTION_ID = b1.COLLECTION_ID and f1.C_ACCRS = c1.COLLECTION_ID and c1.C_DATE_END is NULL and (f2.C_DATE_CLOSE is NULL or f2.C_DATE_CLOSE >= ONDATE) and (f2.C_COM_STATUS is NULL or f2.C_COM_STATUS != 2047865) and (f2.C_NUM_DOG in ('POS_MFAS_0','POS_MFZS_0','POS_MFABZ_0','POS_MFAS_0_45812','POS_MFZS_0_45812','POS_MFABZ_0_45812')))
);
X c_obj%rowtype;
begin
for plp$c_obj in c_obj loop
X := plp$c_obj;
--# 57,8
FACT := X.PRD_ID;
GEN := Z#AGR_FACTOR#INTERFACE.get_parent(Z#AGR_FACTOR#INTERFACE.get_object(FACT).collection_id).id;
exit ;
end loop;
end;