Имя: Пароль:
1C
 
Преобразование строки в дату
,
0 falselight
 
21.03.19
08:14
Как подобную строку преобразовать в дату???
"18.03.2019"
ДАТА(НачалоОтгрузки)

Пишет, преобразование к типу дата не может быть выполнено!
1 Галахад
 
гуру
21.03.19
08:19
Год вперед поставь.
2 falselight
 
21.03.19
08:21
(1) А если так? то никак????
Это загрузка идет с листа.
3 falselight
 
21.03.19
08:22
(1) Или програмно поставить? Как то муторно получается ((((
4 Галахад
 
гуру
21.03.19
08:22
(2) Ну да.
5 Галахад
 
гуру
21.03.19
08:22
(3) Программировать не мешки ворочать.
6 shadow_sw
 
21.03.19
08:23
разбери строку - собери дату..делов то
7 falselight
 
21.03.19
08:24
(6) Дааа, тут позаморачиваться тогда придется. На все случаи.
8 СтарПом
 
21.03.19
08:24
(3)
ДатаСЛиста = "18.03.2019"
Рез = ДАТА(Число(Прав(ДатаСЛиста,4)),Число(Сред(ДатаСЛиста,4,2)),Число(Лев(ДатаСЛиста,2)));
9 Zmich
 
21.03.19
08:25
(0). Попробуй так: Дата(НачалоОтгрузки + "  0:00:00");
10 shadow_sw
 
21.03.19
08:25
(8) взял сдал контору
11 ASU_Diamond
 
21.03.19
08:30
(7) это какие случаи?
12 ASU_Diamond
 
21.03.19
08:30
(8) будет работать только до 31.12.9999 :)
13 unf13
 
21.03.19
08:41
ДатаСтрокой= "18.03.2019";
МассивЧастейДаты = СтрРазделить(ДатаСтрокой,".");
Рез = ДАТА(МассивЧастейДаты[2],МассивЧастейДаты[1],МассивЧастейДаты[0]);
14 СтарПом
 
21.03.19
08:42
(10) ну блин, не фотку же у него просить :)
15 falselight
 
21.03.19
08:56
(11) Ну что дата в поле может быть вбита как угодно. В поле для загрузки.
16 shadow_sw
 
21.03.19
08:58
(15) чего? у поля тип строка что ль? нельзя сделать дату?
17 falselight
 
21.03.19
09:06
(16) говорят файлы эксель могут быть какие угодно, разные
эталон не предоставили, так что приходится понимать что там может быть все что угодно
18 palsergeich
 
21.03.19
09:27
(17) я бы в таких условиях сделал следующее:
Описываем изместные случаи
Настраиваем логирование так, что бы при разборе с ошибкой разбора данные файла в БД не писались.
Настраиваем оповещение разработчику об ошибках разбора.
При наступлении события - каждый случай разбирается и вносятся доработки.
Потому что ситуации когда строку в принципе в дату преобразовать нельзя вполне реальные, например ошибки ввода.
Иначе эту задачу можно делать бесконечно:
А месяц может вводится не числом а буквами.
И не целиком, а только первые три
И так далее
19 palsergeich
 
21.03.19
09:28
20 shadow_sw
 
21.03.19
09:35
(18) ТС ответ на такое дал в  (7) же
21 palsergeich
 
21.03.19
09:36
(20) дело в том, что все случаи предусмотреть невозможно)
Правильнее сделать механизм логирования
22 Serg_1960
 
21.03.19
09:40
(0) А гуглить не пробовали? :(
23 Serg_1960
 
21.03.19
10:00
"дата в поле может быть вбита как угодно. В поле для загрузки" - фантазия юзверей должна быть ограничена в разумных пределах, иначе - задача не решабельная.
Пример:
Дано: "01.02.2019"
Вопрос: "02" - это месяц или число даты?

PS: на конкретный вариант (0) оптимальный ответ дан в (9)
24 falselight
 
21.03.19
10:09
(22) Я загуглился уже. Бывает клинить начинает (и не из за задач этих), не знаешь куда бежать.
Вот и иду на форум, возможно с примитивными вопросами.
25 palsergeich
 
21.03.19
10:32
Как человек решавший эту задачу ещё раз скажу.
Вы можете написать идеальный алгоритм, который в демо примере будет работать быстрее всех.
Но до первого названия месяца на шведском или немецком.
Или до первой даты в usa формате.
26 palsergeich
 
21.03.19
10:32
А это рано или поздно случится)
27 Serg_1960
 
21.03.19
13:30
(25) Точно, точно. Не одно - так другое, но обязательно случится. Обязательно найдётся умник, который исправит дату вручную в источнике и напишет месяц даты с ошибкой.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший