Имя: Пароль:
1C
 
Выгрузка в ДБФ - выравнивание данных в столбце по правому краю!
, ,
0 anisa8310
 
24.10.14
13:10
Дорогие Мистеры!!!
Есть выгрузка:
//Установка строки заголовков
    ТекстовыйДокумент = Новый XBase;
    ТекстовыйДокумент.Кодировка = КодировкаXBase.OEM;
    ТекстовыйДокумент.Поля.Добавить("SUMMA", "S",12);
    ТекстовыйДокумент.Поля.Добавить("CLNT_FNAME","S",35);
    ТекстовыйДокумент.Поля.Добавить("CLNT_INAME","S",20);
    ТекстовыйДокумент.Поля.Добавить("CLNT_ONAME","S",30);
    ТекстовыйДокумент.Поля.Добавить("CLNT_SPAS","S",10);
    ТекстовыйДокумент.Поля.Добавить("CLNT_NPAS","S",35);
    ТекстовыйДокумент.Поля.Добавить("CLNT_DPAS","S",10);
    ТекстовыйДокумент.Поля.Добавить("CLNT_PPAS","S",50);
    ТекстовыйДокумент.Поля.Добавить("CLNT_ADR","S",100);
    ТекстовыйДокумент.Поля.Добавить("BIRTHDAY","S",10);
    ТекстовыйДокумент.Поля.Добавить("TAB_N","S",20);
    ТекстовыйДокумент.Поля.Добавить("ACC","S",25);
    ТекстовыйДокумент.Поля.Добавить("WORD","S",32);
    ТекстовыйДокумент.Поля.Добавить("PHONE","S",32);
    ТекстовыйДокумент.Поля.Добавить("INN","S",20);
    ТекстовыйДокумент.Поля.Добавить("FIL","S",10);
    ТекстовыйДокумент.Поля.Добавить("TRANSLIT","S",19);
    ТекстовыйДокумент.Поля.Добавить("ADD_INFO","S",32);
    ТекстовыйДокумент.Поля.Добавить("BIRTHPLACE","S",32);
    ТекстовыйДокумент.Поля.Добавить("PHONE_M","S",32);
    ТекстовыйДокумент.Поля.Добавить("PHONE_H","S",32);
    ТекстовыйДокумент.Поля.Добавить("PHONE_F","S",32);
    ТекстовыйДокумент.Кодировка = КодировкаXBase.OEM;
        
    //Сохранение текстового документа
    Диалог                 = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок     = "Выберите файл для сохранения...";
    Диалог.Расширение     = "dbf";
    Диалог.Фильтр         = "Текстовый документ(*.dbf)|*.dbf";
    
    Если Диалог.Выбрать() Тогда
        
        Попытка
            
            ИндексныйФайл = Диалог.Каталог;
            ВременныйФайл = Новый Файл(Диалог.ПолноеИмяФайла);
            ИндексныйФайл = ИндексныйФайл + ВременныйФайл.ИмяБезРасширения + ".cdx";
            
            ТекстовыйДокумент.СоздатьФайл(Диалог.ПолноеИмяФайла,);
            
            ВременныйФайл = Неопределено;
            
        Исключение
            
            Предупреждение(ОписаниеОшибки());
            Возврат;
            
        КонецПопытки;
        
    КонецЕсли;
    
    Для каждого ТекущаяСтрока Из ТабличнаяЧасть Цикл
    
        //Предварительный сбор информации по физическому лицу
        ФИОДанные             = ПолучитьФИО(ТекущаяСтрока.ФизЛицо);
        ПаспортныеДанные     = ПолучитьПаспортныеДанные(ТекущаяСтрока.ФизЛицо);
        АдресаДанные         = ПолучитьАдреса(ТекущаяСтрока.ФизЛицо);
        ТелефоныДанные         = ПолучитьТелефоны(ТекущаяСтрока.ФизЛицо);
        СчетДанные             = ПолучитьСчет(ТекущаяСтрока.ФизЛицо, СсылкаНаОбъект.Банк);        
        
        //Добавление строки в файл
        ТекстовыйДокумент.Добавить();
        //Формат(ТекущаяСтрока.Сумма, "ЧЦ=10; ЧДЦ=2; ЧГ=0");

        ТекстовыйДокумент.SUMMA         = Формат(ТекущаяСтрока.Сумма, "ЧЦ=10; ЧДЦ=2; ЧРД=.; ЧГ=0");
        ТекстовыйДокумент.CLNT_FNAME     = ФИОДанные[0];
        ТекстовыйДокумент.CLNT_INAME     = ФИОДанные[1];
        ТекстовыйДокумент.CLNT_ONAME     = ФИОДанные[2];
        ТекстовыйДокумент.CLNT_SPAS     = ПаспортныеДанные[0];
Вот файл на выходе:
http://s019.radikal.ru/i630/1410/ba/1bcf937e1ae4.jpg


Разве можно ДБФ-сделать как в экселе-размещение по правому краю а не по левому??? я же только формат числа задаю в конструкторе форматной строки-как быть? там такого нет!(
Подскажите пожалуйста! Кто такое встречал?
1 mergan
 
24.10.14
13:11
ДБФ это формат хранения данных, и не более того.
2 zulu_mix
 
24.10.14
13:12
(0) не отступай! сделай выравнивание по центру хранимых на диске кластеров!
3 Chum
 
24.10.14
13:13
В сбере работают идиоты.

Выравниванием занимается ПО для просмотра файла с данными.
4 zulu_mix
 
24.10.14
13:15
а для зачем там индексный файл?
5 Chum
 
24.10.14
13:15
и еще момент:

почему тут тип строчный?
>ТекстовыйДокумент.Поля.Добавить("SUMMA", "S",12);

я бы сделал:
ТекстовыйДокумент.Поля.Добавить("SUMMA", "N", 12, 2);
6 mergan
 
24.10.14
13:22
(5)а есть принципиальная разница?
7 Chum
 
24.10.14
13:25
(6) вьюверы по умолчанию числовые колонки форматируют "прижать вправо", а текстовые "влево"
8 anisa8310
 
24.10.14
14:05
(3) как им это объяснить....
9 anisa8310
 
24.10.14
14:18
(7) ща попробую!
10 anisa8310
 
24.10.14
14:22
Работает!!!!!
11 Chum
 
24.10.14
15:05
Кто бы сомневался
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.