Создал обработку для импорта данных из DBF файла, но никак не могу понять причину глюка.
Следующий код ДБФ.ПолучитьЗначениеПоля(1) возвращает 9999.99 для чисел равных или больше 10000. Длина поля 7, точность 2.
Открываю в Excel нормально, т.е 12000 так и показывает а не 9999.99 Файл DBF создается старой ДОС программой, может что в самом файле? Почему тогда Excel правильно понимает.
VasilyKushnir Написал:
-------------------------------------------------------
> Спрашиваю еще раз - куда загоняешь полученное
> значение? Может с форматами нахимичил или
> разрядности приемника недостаточно...
>
> --------------------------------------------------
Какая разница чему буду присваивать, если выражение ПолучитьЗначениеПоля(1) рассчитано в отладчике до строки:
Заказы.УстановитьЗначение(СтрокаТаблицы,"Сдельно",ДБФ.ПолучитьЗначениеПоля(1));
Заказы это таблица значений. Колонка "Сдельно" задана:
Заказы.НоваяКолонка("Сдельно","Число",8,2,"Сумма",8);
ДмитрийF Написал:
-------------------------------------------------------
> Какая разница чему буду присваивать, если
> выражение ПолучитьЗначениеПоля(1) рассчитано в
> отладчике до строки:
Что показывает отладчик?
>
> Заказы.УстановитьЗначение(СтрокаТаблицы,"Сдельно",
> ДБФ.ПолучитьЗначениеПоля(1));
>
> Заказы это таблица значений. Колонка "Сдельно"
> задана:
> Заказы.НоваяКолонка("Сдельно","Число",8,2,"Сумма",
> 8);
>
>
Все-таки попробуй
ТекСумма = ДБФ.ПолучитьЗначениеПоля(1); // или (ин1) если в цикле
Сообщить (ТекСумма);
Что покажет?
Смысл: исключить подозрение на формат Заказы.НоваяКолонка("Сдельно","Число",8,2,"Сумма",8)
Судя по формату в ДБФ 7.2 число 12000 должно грузится нормально (но, как вариант: НоваяКолонка("Сдельно","Число",8,2,"Сумма",12).
Черкни на мыло - скину приблуду для работы с ДБФными файлами и лекарство к ней же. А сам ДБФ большой? Мож скинешь - я его прощупаю...
>Следующий код ДБФ.ПолучитьЗначениеПоля(1) возвращает
>9999.99 для чисел равных или больше 10000. Длина поля 7,
>точность 2.
9999.99 - это и есть 7.2
10000.00 - это уже 8.2
ps тоже могу попробовать прощупать дбф-ку...
10000.00 - это уже 8.2
Видимо только в понимании программистов 1С, т.к. другими программами 10000.00 открывается как надо. Что делать-то.
Т.к. ПолучитьЗначениеПоля(1) берет длину поля из DBF, может в файле DBF тогда увеличить длину поля с 7 до 8? Как это сделать в 1С?
ДмитрийF Написал:
-------------------------------------------------------
> Видимо только в понимании программистов 1С, т.к.
> другими программами 10000.00 открывается как надо.
> Что делать-то.
> Т.к. ПолучитьЗначениеПоля(1) берет длину поля из
> DBF, может в файле DBF тогда увеличить длину поля
> с 7 до 8? Как это сделать в 1С?
Конечно формат поля должен быть 8.2 для поля со значением 12656.2 , ведь это число 12656.20.
Средствами 1с разрядность поля не изменишь, чтобы потом с него числа считывать. Надо пользоваться программками, типа, DBF navigator
http://www.alxsoft.narod.ru/ Коротенькая и бесплатная
Дмитрий, в том файле, что ты мне кинул максимальное значение по полю SUM = 8236.80. Ячейку со значением 12656.2, как ты писал в сопроводилове не обнаружил.
Сей час чуть разгребусь по работе - скину прогу для работы с ДБФ и лекарство.
VasilyKushnir Написал:
-------------------------------------------------------
> Дмитрий, в том файле, что ты мне кинул
> максимальное значение по полю SUM = 8236.80.
> Ячейку со значением 12656.2, как ты писал в
> сопроводилове не обнаружил.
> Сей час чуть разгребусь по работе - скину прогу
> для работы с ДБФ и лекарство.
>
> --------------------------------------------------
> ------
> Лучше компьютера только пиво, но одно другому не
> мешает.
Ячейка со значением 8236.80 позиция 385
Ячейка со значением 12656.2 позиция 398
Проверь почту. С помощью этой гадости можно очень много интересных вещей делать (сжатие, изменение аттрибутов и т.д.) - я даже восстанавливал вшарашенные заголовки ДЮФ в 1С.
ДмитрийF Написал:
-------------------------------------------------------
> Vladko твоя ссылка не работает.
Хм, а у меня грузится.
Вот прямая ссылка на программу:
http://alxsoft.narod.ru/DBFNavigator201rus.zip (308 кб.)
Vladko все правильно,ссылка работает.
На работе сижу в инете через сервер (почемуто ошибка соединения по этой ссылке), а вот дома с прямым инетом без проблем. Так что извини.