7.7 XBase (v 7.7)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Voody, 18 июл 2008.

  1. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Создаю объект следующим способом
    Код:
    ДБФ_дикт = СоздатьОбъект("XBase");
    
    Путь к файлу выбираю через диалогвыбора
    При подключение выдает следущее

    ДБФ_дикт.ОткрытьФайл(ПутьДБФ + "plat.dbf");
    {Документ.СписокВБанк.Модуль Документа(21)}: Длина имени файла превысила 8 символов!

    как избавться от этого ограничения?
  2. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Так имя файла у тебя 4 символа, может в переменной ПутьДБФ нет в конце бэкслэша? Например, если
    то имя файла выйдет Мои документыplat.dbf
  3. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    ну вообще то да, это я в примере написал, но это не важно.
    Надо было перед ПутьДБФ поставить ""+ , и тогда происходит неявное преобразование типа, и все работает, в общем - Нормулььь!!!
  4. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Опять что то не так(((
    Пишу
    Код:
    	
    Х_плат = СоздатьОбъект("XBase");                  
    Х_плат.ОткрытьФайл(""+ПутьДБФ+""+""+"\plat.dbf");
    //разные операции...
    Х_плат.ЗакрытьФайл();
    
    нормально все - подключается.
    А вот дальше
    Код:
    Х_Док = СоздатьОбъект("XBase");
    Х_Док.ОткрытьФайл(""+ПутьДБФ+"\DOCS\doc_"+СокрЛП("" + НомерДок)+".DBF");
    
    
    ...выходит ошибка
    Что не так?
  5. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Да все просто - формат файлов DBF с которыми может работать xBase должен быть ДОС-ским, т.е. 8 символов длина и 3 расширение. Остальные параметры отслеживает сама платформа (чтобы был dBaseIII), а вот за именем следите сами. В Вашем случае длина строки номера не может превышать 3-х символов.
  6. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    а почему тогда в первом случае работает?
  7. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Так в первом случае длина имени файла 4 символа, а во втором х.з.
  8. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Понял :unsure:
    имя файл "plat" а не весь путь. Спасибо
  9. emorunov
    Offline

    emorunov

    Регистрация:
    3 июл 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    а у меня чуть другая проблема..
    имя файла ввожу сам
    вот примерно такой код:

    Код:
    ИмяП = "d:\tmp\";
    ПутьДБФ = ИмяП + ИмяФ + ".dbf" // ИмяФ вводится. Оно ТОЧНО меньше 8 символов
    Если ФС.СуществуетФайл(ПутьДБФ)=1 Тогда
    ДБФФайл.ОткрытьФайл(ПутьДБФ);
    ДБФФайл.ОчиститьФайл();
    Иначе
    ДБФФайл.СоздатьФайл(ПутьДБФ);// Это вызывает ОШИБКУ! Путь получается вида: d:\tmp\urlic.dbf
    КонецЕсли;
    
    если этот код заменить на:
    ДБФФайл.СоздатьФайл("d:\tmp\urlic.dbf");
    то всё работает!
  10. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Попробуйте
    Код:
    ПутьДБФ = ИмяП + СокрЛП(ИмяФ) + ".dbf"
    
  11. Amigo-NN
    Offline

    Amigo-NN

    Регистрация:
    10 сен 2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    лично я для этого использую такой фокус

    Путь_К_Файлу = "Какой то путь к файлу";
    Х_Док = СоздатьОбъект("XBase");
    ФС.КопироватьФайл(Путь_К_Файлу, КаталогПользователя() + "temp.dbf", 0);
    Х_Док.ОткрытьФайл(КаталогПользователя() + "temp.dbf");

    И все!
  12. solbol
    Offline

    solbol

    Регистрация:
    27 май 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Надо испльзовать следующую последовательность:

    Код:
    XBase	= СоздатьОбъект("XBase");
    XBase.ДобавитьПоле("A", "Строка",,);
    XBase.ДобавитьПоле("B", "Строка",,);
    XBase.СоздатьФайл(ИмяФайлаВыгрузки);
    
    [warn="Внимание!"]Следите за датами сообщений.
    Пользуйтесь тегами!!![/warn]
Похожие темы
  1. Voody
    Ответов:
    3
    Просмотров:
    867
  2. Arfey
    Ответов:
    1
    Просмотров:
    638
  3. Arfey
    Ответов:
    5
    Просмотров:
    949
  4. Arfey
    Ответов:
    10
    Просмотров:
    2.601
Загрузка...

Поделиться этой страницей