Как узнать уровень строки табличного документа?

База знаний
  1. 9 г. назад
    02.12.2014 15:55:12 отредактировано Stim

    1. программно или вручную сохраняем таб док в файл эксель, затем выполняется примерно следующий код:

    ИмяФайла = "C:\вет\1.xls";
    Док = ПолучитьCOMОбъект(ИмяФайла);	
    счСтрок = 2;   	
    Наим = Док.Sheets(1).Cells(счСтрок,1).Value;
    
    ТаблицаРодителей = Новый ТаблицаЗначений;
    ТаблицаРодителей.Колонки.Добавить("Ссылка");
    
    //проинициализируем таблицу
    Текиндекс = 0;
    пока Текиндекс <> 10 цикл
        Строка = ТаблицаРодителей.Вставить(Текиндекс);
        Строка.Ссылка = Справочники.Номенклатура.ПустаяСсылка();
        Текиндекс = Текиндекс + 1;
    КонецЦикла;
    
    ЭтоЭлемент = ЛОЖЬ;
    
    Пока ЗначениеЗаполнено(Наим) Цикл 
        
        Наименование	= Док.Sheets(1).Cells(счСтрок,1).Value;
        Код = Док.Sheets(1).Cells(счСтрок,2).Value;
        //..пр реквизиты
        ЕдиницаДляОтчетов= Док.Sheets(1).Cells(счСтрок,8).Value;
        
        
        Уровень = Док.Sheets(1).Cells(счСтрок,1).IndentLevel ;
        
        Уровень = Уровень + 2;//потому что начинается уровень с 0, а нулевой у нас это корень
        
        ЭтоЭлемент = ЗначениеЗаполнено(ЕдиницаДляОтчетов) ;	
        
        // все уровни - четные, группы идут по убывающей в разрезе иерархии
        //поэтому алгоритм такой:
        //если это группа - создаем, родителя получаем из таблицы по индекс-2
        //записываем или перезаписываем группу в таблицу со своим индексом
        //если элемент - создаем, родителя получаем из таблицы по индекс-2
        
        
        Родитель = ТаблицаРодителей.Получить(уровень-2).ссылка;
        
        Если  ЭтоЭлемент Тогда
            //создаем элемент
            
        Иначе
            //создаем группу  
            
            Строка = ТаблицаРодителей.Получить(Уровень);
            Строка.Ссылка = Группа.Ссылка;		
        КОнецЕсли;
        
        счСтрок =  		счСтрок +1;			
        Наим	= Док.Sheets(1).Cells(счСтрок,1).Value;
    КОнецЦикла;

    + страница для БЗ, просьба не флудить

    Ответы: (1)
  2. (0) кто такая БабаЗина?

  3. что такое уровень табличного документа?

или зарегистрируйтесь чтобы ответить!