|
|
|
непонятка с импортом DBF | ☑ | ||
|---|---|---|---|---|
|
0
serg_k
27.09.07
✎
18:25
|
Импортирую файл из клиент банка, суммы должны быть с копейками, а копеек нет, в отладчике тоже нет, внешние DBF листеры ведут себя по-разному: одни показывают без копеек (разделитель дробной части - .), другие показывают (разделитель дробной части - ,), третьи оказывают 1,7Е308
Кто такую бяку встречал? Как с этим бороться? He-e-e-e-e-e-e-e-e-lp!!!!! |
|||
|
1
sapphire
27.09.07
✎
18:27
|
умножать, например на 1.00000 а смотришь небось через Сообщить?
|
|||
|
2
Обдолбанный Вася
27.09.07
✎
18:27
|
а внутренний листер чего кричит?
|
|||
|
3
sapphire
27.09.07
✎
18:28
|
Опять же при выводе 1С-ом - использовать функцию Формат
|
|||
|
4
sapphire
27.09.07
✎
18:28
|
(0) Открой Excelью и посмотри
|
|||
|
5
serg_k
27.09.07
✎
18:31
|
(4) а в Excel вообще чисел нет!!!!!!!!!!!!!!!!!!!!
пустые поля, я сам в шоке (1) внутренний листер ничего не кричит, просто один показывает 106.00 а другой 106,67 He-e-e-e-e-e-e-e-e-lp!!!!! |
|||
|
6
serg_k
27.09.07
✎
18:32
|
если не верите могу выслать
|
|||
|
7
Обдолбанный Вася
27.09.07
✎
18:36
|
код...
|
|||
|
8
sapphire
27.09.07
✎
18:36
|
(7) слей куда-нибудь
|
|||
|
9
serg_k
27.09.07
✎
18:39
|
да код не причем 100%
но если просишь.............. Функция Импорт_Файла_ДБФ(Параметр) ФайлБД = СоздатьОбъект("XBase"); Попытка ФайлБД.ОткрытьФайл(Путь,,1); Исключение Предупреждение(Путь + РазделительСтрок + "Ошибка открытия файла!"); Возврат 0; КонецПопытки; Если ФайлБД.Открыта() = 0 Тогда Предупреждение(Путь + РазделительСтрок + "Ошибка открытия файла!" + РазделительСтрок + "Возможно, файл используется другим приложением."); Возврат 0; КонецЕсли; ФайлБД.КодоваяСтраница(2-Кодировка); ФайлБД.Первая(); Пока (ФайлБД.вКонце() = 0) Цикл Если ФайлБД.ЗаписьУдалена() = 1 Тогда ФайлБД.Следующая(); Продолжить; КонецЕсли; Состояние("Обрабатывается строка №" + ФайлБД.НомерЗаписи()); ДатаОплаты = СокрЛП(ФайлБД.DATA); ДатаОплаты = Дата(Число(Сред(ДатаОплаты,7,4)),Число(Сред(ДатаОплаты,4,2)),Число(Сред(ДатаОплаты,1,2))); Если (ДатаОплаты <> Параметр.Получить("ДатаДок")) или (СокрЛП(ФайлБД.KL_CHK) <> РСчет) или (Цел(ФайлБД.CUR_ID) <> 980) Тогда ФайлБД.Следующая(); Продолжить; КонецЕсли; Если ФайлБД.DK = 1 Тогда // расход Сп = СоздатьОбъект("СписокЗначений"); Сп.Установить("Расход", ФайлБД.S); Сп.Установить("Приход", 0); ИначеЕсли ФайлБД.DK = 0 Тогда // приход Сп = СоздатьОбъект("СписокЗначений"); Сп.Установить("Расход", 0); Сп.Установить("Приход", ФайлБД.S); Иначе ФайлБД.Следующая(); Продолжить; КонецЕсли; Сп.Установить("Контрагент", ЗаменитьСимволыНазад((СокрЛП(ФайлБД.KL_NM_K)))); Сп.Установить("РСчет", ФайлБД.KL_CHK_K); Сп.Установить("ОКПО", СокрЛП(Цел(ФайлБД.KL_OKP_K))); Сп.Установить("МФО",СокрЛП(Цел(ФайлБД.MFO_K))); Сп.Установить("Содержание",ЗаменитьСимволыНазад(СокрЛП(ФайлБД.TEXT1))); Сп.Установить("НомерПП",СокрЛП(ФайлБД.ND)); Параметр.ДобавитьЗначение(Сп); ФайлБД.Следующая(); КонецЦикла; ФайлБД.ЗакрытьФайл(); Возврат 1; КонецФункции //Импорт_Файла |
|||
|
10
serg_k
27.09.07
✎
18:41
|
||||
|
11
serg_k
27.09.07
✎
18:48
|
Ну как, посмотрели?
Какие будут предложения? Лично я такое вижу первый раз в жизни |
|||
|
12
Обдолбанный Вася
27.09.07
✎
18:49
|
Сообщить (ФайлБД.S)?
|
|||
|
13
serg_k
27.09.07
✎
18:51
|
в отладчике суммы БЕЗ КОПЕЕК!!!!
|
|||
|
14
serg_k
27.09.07
✎
18:52
|
Сообщить (ФайлБД.S) тоже БЕЗ КОПЕЕК!!!!
|
|||
|
15
Конь в пальто
27.09.07
✎
19:00
|
как вариант через адо запросом выбери все и прогони...
|
|||
|
16
serg_k
27.09.07
✎
19:04
|
я тоже так думал сделать, решил поспрашать, может есть какой-то камень подводный, не хотелось велик изобретать
|
|||
|
17
serg_k
27.09.07
✎
22:07
|
Увы, через АДО тоже без дробной части
He-e-e-e-e-e-e-e-e-lp!!!!! |
|||
|
18
КонецЦикла
27.09.07
✎
23:16
|
(10) пришли на мыло в карточке, что-то я туплю, забыл куда там тискать :)
|
|||
|
19
КонецЦикла
27.09.07
✎
23:53
|
Через АДО все получается, ложная тревога
У товарища все суммы в поле "S" заканчиваются на .00 |
|||
|
20
serg_k
28.09.07
✎
00:02
|
(19) внимательно прочти (0)
|
|||
|
21
serg_k
28.09.07
✎
00:10
|
Для всех кто сомневается воспользуйтесь вот этим ридером
http://rapidshare.com/files/58698581/DBFRead.rar.html |
|||
|
22
КонецЦикла
28.09.07
✎
00:38
|
(21) Зачем пользоваться именно этим? Хочешь секса до субботы? Ну давай...
Адо и wDBFview показывают достаточно хорошие результаты :) |
|||
|
23
serg_k
28.09.07
✎
00:48
|
(22) Пойми, формируется файл ДБФ, мне инфу из этого файла надо загнать в банковскую выписку, через АДО копейки не видны, выписки приходят каждый день, никто файл ДБФ руками лопатить не будет добавляя копейки
"Адо и wDBFview показывают достаточно хорошие результаты :)" - АДО копейки не показывает DBConn = CreateObject("ADODB.Connection"); // 3 варианта //DBConn.Open("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\temp;"); //DBConn.Open("Driver={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;"); DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties=dBASE III;"); //бд = DBConn.Execute("Select * from 26092007.dbf"); //бд = DBConn.Execute("Select * from C:\temp\26092007.dbf"); бд = DBConn.Execute("Select * from 26092007.dbf"); Пока бд.EOF=0 Цикл //Цикл по записям DBF Сообщить(бд.Fields("S").value); бд.MoveNext(); //Переходим к след. записи DBF КонецЦикла; DBConn.Close(); //Закрываем соединение КонецПроцедуры что это за хреновина я не знаю |
|||
|
24
КонецЦикла
28.09.07
✎
00:53
|
(23) Дятел? Я тебе говорю ЕЩЕ РАЗ...
ВОЗЬМИ wDBFview, ПОСТАВЬ В ПОЛЕ "S" ВМЕСТО 5 -> 5.23 И СМОТРИ ЧТО ВЫВОДИТ ADO ЗЫ. Кто мешает загнать в банковскую выписку число 5? Тебе надо именно 5.00? Текстовая выписка что ли? Значит юзай Формат() |
|||
|
25
serg_k
28.09.07
✎
20:45
|
Обьясняю специально для Конца:
В програме клиент-банка формируется файл выписок в формате ДБФ, мне инфу каждый день из этого файла (10-60 строк) надо загнать в банковскую выписку, НО:..... 1.Суммы из 1С в этом файле (10) и через XBase, и через АДО видны без копеек, например 106.00 2.В DBF вьюерах ситуация неоднозначная, варианты: - копейки не видны, как и в 1С - 106.00 - копейки видны (21) - 106,57 - пишется бред - 1,7Е308 - в Exel в этом поле вообще чисел нет, - оно пустое (5) Отсюда вопрос, как быть в этой ситуации, файл формируется автоматически, каждый день и загружать его в 1С тоже каждый день, никто из бухов в дбф-ине ковырятся не будет Понимаю так что проблема не в 1С, может системных файлов каких-то не хватает, или чего-то доустановить надо, проблемка то системная раз один вюьер правильно показывает а другой нет, значит подходы к считыванию записей разные, вот я у думаю, может кто-то встречался с такой проблемой и сможет подсказать (а то после последнего ответа начал думать что попал на форум юных натуралистов ;-) ) |
|||
|
26
Темный Эльф
28.09.07
✎
21:19
|
Встречал дбф-ы такого формата в банк-клиентах. Бил ногами банкиров. Банкиры плакали и обещали исправиться. Свяжись с банком - у них должны быть варианты выгрузки, в одном из которых есть приличный дбф.
|
|||
|
27
serg_k
28.09.07
✎
22:48
|
(26) а у тебя с каким банком былп проблема?
|
|||
|
28
Темный Эльф
28.09.07
✎
22:59
|
(27)Кажется, Проминвест, но точно не скажу.
|
|||
|
29
serg_k
28.09.07
✎
23:02
|
у меня тоже!!!!
|
|||
|
30
Темный Эльф
28.09.07
✎
23:08
|
(29)Там в банк-клиенте в отдельном каталоге лежат файлы, по которым выгрузка формируется. В настройках команды выгрузки можно увидеть командную строку, которой выгрузка формируется и увидеть файл настройки выгрузки. Рядом могут лежать файлы с похожими именами, которые формируют дбф чуть другого формата. Если нет, то звони в банк, мне сразу выслали на мыло еще пару вариантов файла настройки, какой-то из них подошел. В общем тереби банковских программистов, они должны быть в курсе.
|
|||
|
31
serg_k
28.09.07
✎
23:10
|
(30) Спасибо тебе большое Темный Эльф, хоть кто-то глаза открыл на непонятку!
|
|||
|
32
КонецЦикла
28.09.07
✎
23:24
|
Ну и куле? Тот что ты мне прислал - нормальный!
Ладно, завтро мистовстреча, нельзя волноваться... |
|||
|
33
Темный Эльф
28.09.07
✎
23:31
|
(32)Ты Иксбэйзом открывал или АДО?
|
|||
|
34
serg_k
29.09.07
✎
00:24
|
(32) и так, и так
|
|||
|
35
Темный Эльф
29.09.07
✎
00:31
|
+(33)Просто дбф-ы разные и АДО-драйверы, наверное, тоже разные бывают. Какие-то открывают, какие-то нет. АДО просто только один раз использовал, поэтому добивался нормального дбф-а.
|
|||
|
36
КонецЦикла
29.09.07
✎
01:01
|
(33) АДО, wDBFview тоже нормально все показал
Про ИксБейс - может быть что-то и не так, не пробовал ибо... На крайняк можно конвертнуть формат |
|||
|
37
Темный Эльф
29.09.07
✎
02:04
|
(36)Покажи мне бухгалтера, который сможет выучить заклинание "конвертация формата"
|
|||
|
38
Вьюн
29.09.07
✎
23:00
|
(0) У тебя в dbf в суммах стоят "," вместо ".", как должно быть у нормального dbf-файла. Поэтому разные вьюеры и показывают по-разному. Попробуй замени все "," на "."
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |