1С 8.3 Выгружаем данные из Таблицы значений в DBF - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Выгружаем данные из Таблицы значений в DBF

Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Перейти в основной раздел:
Выгружаем данные из Таблицы значений в DBF (&НаСервере) в 1С 8.3:
    ПутьКПапкеФайлов="D:\";
   
КаталогНаДиске = Новый Файл(ПутьКПапкеФайлов);
    Если
КаталогНаДиске.Существует()=Ложь Тогда
       
СоздатьКаталог(ПутьКПапкеФайлов);
    КонецЕсли;

   
ТаблицаDBF = Новый XBase; ТаблицаDBF.Кодировка = КодировкаXBase.ANSI;

   
ПутьКФайлуDBF=ПутьКПапкеФайлов+"Sync.dbf";
   
НовФайлуDBF = Новый Файл(ПутьКФайлуDBF);
    Если
НовФайлуDBF.Существует()=Ложь Тогда // Такого файла не существует - создадим новый файл DBF с нужной структурой
        // - аналогичной структуре ТЗ на форме

        // Описываем колонки таблицы. Типы бывают:
        // N - число
        // S - строка
        // D - дата
        // L - булево
        // F - число
       
ТаблицаDBF.Поля.Добавить("KodSpr","S",10,); // имя колонки Код в справочнике(как в 1С8=10симв),   тип,   длина
       
ТаблицаDBF.Поля.Добавить("NameSpr","S",100,); // имя колонки Наименование в справочнике,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("Scht","S",8,); // имя колонки Счет,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("Sub1K","S",25,); // имя колонки код Субконто1,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("SRod1K","S",25,); // имя колонки код Родитель Субконто1,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("Sub2K","S",25,); // имя колонки код Субконто2,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("SRod2K","S",25,); // имя колонки код Родитель Субконто2,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("Sub3K","S",25,); // имя колонки код Субконто3,   тип,   длина
       
ТаблицаDBF.Поля.Добавить("SRod3K","S",25,); // имя колонки код Родитель Субконто3,   тип,   длина

       
ТаблицаDBF.Поля.Добавить("Urov","N",1,0); // имя колонки Уровень иерархии,   тип,   длина

       
ТаблицаDBF.СоздатьФайл(ПутьКФайлуDBF,  ); // путь к базе,   путь к индексу
       
ТаблицаDBF.ЗакрытьФайл();

    КонецЕсли;

   
ТаблицаDBF.ОткрытьФайл(ПутьКФайлуDBF,,Ложь);  // путь к базе,   путь к индексу - необязателен,   только чтение

   
ТЗсФормы = Новый("ТаблицаЗначений");

    Для каждого
СтрокаТЗ из ТЗсФормы цикл

       
ЗаписьDBFУжеСуществует=Ложь;

       
ТаблицаDBF.Первая(); // перешли к первой записи
       
Пока Не ТаблицаDBF.ВКонце() Цикл//не последняя запись
           
Если Не ТаблицаDBF.ЗаписьУдалена() Тогда //нет пометки на удаление
               
Если (СокрЛП(ТаблицаDBF.KodSpr) = СокрЛП(СтрокаТЗ.КодВидаОбъекта))
                    и (
СокрЛП(ТаблицаDBF.NameSpr) =  СокрЛП(СтрокаТЗ.ВидОбъекта)) Тогда
                   
ЗаписьDBFУжеСуществует=Истина;

                   
// Обновим нужные данные
                   
ТаблицаDBF.Scht = СтрокаТЗ.Счет;
                   
ТаблицаDBF.Sub1K = СтрокаТЗ.Субконто1.Код;
                   
ТаблицаDBF.SRod1K = СтрокаТЗ.Субконто1.Родитель.Код;
                   
ТаблицаDBF.Sub2K = СтрокаТЗ.Субконто2.Код;
                   
ТаблицаDBF.SRod2K = СтрокаТЗ.Субконто2.Родитель.Код;
                   
ТаблицаDBF.Sub3K = СтрокаТЗ.Субконто3.Код;
                   
ТаблицаDBF.SRod3K = СтрокаТЗ.Субконто3.Родитель.Код;
                   
ТаблицаDBF.Urov = СтрокаТЗ.Субконто1.Уровень();

                   
ТаблицаDBF.Записать();

                КонецЕсли;
            КонецЕсли;

           
ТаблицаDBF.Следующая(); // переходим к следующей записи
       
КонецЦикла;

        Если
ЗаписьDBFУжеСуществует=Ложь Тогда //Создадим новую запись и добавим нужные данные

           
ТаблицаDBF.Добавить();
           
ТаблицаDBF.KodSpr = СокрЛП(СтрокаТЗ.КодВидаОбъекта);
           
ТаблицаDBF.NameSpr = СокрЛП(СтрокаТЗ.ВидОбъекта);

           
ТаблицаDBF.Scht = СтрокаТЗ.Счет;
           
ТаблицаDBF.Sub1K = СтрокаТЗ.Субконто1.Код;
           
ТаблицаDBF.SRod1K = СтрокаТЗ.Субконто1.Родитель.Код;
           
ТаблицаDBF.Sub2K = СтрокаТЗ.Субконто2.Код;
           
ТаблицаDBF.SRod2K = СтрокаТЗ.Субконто2.Родитель.Код;
           
ТаблицаDBF.Sub3K = СтрокаТЗ.Субконто3.Код;
           
ТаблицаDBF.SRod3K = СтрокаТЗ.Субконто3.Родитель.Код;
           
ТаблицаDBF.Urov = СтрокаТЗ.Субконто1.Уровень();

           
ТаблицаDBF.Записать();

        КонецЕсли;

    КонецЦикла;

   
ТаблицаDBF.ЗакрытьФайл();
   
//Сообщить("Файл записан. В таблице " + ТаблицаDBF.КоличествоЗаписей() + " записей.");
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 01.03.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому