Имя: Пароль:
1C
1C 7.7
v7: Работа с ДБФ
0 serg-lom89
 
11.11.13
17:37
Подскажите по работе с ДБФ
выгружаю данные в ДБФ файл...
вот только вместо названия в файле ДБФ цифры?

    Файл = создатьОбъект("XBASE"); //создаем ссылку на файл DBF
    Файл.ДобавитьПоле("DATE","D",10,0);
    Файл.ДобавитьПоле("NUMBER","S",255,0);
    Файл.ДобавитьПоле("TEKDOC","S",255,0);
    Файл.ДобавитьПоле("TOVAR","S",255,0);
    Файл.СоздатьФайл(ИмяФайла); //создаем файл физически            
    //Файл.Записать();
    
    
    Для i = 1  По Список.РазмерСписка()  Цикл
        ТекДок=Список.ПолучитьЗначение(i);
        Если Док_ПосТовВРозн.НайтиДокумент(ТекДок) = 1 Тогда  
            ТекДок_Найденный= Док_ПосТовВРозн.ТекущийДокумент();
            ТекДок_Найденный.ВыбратьСтроки();
            Пока ТекДок_Найденный.ПолучитьСтроку()>0 Цикл
                Файл.Добавить();
                Файл.DATE = ТекДок_Найденный.ДатаДок;
                Файл.TOVAR = ТекДок_Найденный.Товар;
                Файл.TEKDOC=ТекДок_Найденный.ТекущийДокумент();
                Файл.NUMBER =ТекДок_Найденный.НомерДок;  
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
                    Файл.Записать();

    Файл.ЗакрытьФайл();
    Предупреждение("обработка выгрузки завершена");
1 serg-lom89
 
11.11.13
17:38
что то с типом не так в дбф получается?
2 ДенисЧ
 
11.11.13
17:38
Файл.TOVAR = ТекДок_Найденный.Товар.Наименование;
3 Ёпрст
 
11.11.13
17:39
ну и ТекДок_Найденный.ТекущийДокумент().. тоже не фонтан.
4 Ёпрст
 
11.11.13
17:39
пихай хотя бы iddoc туда.
5 serg-lom89
 
11.11.13
17:42
(3) выгрузилось тока какая то белеберда..как будто рускуй не понимает язык,только инглиш
6 mikecool
 
11.11.13
17:43
(5) поменяй кодировку
7 Mikeware
 
11.11.13
17:43
Забавный денек сегодня.... В определенных учреждениях - день открытых дверей, чтоль?
8 Mikeware
 
11.11.13
17:44
(6) там, где нужно - она у него не поменяется...
9 serg-lom89
 
11.11.13
17:46
(6) Спасибо))
10 serg-lom89
 
11.11.13
17:46
Всем спасибо)))
11 AcaGost
 
11.11.13
17:48
Файл.DATE = ТекДок_Найденный.ДатаДок;
Файл.TOVAR = СокрЛП(ТекДок_Найденный.Товар.Наименование);  
       Файл.TEKDOC=Строка(ТекДок_Найденный.ТекущийДокумент());
Файл.NUMBER =ТекДок_Найденный.НомерДок;
12 Torquader
 
11.11.13
21:05
(11) Наименование можно без СокрЛП - система автоматом пробелы с конца обрезает.
А вот для НомерДок СокрЛП как раз желательно - если код не полностью занимает поле - будут пробелы в начале.

(0) Строки по 255 символов - не очень хорошая идея.
Наименование не может быть более 100 символов в принципе.
Номер документа - не может быть более 20 символов.
Текущий документ - это тип документа дата и его номер - тут не более 128 (идентификатор) + 8 (дата) + 20 (номер) + 2 (пробелы) то есть 158 символов.