| 
    
            
         
         | 
    
    
  | 
v7: DBF-файлы | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Christina_    
     20.08.12 
            ✎
    23:07 
 | 
         
        Была обработка, которая из ексель файла загружала в тз значения, потом из тз в обычную таблицу. Ексель- файлы очень большие и грузятся долго... Сделала ексель ДБФ файлом... с дбф еще не работала никогда...сп почитала.. не могу разобраться, как мне с него теперь читать.. мне нужно из таблицы этого дбф файла случайнм образом выбрать значения... 
  
        Буду рада любым разумным советам. Спасибо заранее.  | 
|||
| 
    1
    
        Злопчинский    
     20.08.12 
            ✎
    23:10 
 | 
         
        1. выбирай по порядку. - это одна из реализаций случая случайного выбора.
  
        2. читай эксель йокселем - читается сразу в ТЗ и быстро.  | 
|||
| 
    2
    
        zladenuw    
     20.08.12 
            ✎
    23:11 
 | 
         
        а как читала с йкселя и как хочешь с дбф ? 
  
        Книга знаний: DBF-файлы (XBase) v8: загрузка и чтение DBF в 1С  | 
|||
| 
    3
    
        zladenuw    
     20.08.12 
            ✎
    23:12 
 | 
         
        и поповоду йкселя
  
        Процедура Загрузить() Экспорт ExcelФайл = ПолучитьCOMОбъект(мВыбФайл); Состояние("Обработка файла Microsoft Excel..."); // Читаем данные первого листа книги Попытка ExcelЛист = ExcelФайл.Sheets(1); Исключение Предупреждение("Файл открыт, закройте его!!!",,"ОШИБКА"); Возврат; КонецПопытки; // RowCount = 6500; ВсегоКолонок = 3; НомерПервойКолонки = 1; // СоздатьТЧДанных(); //Обратаем всю область данных Область = ExcelЛист.Range(ExcelЛист.Cells(1,НомерПервойКолонки), ExcelЛист.Cells(RowCount,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); //Создание пустых строк по RowCount Для Счетчик = 1 По RowCount Цикл НоваяСтрока = ТЧДанных.Добавить(); КонецЦикла; //Заполнение Тч данными Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЧДанных.ЗагрузитьКолонку(Данные[Счетчик], "Колонка"+Счетчик); КонецЦикла; Создать(); ExcelФайл.Close(); КонецПроцедуры //------------------------------ Процедура СоздатьТЧДанных() // Создание описателя типов для таблицы значений //КЧ = Новый КвалификаторыЧисла(15,2); КС = Новый КвалификаторыСтроки(50); Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС); //Массив.Очистить(); //Массив.Добавить(Тип("Число")); //ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ); // Очистить предыдущие значения ТЧДанных.Очистить(); ТЧДанных.Колонки.Очистить(); // Создать колонки табличного документа ТЧДанных.Колонки.Добавить("Колонка0",ОписаниеТиповС,"Х"); ТЧДанных.Колонки.Добавить("Колонка1",ОписаниеТиповС,"ХХ"); ТЧДанных.Колонки.Добавить("Колонка2",ОписаниеТиповС,"ХХX"); //ТЧДанных.Колонки.Добавить("Колонка3",ОписаниеТиповС,"ХXXX"); //ТЧДанных.Колонки.Добавить("Колонка4",ОписаниеТиповС,"Норматив"); //ТЧДанных.Колонки.Добавить("Колонка5",ОписаниеТиповС,"Х"); //ТЧДанных.Колонки.Добавить("Колонка6",ОписаниеТиповС,"Кво"); КонецПроцедуры  | 
|||
| 
    4
    
        Конфигуратор1с    
     20.08.12 
            ✎
    23:14 
 | 
         
        Блин, то то неделю дожди льют - на мисте с ходу человеку помогают     
         | 
|||
| 
    5
    
        Конфигуратор1с    
     20.08.12 
            ✎
    23:14 
 | 
         
        (3)человек 7шник судя по секции     
         | 
|||
| 
    6
    
        zladenuw    
     20.08.12 
            ✎
    23:15 
 | 
         
        так примеры. или мне все с гугля копировать ? :)     
         | 
|||
| 
    7
    
        Конфигуратор1с    
     20.08.12 
            ✎
    23:16 
 | 
         
        (6)так человек гуглем не умеет     
         | 
|||
| 
    8
    
        Злопчинский    
     20.08.12 
            ✎
    23:18 
 | 
         
        (6) ой блин.. ща.. залезу в какой-нить свой отчет     
         | 
|||
| 
    9
    
        Злопчинский    
     20.08.12 
            ✎
    23:18 
 | 
         
        а лучше скачать демоконфигу по йокселю - там все есть     
         | 
|||
| 
    10
    
        Злопчинский    
     20.08.12 
            ✎
    23:20 
 | 
         
        //******************************************************************************
  
        // Процедура ЗагрузитьДанные() Если ПустоеЗначение(ВыбФайл) = 1 Тогда Предупреждение("Не выбран файл с артикулами!! ",10); Возврат; КонецЕсли; Если ФС.СуществуетФайл(СокрЛП(ВыбФайл)) = 0 Тогда Предупреждение("Указанный файл |<"+ВыбФайл+"> не существует! ",30); Возврат; КонецЕсли; ОчиститьОкноСообщений(); //Сообщить(ТекущееВремя()+": чтение данных из файла: "+СокрЛП(ВыбФайл)); ВыбТипФайла = 2; //эксель всегда ВыбСжиматьКартинки = 1; Таб = СоздатьОбъект ("ТабличныйДокумент"); Попытка Таб.Открыть (ВыбФайл, ВыбТипФайла, ВыбСжиматьКартинки); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; //Сообщить(ТекущееВремя()+": чтение артикулов из файла"); Форма.ТЗЭксель.Видимость(0); ТЗ = СоздатьОбъект("ТаблицаЗначений"); Конвертер = СоздатьОбъект("Йоксель.КонвертерВТаблицуЗначений"); Конвертер.УстановитьДокумент(Таб); Конвертер.ОпределятьСтруктуру = 0; Конвертер.ПроверятьСтруктуру = 0; Конвертер.СтрокДляОпределенияСтруктуры = 50; Попытка ТЗ = Конвертер.Загрузить(); Исключение Сообщить("ОШИБКА: "+ОписаниеОшибки()); Возврат; КонецПопытки;  | 
|||
| 
    11
    
        zladenuw    
     20.08.12 
            ✎
    23:21 
 | 
         
        (10) круть. а именно        Конвертер = СоздатьОбъект("Йоксель.КонвертерВТаблицуЗначений");
  
        Так и пишем "Йоксель"? :)  | 
|||
| 
    12
    
        zladenuw    
     20.08.12 
            ✎
    23:22 
 | 
         
        (9) а можно ссылочку     
         | 
|||
| 
    13
    
        Злопчинский    
     20.08.12 
            ✎
    23:27 
 | 
         
        (11) нет, блин, это я специально херню напис ал чтобы над тобой поглумиться     
         | 
|||
| 
    14
    
        Злопчинский    
     20.08.12 
            ✎
    23:27 
 | 
||||
| 
    15
    
        Злопчинский    
     20.08.12 
            ✎
    23:28 
 | 
         
        подключи ДЛЛre и код в (10) будет работать     
         | 
|||
| 
    16
    
        Christina_    
     21.08.12 
            ✎
    00:33 
 | 
         
        всем спасибо))     
         | 
|||
| 
    17
    
        Злопчинский    
     21.08.12 
            ✎
    00:33 
 | 
         
        (16) работает?!     
         | 
|||
| 
    18
    
        zladenuw    
     21.08.12 
            ✎
    00:49 
 | 
         
        (13) я уточнял. мало ли что.     
         | 
|||
| 
    19
    
        Ёпрст    
     гуру 
    21.08.12 
            ✎
    09:25 
 | 
         
        (0) эксель читай через АДО, дбф через фоксовый провайдер.. будет не быстро, а очень быстро. Объем роли не играет     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |