1С 8.3 Загружаем данные в Таблицу значений из DBF
Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Перейти в основной раздел:
Загружаем данные в Таблицу значений из DBF (&НаСервере) в 1С 8.3:
ТЗ = Новый("ТаблицаЗначений"); //Создадим таблицу значений со структурой как у загружаемого файла DBF.
// Добавляем в таблицу значений колонку с описанием типа и заголовка
ОписаниеКода = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("Код",ОписаниеКода); //("Cod","N",24,0)
ОписаниеНаименование = Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100));
ТЗ.Колонки.Добавить("Наименование",ОписаниеНаименование); //("Name","S",100,0)
ОписаниеПримечание = Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(250));
ТЗ.Колонки.Добавить("Примечание",ОписаниеПримечание); //("Prim","S",250,0)
ОписаниеЭтоГруппа = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(1, 0));
ТЗ.Колонки.Добавить("ЭтоГруппа",ОписаниеЭтоГруппа); //("Group","N",1,0)
ОписаниеКодРодителя = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("КодРодителя",ОписаниеКодРодителя); //("Rodit","N",24,0)
ОписаниеУровеньЭлементаВИерархии = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("УровеньЭлементаВИерархии",ОписаниеУровеньЭлементаВИерархии);//("Urove","N",24,0)
ФайлДБФСпр = Новый XBase;// путь к базе "D:\SUBK\08.1_1.dbf", путь к индексу - необязателен, только чтение
ФайлДБФСпр.ОткрытьФайл(ПутьКФайлу,,Истина);
ФайлДБФСпр.Первая(); // перешли к первой записи
Пока Не ФайлДБФСпр.ВКонце() Цикл //не последняя запись
Если Не ТаблицаDBF.ЗаписьУдалена() Тогда //нет пометки на удаление
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Код = ФайлДБФСпр.Cod;
НоваяСтрока.Наименование = ФайлДБФСпр.Name;
НоваяСтрока.Примечание = ФайлДБФСпр.Prim;
НоваяСтрока.ЭтоГруппа = ФайлДБФСпр.Group;
НоваяСтрока.КодРодителя = ФайлДБФСпр.Rodit;
НоваяСтрока.УровеньЭлементаВИерархии = ФайлДБФСпр.Urove;
КонецЕсли;
ФайлДБФСпр.Следующая();
КонецЦикла;
ФайлДБФСпр.ЗакрытьФайл();
//Теперь можно выполнять любые манипуляции с ТЗ, например сортировать:
ТЗ.Сортировать("УровеньЭлементаВИерархии Возр");//
Для Каждого Стр Из ТЗ Цикл
Сообщить(строка(Стр.УровеньЭлементаВИерархии) + " " + строка(Стр.Код) + " " + строка(Стр.Наименование));
КонецЦикла;
// Добавляем в таблицу значений колонку с описанием типа и заголовка
ОписаниеКода = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("Код",ОписаниеКода); //("Cod","N",24,0)
ОписаниеНаименование = Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(100));
ТЗ.Колонки.Добавить("Наименование",ОписаниеНаименование); //("Name","S",100,0)
ОписаниеПримечание = Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(250));
ТЗ.Колонки.Добавить("Примечание",ОписаниеПримечание); //("Prim","S",250,0)
ОписаниеЭтоГруппа = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(1, 0));
ТЗ.Колонки.Добавить("ЭтоГруппа",ОписаниеЭтоГруппа); //("Group","N",1,0)
ОписаниеКодРодителя = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("КодРодителя",ОписаниеКодРодителя); //("Rodit","N",24,0)
ОписаниеУровеньЭлементаВИерархии = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(24, 0));
ТЗ.Колонки.Добавить("УровеньЭлементаВИерархии",ОписаниеУровеньЭлементаВИерархии);//("Urove","N",24,0)
ФайлДБФСпр = Новый XBase;// путь к базе "D:\SUBK\08.1_1.dbf", путь к индексу - необязателен, только чтение
ФайлДБФСпр.ОткрытьФайл(ПутьКФайлу,,Истина);
ФайлДБФСпр.Первая(); // перешли к первой записи
Пока Не ФайлДБФСпр.ВКонце() Цикл //не последняя запись
Если Не ТаблицаDBF.ЗаписьУдалена() Тогда //нет пометки на удаление
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Код = ФайлДБФСпр.Cod;
НоваяСтрока.Наименование = ФайлДБФСпр.Name;
НоваяСтрока.Примечание = ФайлДБФСпр.Prim;
НоваяСтрока.ЭтоГруппа = ФайлДБФСпр.Group;
НоваяСтрока.КодРодителя = ФайлДБФСпр.Rodit;
НоваяСтрока.УровеньЭлементаВИерархии = ФайлДБФСпр.Urove;
КонецЕсли;
ФайлДБФСпр.Следующая();
КонецЦикла;
ФайлДБФСпр.ЗакрытьФайл();
//Теперь можно выполнять любые манипуляции с ТЗ, например сортировать:
ТЗ.Сортировать("УровеньЭлементаВИерархии Возр");//
Для Каждого Стр Из ТЗ Цикл
Сообщить(строка(Стр.УровеньЭлементаВИерархии) + " " + строка(Стр.Код) + " " + строка(Стр.Наименование));
КонецЦикла;
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник