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)