|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
Загрузка Dbf-файлов с длиной имени больше 8 символов (1С 7.7)15.02.2010, 09:43. Показов 71211. Ответов 24
Метки нет (Все метки)
В программе необходимо загружать DBF-файлы с длиной имени больше 8 символов. Если длина <=8 символам - все нормально, если же больше - программа вылетает с ошибками:
ДБФ.Первая(); : Перед выполнением операции нужно открыть базу! Пока ДБФ.ВКонце() = 0 Цикл : Перед выполнением операции нужно открыть базу! При этом я принудительно обрезаю имя файла до первых 8 символов - но все равно не помогает! Никак не могу понять свою ошибку( Код ( (Unknown Language)): Процедура ВыборФайла() КаталогЗагрузки = ""; ФайлЗагрузки = ""; Если ФС.ВыбратьФайл(1, ФайлЗагрузки, КаталогЗагрузки, "Выберите файл", "*.dbf|*.dbf", , ) = 1 Тогда ФайлЗагрузки = КаталогЗагрузки + ФайлЗагрузки; КонецЕсли; КонецПроцедуры Процедура ПриВыбореИмениФайла() Поз=Найти(ФайлЗагрузки,"."); Если (Поз=0) Или (Поз>8) Тогда ФайлЗагрузки=СокрП(Лев(СокрЛ(ФайлЗагрузк и),12))+".DBF"; Иначе ФайлЗагрузки=СокрЛП(Лев(ФайлЗагрузки,Поз )+"DBF"); КонецЕсли; КонецПроцедуры Процедура Сформировать() ИмФайл=СокрЛП(Лев(СокрЛ(ФайлЗагрузки),8) )+".DBF"; Док1 = СоздатьОбъект("Документ.РеестрСчетовВход ящий"); ДБФ = СоздатьОбъект("XBase"); ДБФ.ОткрытьФайл(ИмФайл,,1); Док1.Новый(); ДБФ.Первая(); // первая ошибка Пока ДБФ.ВКонце() = 0 Цикл //вторая ошибка Док1.НоваяСтрока();
0
|
|
| 15.02.2010, 09:43 | |
|
Ответы с готовыми решениями:
24
Доступ к полям длиной более 255 символов баз DBF Загрузка Dbf файлов Ошибка при имени dbf файла более 8 символов ( MSDASQL.1 ) |
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
| 18.03.2010, 13:36 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
| 23.03.2010, 07:13 | |
|
Итак, мне все-таки удалось решить проблему загрузки файлов DBF с длинными именами, причем без использования Excel.Application!
[codebox] Перем Выб,long, НовИмяФайла, ДлинноеИмяФайла; Процедура ВыборФайла() ФайлЗагрузки = ""; КаталогЗагрузки=""; long=0; Если ФС.ВыбратьФайл(0, ФайлЗагрузки, КаталогЗагрузки, "Выберите файл", "Файлы баз данных (*.dbf)|*.dbf", , ) = 1 Тогда Если СтрДлина(ФайлЗагрузки) > 12 тогда long=1; ДлиноеИмяФайла=ФайлЗагрузки; ЗначИмени = Лев(Строка(ФайлЗагрузки),8); // получаем первые 8 символов из имени Расш = Прав(Строка(ФайлЗагрузки),3); НовИмяФайла = ЗначИмени + "." + Расш; Фс.ПереименоватьФайл(ФайлЗагрузки,НовИмя Файла,1); Выб = НовИмяФайла; Иначе Выб = ФайлЗагрузки; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура Сформировать() ИмФайл=СокрЛП(Выб); Док1 = СоздатьОбъект("Документ.РеестрСчетовВход ящийЛПУ"); ДБФ = СоздатьОбъект("XBase"); ДБФ.ОткрытьФайл(КаталогЗагрузки + "\" + Выб); Док1.Новый(); ДБФ.Первая(); Пока ДБФ.ВКонце() = 0 Цикл Док1.НоваяСтрока(); и т.д. (обрабатываем документ) ...... ДБФ.ЗакрытьФайл(); Если long=1 Тогда Фс.ПереименоватьФайл(НовИмяФайла,ФайлЗаг рузки,1); КонецЕсли; КонецПроцедуры [/codebox] Так что моя гипотеза была не такой уж безумной :( P.S. С помощью Excel.Application также удается делать загрузку, вот только я не понял как узнать количество строк в файле (чтобы правильно организовать цикл)? Хотелось бы сделать вариант и с использованием Экселя
0
|
|
|
VyrusVtod
|
|
| 23.03.2010, 08:36 | |
|
Вопросик :( ... а Вы уверены, что 8 первых символов файла уникальны? ))
|
|
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
||
| 23.03.2010, 11:11 | ||
0
|
||
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
||
| 23.03.2010, 12:43 | ||
быть заполнена
0
|
||
| 23.03.2010, 12:43 | |
|
Преобразовать строки длиной больше 10 символов
Запись в базу текста длиной больше 255 символов Вывести на экран строки длиной больше 5 и меньше 20 символов из контейнера multiset<string> Строка: убрать пробелы и найти все палиндромы (длиной больше пяти символов) во всем тексте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|