Имя: Пароль:
1C
1С v8
Создание dbf.
0 bard666
 
10.04.18
11:28
Доброго времени суток!
Средствами 1с создаю файл dbf. Клиент говорит, что дату видит как MM.DD.YYYY. Начал разбираться на своей стороне. Действительно, открываю офисом 2003 на серваке, вижу также. На моей машине 2013 офис открывает корректно DD.MM.YYYY. Проверяю формат ячейки екселя: дата DD.MM.YYYY (самый верхний) на обеих машинах. Проверяю формат отображения даты ОС - такой же. dbf viewer 2000 открывает файл корректно. Блокнот или wordpad показывают дату как YYYYMMDD + следущая колонка.
Платформа 8.3.10.2252.
Фрагменты кода

Т = Новый Xbase;
    ИмяФайлаВыгрузки = Прав(СокрЛП(НомерДокумента),8)+".dbf";
    ИмяФайла = ИмяФайлаВыгрузки;
    мИмяДБФ = КаталогВременныхФайлов()+ИмяФайла;


    Т.поля.Добавить("NDOC",     "S", 20, 0); //Номер расходной накладной СИА
    Т.поля.Добавить("DATEDOC",  "D"       ); //Дата расходной накладной СИА
    Т.поля.Добавить("CODEPST",  "S", 12, 0); //Код товара

Т.Добавить();
        НомерЗаписи = Т.НомерЗаписи();
        
        Т.УстановитьЗначениеПоля("NDOC",     НомерДокумента);    
        Т.УстановитьЗначениеПоля("DATEDOC",  ДатаДокумента);
        Т.УстановитьЗначениеПоля("CODEPST",  Прав(СокрЛП(Выборка.Номенклатура.Код), 12));



Вопрос по колонке DATEDOC. Может кто сталкивался с подобным?
1 VladZ
 
10.04.18
11:30
(0) "Действительно, открываю офисом 2003 на серваке, вижу также" - чем открываешь?
2 bard666
 
10.04.18
11:32
(1) Excel 2003
3 SSSSS_AAAAA
 
10.04.18
11:33
(0) С чем "подобным"? С неумением клиента настроить свои проги для правильного показа даты? Да сплошь и рядом.
Короче, к созданию дбф все упомянутое не имеет ни малейшего отношения. Все упирается в средства отображения даты и в их настройку.
4 Остап Сулейманович
 
10.04.18
11:33
(0) "Блокнот или wordpad показывают дату как YYYYMMDD".
И что? Вас это удивило?
5 Остап Сулейманович
 
10.04.18
11:34
+ (4) Зачем ДБФ смотреть блокнотом - я понять затрудняюсь...
6 bard666
 
10.04.18
11:36
(3) Проверил формат ячейки на серваке, проверил системные настройки, попробовал в новый файл ексель прописать дату в таком же формате DD.MM.YYYY, день и месяц не поменялись месати. Какие настройки ещё смотреть?
7 Остап Сулейманович
 
10.04.18
11:38
(6) Региональные настройки в панели управления.
8 SSSSS_AAAAA
 
10.04.18
11:39
(6) Какой еще "ячейки"? В дбф нет ячеек. Ексель показывает в соответствии с региональными настройками винды.
9 bard666
 
10.04.18
11:40
(4) (5) дополнительная проверка. Удивило, что дата отображается совместно со следущим полем. К примеру, дата 05.04.2018, далее в колонке 000003461. Блокнот показывает 20180405000003461.
10 VladZ
 
10.04.18
11:41
DBF нужно смотреть специальной программой. Не нужно открывать Экселем.
11 bard666
 
10.04.18
11:42
(7) Региональные настройки проверил. Все как надо.
12 SSSSS_AAAAA
 
10.04.18
11:42
(9) Более идиотского выбора смотрели для дбф трудно придумать. Блокнот ничего не знает про поля, ячейки и прочую муть и показывает просто байтики так, как они идут в файле.
13 bard666
 
10.04.18
11:42
(8) Формат ячейки екселя, которым открыл dbf
14 SSSSS_AAAAA
 
10.04.18
11:43
(11) Ну раз как надо, то что еще не так?
15 SSSSS_AAAAA
 
10.04.18
11:44
Как сказано в (10) нужно выбрать правильную смотрелку.
16 s03
 
10.04.18
11:44
(0) "Т.УстановитьЗначениеПоля("DATEDOC",  ДатаДокумента)" - а не пробовал, прежде чем дату в поле загонять, преобразовать её в однозначно понятный (для любых систем) вид, например Формат(ДатаДокумента, "ДФ=dd.MM.yyyy")?
17 bard666
 
10.04.18
11:47
(16) Так изначально поле создается в формате Date. Не передавать же туда строку.
18 SSSSS_AAAAA
 
10.04.18
11:47
(16) С каких это пор строковый вид стал однозначным для всех систем?
19 SSSSS_AAAAA
 
10.04.18
11:48
(17) "dbf viewer 2000 открывает файл корректно"
Все с файлом ясно. Остальное - настройки клиентов, пытающихся этот файл показать. Вот их и надо ковырять.
20 zwei
 
10.04.18
11:48
(16) Преобразовать дату к строке, чтобы при присвоении оно опять неявно преобразовалось в дату. Браво.
21 Garykom
 
гуру
10.04.18
11:49
(0) 1. Привет драгдилерам

2. Файл DBF созданный в 1С у клиента у тебя на компе нормально открывается? Если до то проблема в чьем-то экселе/блокноте ))
22 Остап Сулейманович
 
10.04.18
11:49
(9) "Блокнот показывает 20180405000003461" И что? Длина поля типа Дата в ДБФ = 8. Для хранения вполне достаточно. Что вас смущает? Что следующее поле приписано встык? Или что не вставляются разделители элементов даты? Так я вас расстрою - в ДБФ нет не только разделителей полей, но и разделителей строк.
Оно все есть в заголовке файла. И длина записи и тип каждого поля с указанием длины. И общее количество записей. Все в заголовке.
23 s03
 
10.04.18
11:50
(17) (20) так для проверки, что запишет и что потом прочитает можно и поменять тип, нет?

(18) а разве тот же Excel не хранит дату, на самом деле, как число? и только от формата ячейки зависит что будет показана именно дата?
24 Остап Сулейманович
 
10.04.18
11:52
Вот и выросло поколение для которого Эксель есть альфа и омега... (((
25 Garykom
 
гуру
10.04.18
11:53
Кстати! Пусть поставят LibreOffice, открывают DBF им и сохраняют формат XLS.
Только не забыть выделить все и автоширина колонок перед сохранением...
26 Garykom
 
гуру
10.04.18
11:55
(25)+ Libre при открытии еще кодировку сам не умеет и всегда спрашивает "тебе какая кириллица".
27 bard666
 
10.04.18
11:56
(25) Точно. Все уйдем на линукс)
Спасибо всем за советы.
Соглашусь с (19). На своей стороне все проверил, в таком же ключе уходят файлы другим клиентам. Вопросы только у одного. Пусть решает на своей стороне как просматривать и обрабатывать.