Имя: Пароль:
1C
1С v8
Как проще строку превратить в дату?
0 Мисти
 
29.01.13
15:55
"03.12.12"
1 Sammo
 
29.01.13
15:56
кто из 12 год?
2 х86
 
29.01.13
15:57
Функция ПреобразоватьДату(СтрокаДата, СтрокаТабл, НомСтроки, ИмяФайлаЗагрузки)

   СтрокаДата = СокрЛП(СтрокаДата);
   ЗначениеВозврата = "01.01.0001 0:00:00";
   Если (СтрДлина(СтрокаДата) = 9) и (Лев(СтрокаДата, 2) = ".") Тогда
       СтрокаДата = "0" + СтрокаДата;
   КонецЕсли;
   
   Если (Сред(СтрокаДата, 3, 1) = ".") и (Сред(СтрокаДата, 6, 1) = ".") и (СтрДлина(СтрокаДата) = 10) Тогда
       ЗначениеВозврата = СтрокаДата + " 0:00:00";
   Иначе
       Если ЗначениеЗаполнено(СтрокаТабл.НомерСертификата) Тогда
           Сообщить("В строке номер: " + Строка(НомСтроки) + " не правильный формат даты: " + СтрокаДата + " Для файла: " + ИмяФайлаЗагрузки);
       КонецЕсли;
   КонецЕсли;
   
   Возврат ЗначениеВозврата;

КонецФункции // ПреобразоватьДату()
3 Wobland
 
29.01.13
15:57
разобрать на подстроки и скормить Дате()
4 Wobland
 
29.01.13
15:57
(2) неправильный - слитно
5 х86
 
29.01.13
15:57
(2)+ подшамань малость и пойдёт
6 Wobland
 
29.01.13
15:58
(2) возвращает строку
7 х86
 
29.01.13
15:58
(4)хз, мои тестировщики проверили ничего не сказали, я им привык доверять
8 Wobland
 
29.01.13
15:58
(7) двоечники
9 XLife
 
29.01.13
15:59
10 х86
 
29.01.13
15:59
(6)точняк (
11 Мисти
 
29.01.13
16:00
Спасибо!! Отдельно приятно, что всё по делу!
12 х86
 
29.01.13
16:01
(2)Так работает должна работать

Дата(ПреобразоватьДату(...))
14 Мисти
 
29.01.13
16:11
ДатаНакл= СокрЛП(Лист.Cells(СчетчикСтрок,5).Text);
       СтрТЗ.ДатаНакладной  = Дата("'"+"20"+Прав(ДатаНакл,2)+Сред(ДатаНакл,4,2)+Лев(ДатаНакл,2)+"'");
15 Мисти
 
29.01.13
16:29
Чуть-чуть осталось!
Дата('20121203')=03.12.2012 0:00:00
А у меня вышло   "'20121203'" и от этого дата не берется
16 Мисти
 
29.01.13
16:30
' - надо числом этот символ, да?
17 Wobland
 
29.01.13
16:31
(15) апостофы
18 Мисти
 
29.01.13
16:32
(17) - что апострофы? Как их вставить?
19 Wobland
 
29.01.13
16:33
(18) их не нужно вставить
20 aka AMIGO
 
29.01.13
16:34
вчера только делал:
ДТ = Дата(2013, 12, 31, 23, 59,59);
или
ДТ = Дата("20131231235959");
вроде всё прошло путём..
21 aka AMIGO
 
29.01.13
16:36
а в 8-ке срабатывает ДТ = '31122012000000'; ?
22 Reset
 
29.01.13
16:37
(21) Конечно
23 Reset
 
29.01.13
16:37
+(22) Только в формате ГГГГМММДДЧЧММСС
24 Fragster
 
гуру
29.01.13
16:37
(21) а в 3112 году что произошло?
25 aka AMIGO
 
29.01.13
16:38
(24) привет из будущего :) см (23) :)
26 aka AMIGO
 
29.01.13
16:39
(23) спасибо!
27 Wobland
 
29.01.13
16:39
(24) в 3100м примут новый календарь. с 20 месяцами и 12 днями в них
28 Мисти
 
29.01.13
16:40
(19) Ну вот, а я так старалась!
Точно, без них  всё нормально.
29 х86
 
29.01.13
16:40
вот дата("03.12.2012 0:00:00")
30 mikecool
 
29.01.13
16:41
(7) ржунимагу )))
31 Мисти
 
29.01.13
16:54
ДокНакл = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(СтрТЗ.НомерНакладной,СтрТЗ.ДатаНакладной);

новая беда!
Дата подучилась, документ не ищется. Вроде - всё ж как надо!
Есть документ с таким номером, почему не находится??
32 Wobland
 
29.01.13
16:55
(31) нету документа
33 Reset
 
29.01.13
16:56
(31) Ну может есть документ 00000556, а ищется 556 - система их считает разными. И дату проверь
34 Мисти
 
29.01.13
17:02
Ага! документ я для примера нарисовала январский, а ищу в прошлом году.
Получилось, спасибо!

"Панталык у нас маленький, не сбиться трудно". Линор Горалик
Нравится?
35 Wobland
 
29.01.13
17:03
нет
36 Serg_1960
 
29.01.13
17:45
(0) "Как проще?" - казалось бы простой вопрос, но каждый понимает его смысл по своему :)
37 Serg_1960
 
29.01.13
17:53
Интереса ради, лаконично и... прикольно :)

Сообщить(Дата("03.12.12"+"00 00:00:00")+25624252800);
38 Мисти
 
29.01.13
18:36
36 я имела в виду, нет ли там какой встроенной функции, которая всё мне разберет.
39 Jaffar
 
29.01.13
18:40
(38) есть такая функция.
сама все разберет, сама проверит защиту от дурака, сама все документы заполнит, проведет и сама отправит отчетность в налоговую.
в текущей версии называется "1С 9.0" :-)