Имя: Пароль:
1C
1С v8
Как хранить и вводить примерную дату?
0 RomaH
 
naïve
21.12.12
08:30
работа с анамнезом больного
описательная часть и дата события (если есть)

вот дата события вражается как:
три года назад
примерно в 1917 году
в июне 41
9 мая 1945

т.е. дата может быть указана с точностью как до дня, так и до года

как организовать хранение
и может быть подскажите интерфейс ввода ?
1 Галахад
 
гуру
21.12.12
08:31
Строкой. Не?
2 tdm
 
21.12.12
08:35
имхо дата она и есть дата)) прост представление даты разное - если прям так заморочиться надо то можно хранить дата + формат даты))
т.е. Формат(НашаДата,Форматнаястрока) - вот и храним НашуДату и ФорматнуюСтроку))
3 Галахад
 
гуру
21.12.12
08:37
(2) Три года назад - это какая дата?
4 RomaH
 
naïve
21.12.12
08:37
(2) и как будет выглядеть интерфейс ввода?
5 RomaH
 
naïve
21.12.12
08:38
(3) это примерно 2009 ?
6 tdm
 
21.12.12
08:39
(3) тут вопрос скорее куда это потом нужно...например где в отчете колонка, отборы там и т.д. если нет такой потребности то конечно же строка))
7 RomaH
 
naïve
21.12.12
08:40
по интерфейсу:
а если три поля числовых год/месяц/день
если в поле 0 - то оно не учавствует в составе даты

(6) ну так, на вскидку - построение анамнеза в хронологическй последовательности
8 MSII
 
21.12.12
08:41
Храни две даты, т.е. период. И отборы работать будут.
9 MSII
 
21.12.12
08:43
три года назад - 01.01.2009 - 31.12.2009
примерно в 1917 году - 01.01.1917 - 31.12.1917
в июне 41 - 01.06.1941 - 30.06.1941
9 мая 1945 - 09.05.1945 - 09.05.1945
10 RomaH
 
naïve
21.12.12
08:43
т.е. запись идет так:

апендицит - пять лет назад
коклюш в ноябре 2001
сломал ногу 2010

и потом это все надо выстроить в хронологическом порядке
(8) а интерфейс?
11 Галахад
 
гуру
21.12.12
08:44
"Три года" назад это точно три года назад?
Или примерно, плюс-минус год.
12 RomaH
 
naïve
21.12.12
08:45
(11) а это уже врач выясняет
13 Галахад
 
гуру
21.12.12
08:46
Гм. А таких дат не бывает?
"В детсве"
"В молодости"
14 MSII
 
21.12.12
08:46
(10) Что интерфейс? Придумай. Например, варианты - точная дата, приблизительно (месяц, год), обратным отчетом (х времени назад).
15 bse
 
21.12.12
08:46
16 tdm
 
21.12.12
08:47
(4) ну самое простое что приходит на ум - например два поля ввода в одном тип дата, а во втором выбирается вариант формата даты  если год то "ДФ=гггг", если месяц то "ДФ =ММ.гггг",если день то "ДФ=dd.ММ.гггг";при выборе какого-то значения оно автоматом прописывается в свойстве Формат элемента управления формы с датой)
17 RomaH
 
naïve
21.12.12
08:49
(15) + (16) как вариант
т.е. (15) - только формат кинуть перед вводом даты
18 tdm
 
21.12.12
08:50
(17) в (15) вариант конечно, но тогда где-то и галочки хранить придется))
например 01.01.2012 - это что ? (2012год, январь2012 или 1января 2012 ???) т.е. надо будет еще помнить как эту дату выводить
19 RomaH
 
naïve
21.12.12
08:50
(13) ну да, тогда тут еще нужна привязка к возрасту пациента и период годом ограничивать нельзя
в детстве - это когда было 5-10 лет
20 MSII
 
21.12.12
08:53
(19) Какая дата раньше - в молодости или 3 года назад?
21 tdm
 
21.12.12
08:54
+(18) хотя конечно если кол-во вариантов предстваления даты ограниченное то можно например в секундах и минутах вариант представления даты хранить))) вряд ли дату с точностью до секунды ктот использует ? - а так нет необходимости отдельные поля в базе хранить, все равно формат в интерфейсе будет обрезать до необходимого вида
22 bse
 
21.12.12
08:55
(18) получить нужный кусок даты - это форматирование, а склонение результата и построение строки записи это уже другая часть задачи и она решается компоновкой результата с другими полями формы.
23 RomaH
 
naïve
21.12.12
08:55
получается такая большая формы выбора периода:
несколько колонок с вариантами:
по возрасту
по событиям (армия, пятый класс школы, третий института)
...
указание конкретного периода
(20) в молодости, если для меня
24 RomaH
 
naïve
21.12.12
08:58
(20) это на усмотренение врача - если ему надо - он выяснять будет
пришел дедушка лет под 80
рассказывает - ну была ЧМТ в молодоти
врач уточнит - в школе/в армии, 10-15 лет, 15-18, и так далее