0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
1 | |
Проблема с загрузкой дат04.05.2010, 15:45. Показов 25850. Ответов 15
Метки нет (Все метки)
Пишу специальную конфигурацию, в которой идет обработка данных - загрузка из файлов dbf, обработка, далее последующая выгрузка также в dbf. Обрабатываются данные по различным документам, в итоге временной разброс может быть очень большим - как начало XX века (например дата рождения), так и 2010-2020 гг (срок окончания действия удостоверения). В настройках установил "Год начала рабочего столетия" равным 1911 (меньше не дает), в итоге все даты старше 2011 он искажает, превращая например 2012 в 1912 и т.д. Пытался обойти это ограничение путем смены типа данных (строка вместо даты), но при этом при последующей выгрузке в файл DBF год даты все равно летит и данные выгружаются неправильно.. Нельзя ли как-нибудь обойти это ограничение?
0
|
04.05.2010, 15:45 | |
Ответы с готовыми решениями:
15
Проблема с загрузкой базы Проблема с загрузкой ЦП Проблема с загрузкой ПРОБЛЕМА С ЗАГРУЗКОЙ |
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 69
|
|
04.05.2010, 15:56 | 2 |
на 7-ку это похоже ))) а что мешает пользоваться не датами, а строками?
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
04.05.2010, 16:12 | 3 |
Сообщение от Спартак
0
|
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
|
|
04.05.2010, 18:05 | 4 |
Поставь в сервис/параметрах число цифр в предствлении года равное четырем и не парь мозги.
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
05.05.2010, 08:34 | 5 |
Сообщение от puh14
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
05.05.2010, 10:05 | 6 |
попробуй в файл дату передавать двумя полями - дата и число из 4 символов.
В дальнейшем из даты вытаскивать месяц и день, а из числового поля формировать год. Вроде, несложно
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
05.05.2010, 10:13 | 7 |
Сообщение от vbs
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
05.05.2010, 10:23 | 8 |
Тогда год прилепи к какому-нибудь полю через разделитель, длина которого явно избыточна, и тащи оттуда
А что происходит, когда даты в файле представлены как 11/08/1909 и 20/12/2008 ? Как они преобразуются в 1с ?
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
05.05.2010, 10:41 | 9 |
Посмотрел - в файле год представлен 4мя символами, а при внедрении в 1С - двумя.
Тогда так : при приеме в 1С разбери входную дату как Date1 = Формат(Date0,"DDDMMYYYY"); - это жить будет как надо Потом, может, и придумаешь что-нибудь (скажем, из этой строки сформировать свою правильную дату несложно)
0
|
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
|
|
05.05.2010, 11:01 | 10 |
Хреново что из восьми, тогда действительно фиг поймешь какое столетие.. попробуй договорится чтобы было десять - самый легкий путь. И голова ни у кого болеть не будет.
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
05.05.2010, 11:39 | 11 |
Сообщение от vbs
Сообщение от vbs
Сообщение от puh14
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
05.05.2010, 11:59 | 12 |
Пусть в 1С живет дата Date0 = 09.09.09 (1909 год)
тогда Date1 = Формат(Date0,"DDDMMYYYY"); "09.09.1909" а если Date0 = 09.09.09 (2009 год) тогда Date1 = Формат(Date0,"DDDMMYYYY"); "09.09.2009" Перед выгрузкой из строки Date1 формируем Date2 типа "Дата" и вкатываем в поле ДБФ (оно будет выглядеть 09/09/1909 или 09/09/2009) При загрузке из ДБФ - обратная операция - и волки сыты, и овцы целы
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
05.05.2010, 12:33 | 13 |
Сообщение от vbs
Всем огромное спасибо за помощь!! :ithx:
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
22.06.2010, 16:15 | 14 |
После ряда командировок и другой срочной работы вернулся вновь к разработке программы и вновь встала подобная проблема! Считываю данные с файла DBF и заношу их в справочник, при этом даты свыше 2011 года заносятся как 19хх (1911 вместо 2011 и т.д.), если же делаю как раньше (меняю тип на строку и т.д.) - то заносятся только последние 2 цифры года и все(
Что только ни пробовал - безрезультатно( Код ( (Unknown Language)): ДР=СокрЛП(ДБФ.DATE_OUT); ДатаСтрока = Формат(ДР, "ДДММГГГГ"); Если (ДатаГод(ДР)>1900) и (ДатаГод(ДР)<1950) Тогда // Загружена дата с 2001 по 2050 год НоваяДата=Лев(ДатаСтрока,6) + "20" + Прав(ДатаСтрока,2); Иначе НоваяДата = ДатаСтрока; //обычная дата XX века КонецЕсли; СпрПац.ДатаОкончанияПолиса = НоваяДата;
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
22.06.2010, 16:53 | 15 |
А попробуй-ка так :
НоваяДата = ДР; ДобавитьМесяц(НоваяДата,1200)
0
|
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
|
|
23.06.2010, 09:40 | 16 |
vbs, виноват - проблемы никакой нет, все прекрасно работает как в старом варианте. Просто строку с изменением данного поля написал в коде дважды и изменение первой из них, естественно, не давало желаемого результата. Да уж, трудно работать с постоянным недосыпом, надо срочно решать эту проблему
0
|
23.06.2010, 09:40 | |
23.06.2010, 09:40 | |
Помогаю со студенческими работами здесь
16
Проблема с загрузкой ХР Проблема с загрузкой пк Проблема с загрузкой windows Проблема с загрузкой FreeBSD Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |