Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/141: Рейтинг темы: голосов - 141, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 142
1

Проблема с загрузкой дат

04.05.2010, 15:45. Показов 25850. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу специальную конфигурацию, в которой идет обработка данных - загрузка из файлов dbf, обработка, далее последующая выгрузка также в dbf. Обрабатываются данные по различным документам, в итоге временной разброс может быть очень большим - как начало XX века (например дата рождения), так и 2010-2020 гг (срок окончания действия удостоверения). В настройках установил "Год начала рабочего столетия" равным 1911 (меньше не дает), в итоге все даты старше 2011 он искажает, превращая например 2012 в 1912 и т.д. Пытался обойти это ограничение путем смены типа данных (строка вместо даты), но при этом при последующей выгрузке в файл DBF год даты все равно летит и данные выгружаются неправильно.. Нельзя ли как-нибудь обойти это ограничение?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2010, 15:45
Ответы с готовыми решениями:

Проблема с загрузкой базы
Есть проблема, кто поможет буду вечно благодарен ))) 7.7 скопировал каталог базы с одного компа...

Проблема с загрузкой ЦП
Всем доброго времени суток! Столкнулся с проблемой, которую не смог сам решить! Вот...

Проблема с загрузкой
Изначально стояла семерка - был диск C(вин7), D, и пустой раздел Поставил Ubuntu - диск C(win7),...

ПРОБЛЕМА С ЗАГРУЗКОЙ
ПРИВЕТ ВСЕМ!!! ПОМОГИТЕ РАЗОБРАТЬСЯ С ЗАПУСКОМ КОМПА.ПРИ ВКЛЮЧЕНИИ ВЫДАЁТ СООБЩЕНИЕ (...

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
Цитата Сообщение от Спартак
на 7-ку это похоже ))) а что мешает пользоваться не датами, а строками?
Поле в файле DBF должно быть именно типа "дата", это строгое ограничение. Если бы не это - проблем бы не было никаких
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
Поставь в сервис/параметрах число цифр в предствлении года равное четырем и не парь мозги.
Давно поставил, уважаемый puh14, все-таки не первый день с 1С работаю. Если б все было так просто..
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
попробуй в файл дату передавать двумя полями - дата и число из 4 символов.
В дальнейшем из даты вытаскивать месяц и день, а из числового поля формировать год.
Вроде, несложно
Так нельзя, ибо по приказу поле должно быть из 8 символов, причем именно типа "дата". Судя по всему в 1С 7.7 это ограничение обойти невозможно..
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
Тогда год прилепи к какому-нибудь полю через разделитель, длина которого явно избыточна, и тащи оттуда

А что происходит, когда даты в файле представлены как 11/08/1909 и 20/12/2008 ?
Как они преобразуются в 1с ?
Дата за 1909 год не загружается вообще (в документе поле остается пустым), за 2008 - загружается нормально (мой рабочий период - с 1911 по 2011 включительно). Не совсем пойму насчет разделителя, можно чуть подробней объяснить?



Цитата Сообщение от vbs
Посмотрел - в файле год представлен 4мя символами, а при внедрении в 1С - двумя.
Тогда так : при приеме в 1С разбери входную дату как
Date1 = Формат(Date0,"DDDMMYYYY"); - это жить будет как надо
Потом, может, и придумаешь что-нибудь (скажем, из этой строки сформировать свою правильную дату несложно)
Так я делал, в программу загружаю и обрабатываю даты как строки, все проходит нормально. Вся проблема лишь в том чтобы выгрузить в итоге дату именно как тип "дата" в поле файла DBF



Цитата Сообщение от 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
Пусть в 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)
При загрузке из ДБФ - обратная операция - и волки сыты, и овцы целы
vbs, как всегда спасибо огромное! Я вчера еще все правильно сделал, лишь при выгрузке забыл сделать преобразование типа (из строки в дату - Дата(date)). Теперь поправил и все отлично заработало!!! Таким образом удалось обойти ограничение платформы 7.7 :P

Всем огромное спасибо за помощь!! :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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2010, 09:40
Помогаю со студенческими работами здесь

Проблема с загрузкой ХР
Доброго времени суток, господа! Подскажите, пожалуйста, в чем может быть проблема. Исходные...

Проблема с загрузкой пк
Здравствуйте, такая проблема. Недавно решил переустановить Windows, с 7 (пиратки) на 7 (пиратку),...

Проблема с загрузкой windows
Доброго времени суток! Перед данным обращением испробовал способы, которые обсуждались в данном...

Проблема с загрузкой FreeBSD
Здравствуйте уважаемые форумчане. Так как я новичок во FreeBSD и вообще в *NIX подобных системах,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru