| ${$line_ref}    | EOT
            if ($viewmode)
            {
		my $fhref = '/contenido/?set_context=filter-'.$sect->id();
		my $new_doc_class = $sect->default_document_class;
		$m->out(qq^\n | ^);
		$m->out(qq^ ");
            }
            $m->out('');
        }
        
        my $childs = $sect->{children} || [];
        if( ref($childs) && @$childs && $offset < $count_offset )
        {
            $offset++;
            foreach my $child (@$childs)
            {
                next    if (! $request->{cCLASSES}->{$child->class()});
                index_tree( $child, $offset, $line_ref, $count_offset, $viewmode, $profile, $width_limit, $root );
            }
            $offset--;
        }
    }
    $request->{cCLASSES} = {};
    my @avail_classes;
    if ( ref $avail_classes eq 'ARRAY' && @$avail_classes ) {
	map { $request->{cCLASSES}->{$_} = 1 } @$avail_classes;
	@avail_classes = @$avail_classes;
    } elsif (ref($request->{tab}->{sections})) {
	map { $request->{cCLASSES}->{$_} = 1 } (@{ $request->{tab}->{sections} });
	return undef    if (scalar(keys(%{ $request->{cCLASSES} })) == 0);
	@avail_classes = keys( %{ $request->{cCLASSES} } );
    }
    push @avail_classes, 'Contenido::Section'		unless exists $request->{cCLASSES}{'Contenido::Section'};
    my $sect = $keeper->get_section_tree(root=>$root, class => \@avail_classes);
    return undef unless ref $sect && exists $sect->{$root};
    $user->get_accesses();
    my $line = 0;
%init> ^);
		$m->out(qq^фильтр^);
		$m->out(qq^   доб.докум^) if $section_access == 2 and $new_doc_class;
		$m->out(" |