|
Как преобразовать строку типа "23.05.2022" в дату в 1с. | ☑ | ||
---|---|---|---|---|
0
alekosansey
01.06.22
✎
11:20
|
Как преобразовать строку типа "23.05.2022" в дату в 1с. Пишу Дата("23.05.2022") говорит что невозможно преобразовать. Как преобразовать правильно в формат дата строку. Заранее огромное спасибо
|
|||
1
Ненавижу 1С
гуру
01.06.22
✎
11:24
|
(0) начнем с того, откуда вы эту строку взяли
|
|||
2
alekosansey
01.06.22
✎
11:24
|
c текстового документа
|
|||
3
NorthWind
01.06.22
✎
11:25
|
Ну есть же конструктор Дата (ДД, ММ, ГГГГ) или как-то так?
Тогда Дата (Лев (Строка, 2), Сред (Строка, 3, 2), Прав (Строка, 4). |
|||
4
NorthWind
01.06.22
✎
11:26
|
пардон, Сред (Строка, 4, 2). Ну вы поняли.
|
|||
5
Kassern
01.06.22
✎
11:26
|
(3) год вначале)
|
|||
6
Kassern
01.06.22
✎
11:26
|
А вообще можно попробовать xmlЗначение(Дата)
|
|||
7
NorthWind
01.06.22
✎
11:27
|
(5) я не помню точно. Поэтому и написал "или как-то так"
|
|||
8
Dmitrii
гуру
01.06.22
✎
11:29
|
(0) Напиши так.
или так (тоже самое)
|
|||
9
Dmitrii
гуру
01.06.22
✎
11:30
|
+ к (8) Только учти, что это недокументированная особенность работы функции Дата().
|
|||
10
alekosansey
01.06.22
✎
11:34
|
6 Не работает
|
|||
11
alekosansey
01.06.22
✎
11:35
|
8 Спасибо самый удобный вариант
|
|||
12
Кир Пластелинин
01.06.22
✎
11:36
|
(3) имхо безопасней ориентироваться на "разделитель" частей даты. а то мало ли вдруг окажется, что вместо 01.12.22 будет 1.12.22
|
|||
13
vs7719
01.06.22
✎
11:53
|
ЗначениеДаты = ОбщегоНазначенияКлиентСервер.СтрокаВДату("23.05.2022");
|
|||
14
vis_tmp
01.06.22
✎
11:55
|
(13) Это в какой конфигурации?
|
|||
15
vs7719
01.06.22
✎
12:00
|
(14) это из БСП, так что функция может быть в актуальных конфигурациях.
|
|||
16
vs7719
01.06.22
✎
12:01
|
||||
17
Конструктор1С
01.06.22
✎
12:40
|
(13) ток там, вроде бы, СтроковыеФункцииКлиентСервер.СтрокаВДату(), хотя могли и в ОН пробросить
|
|||
18
NorthWind
01.06.22
✎
12:41
|
(12) да, это разумно.
|
|||
19
NorthWind
01.06.22
✎
12:42
|
(17) на худой конец, даже в глобальниках старых конф на 7.7, не говоря уже о восьмерочных, всегда присутствовала функа, которая дербанила куски из строки с разделителями. А сейчас, кажись, уже и в платформе есть. Дальше дело техники.
|
|||
20
timurhv
01.06.22
✎
12:42
|
(17) это в старой БСП
|
|||
21
Злопчинский
01.06.22
✎
15:39
|
(0) Переходи на 7.7 - там Дата("ДД.ММ.ГГГГ")- работает...
|
|||
22
yopQua
01.06.22
✎
16:10
|
(21) +1, люто)
|
|||
23
1Сергей
01.06.22
✎
16:13
|
Шах и мат, снеговички)
|
|||
24
Волшебник
модератор
01.06.22
✎
16:14
|
(21) Какой изврат...
|
|||
25
yopQua
01.06.22
✎
16:35
|
(23) всмысле лютый +1, топлю за такой вариант
|
|||
26
MWWRuza
гуру
01.06.22
✎
22:45
|
+(23) Ага... Для меня, это тоже было дико... Когда привык к тому, что в (21), и, казалось бы в снеговике должно быть не меньше возможностей по преобразованию значений... Ан нет :-)
|
|||
27
ДедМорроз
01.06.22
✎
22:48
|
Я во всех языках пишу свой конвертер,т.к.потом ловить глюки смены региональных настроек и т.п.очень не хочется.
Ну и отличить первый год от первого дня тоже достаточно просто,если он 4 цифры. |
|||
28
Злопчинский
02.06.22
✎
01:19
|
Дата("29.06.2022")
Дата("29\06\2022") Дата("29/06/2022") Дата("29-06-2022") |
|||
29
NorthWind
02.06.22
✎
06:45
|
(26) в снеговике тип даты сделан правильно, как в других языках, в отличие от клюшек, где он урезанный, без времени. Поэтому вполне логично что есть некоторые отличия.
|
|||
30
Kigo_Kigo
02.06.22
✎
08:35
|
(29) Да, но такую элементарщину как Дата("23.05.2022") он же должен понимать? и если я так пишу, то я ИМХО подразумеваю что это начало дня, это вангую вопрос про время
|
|||
31
DEVIce
02.06.22
✎
09:47
|
Такое ощущение, что большинство участников ветки первый раз 1С увидели. Вопрос в (0) и ответы на него - это же база базная. Как можно такие вещи не знать? Ну ладно никто не помнит все константы наизусть, но блин в СП то можно посмотреть и простейший алгоритм преобразования строки в параметры для метода Дата пишется в одну строку. Про БСП вообще молчу.
|
|||
32
yopQua
02.06.22
✎
09:59
|
боль и унижение
|
|||
33
Garykom
гуру
02.06.22
✎
10:15
|
(30) а такую Дата("23.05.22") тоже должен?
Не подскажешь тут что год а что число? |
|||
34
yopQua
02.06.22
✎
10:32
|
(33) это одиннадцать часов вечера
|
|||
35
Kigo_Kigo
02.06.22
✎
11:13
|
(33) А так Дата("23.05.22 00:00:01") ?
|
|||
36
ДедМорроз
03.06.22
✎
21:35
|
Формата с двумя цифрами года и годом вначале не было.
Тут можно считать,что год всегда в конце,а вот месяц и день - в зависимости от разделителей. |
|||
37
Злопчинский
04.06.22
✎
09:39
|
а в клюшках (28) отработает....
|
|||
38
Злопчинский
04.06.22
✎
09:40
|
(31) "можно посмотреть и простейший алгоритм преобразования строки в параметры для метода Дата пишется в одну строку."
в одну строку писать бяка, его отлаживать тяжело... |
|||
39
Гений 1С
гуру
04.06.22
✎
13:25
|
у меня есть в списке шаблонов функции на этот счет
Функция СтрокаДаты_ДД_ММ_ГГГГ_ВДату(Строка) Д = Число(Сред(Строка, 1, 2)); М = Число(Сред(Строка, 4, 2)); Г = Число(Сред(Строка, 7, 4)); Возврат Дата(Г, М, Д); КонецФункции Функция СтрокаДаты_ГГГГ_ММ_ДД_ВДату(Строка) Д = Число(Сред(Строка, 9, 2)); М = Число(Сред(Строка, 6, 2)); Г = Число(Сред(Строка, 1, 4)); Возврат Дата(Г, М, Д); КонецФункции |
|||
40
Злопчинский
04.06.22
✎
14:28
|
(39) фу, какая гадость.
две эти функции объединяет общее - наличие разделителей. прямую или реверсную запись можно определить позицией первого разделителя. . надо было еще выделение оставных частей даты в отдельные функции оформить... |
|||
41
Гений 1С
гуру
04.06.22
✎
14:38
|
(40) перфекционизм - зло. Когда четко знаешь формат, лишние анализы только замедляют выполнение программы. А если тебе нужен анализатор, прикрути функцию разобратьАнализируяФормат, ггг
|
|||
42
Злопчинский
04.06.22
✎
14:53
|
(41) "перфекционизм - зло." - согласен.
Обратная сторона плохо. "Когда четко знаешь формат" - кто знает? ты? а почему ты знаешь и я обязан знать? вполне достаточно "знать" что дата в типовом четырехгодовом формате с разделителями. обычно так бывает. МояДата = ПолучитьДатуБезГеморроя(датаСтрокой); |
|||
43
Гений 1С
гуру
04.06.22
✎
17:44
|
(42) ну например, когда я импортировал из ZOHO BOOKS я точно знал формат даты в API, тогда как раз и написал эти функции. Еще вопросы, сэр?
|
|||
44
Злопчинский
04.06.22
✎
17:56
|
(43) Носэр!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |