Block( Func('GetCargoDscForTable', Global, Internal, Block( Param('DOPTableId', Integer, 0), Param('DOPAddTableId', Integer, 1), Param('ApxTableId', Integer, 2), Param('WithApxRef', Integer, 3), Param('IncludeGroupsDsc', Integer, 4) ), Block( Var('mResult', Memo, Local), Var('sBuf', String, Local), Var('mBuf', Memo, Local), Var('iBuf', Integer, Local), Let(@sBuf, DCL.GetFieldVal(DOPTableId, 'G312')), If(Not(WithApxRef), Let(@sBuf, RemoveApxRefFromString(sBuf))), {Без переводов строки} Let(@mResult, SupressCRLFInMemo(ConvertToMemo(sBuf))), Let(@sBuf,DCL.GetFieldVal(DOPAddTableId, 'AddTo312')), If(Not(WithApxRef) + ApxTableId, Let(@sBuf, RemoveApxRefFromString(sBuf))), AddStrToSnake(@mResult, sBuf), If(ApxTableId, Block( Let(@iBuf, DCL.FindFirst(ApxTableId, 'G32 = ' + G32)), While(iBuf, Block( Let(@mResult, mResult + GetMemoVal(ApxTableId, 'TEXT', 1)), Let(@iBuf, DCL.FindNext(ApxTableId, 'G32 = ' + G32)) ) ) ) ), If(IncludeGroupsDsc, Block( Let(@mBuf, GetMemoVal(DOPAddTableId, 'G31Groups', 1, 255, Not(WithApxRef))), Let(@iBuf, StringsCount(@mBuf)), If(iBuf = 1, If(Not(Length(GetString(@mBuf, 0))), Let(@iBuf, 0) {чтобы не добавлять пустую строку} ) ), If(iBuf, Let(@mResult, mResult + mBuf)) ) ) ), mResult ) )