|
преобразовать в строку 10.10.2018 | ☑ | ||
---|---|---|---|---|
0
ДядяМитяй
02.11.18
✎
14:45
|
Видимо, у меня пятница, но уперся в проблему.
Мне из внешнего источника(с сайта) приходит параметр. Вообще-то это подразумевается как дата, только 1с (на базе ут10) чтобы понять, что это дата, надо добавить хотя бы 0:0:0 (время). Преобразовать в строку не могу, заменить точки не могу, преобразовать в дату не могу. Убейте меня |
|||
1
1Сергей
02.11.18
✎
14:47
|
И какого же типа оно приходит?
|
|||
2
VladZ
02.11.18
✎
14:50
|
(0) А проблема в чем?
|
|||
3
cons24
02.11.18
✎
14:52
|
Дата("10.10.2018"+"00:00:00")
|
|||
4
ДядяМитяй
02.11.18
✎
14:52
|
тут проблемы с отладкой по http
но оно берется из строки параметров запроса и, видимо, 1с пытается его понять как число и на второй точке затыкается. (2) проблема в том, что этот параметр передается не просто так, с ним надо работать... |
|||
7
ДядяМитяй
02.11.18
✎
14:53
|
(3) как кавычки добавить если оно пришло не строкой?
|
|||
10
Aleksey
02.11.18
✎
14:54
|
(7) оно не может прийти не строкой
|
|||
11
cons24
02.11.18
✎
14:55
|
Ничего не понимаю.
Дата(""+параметр+"00:00:00") - не але? |
|||
12
ДядяМитяй
02.11.18
✎
14:58
|
Пробовал. Сам попробуй
Строка(" + 10.10.2018) или Строка(10.10.2018) или Дата(те же ...) |
|||
13
ДядяМитяй
02.11.18
✎
15:01
|
платформа считает, что 10.10 - это число, а дальше точка - это ошибка, что при приведении к дате, что к строке
|
|||
14
Базис
naïve
02.11.18
✎
15:07
|
"" + ТвояДата всегда будет приведено к строке.
|
|||
15
dezss
02.11.18
✎
15:08
|
показывай код
|
|||
16
ДядяМитяй
02.11.18
✎
15:12
|
Функция GetDocs(Запрос)
ГУИДконтр = Запрос.ПараметрыЗапроса.Получить("GUID"); ДатаС = Запрос.ПараметрыЗапроса.Получить("ДатаНачала"); ДатаС = Дата(СокрЛП(ДатаС) + " 0:0:0"); ДатаПо = Запрос.ПараметрыЗапроса.Получить("ДатаКонца"); ДатаПо = Дата(СокрЛП(ДатаПо) + "23:59:59"); ВидДока = Запрос.ПараметрыЗапроса.Получить("ВидДокумента"); |
|||
17
ДядяМитяй
02.11.18
✎
15:12
|
только это вряд ли поможет
|
|||
18
polosov
02.11.18
✎
15:12
|
Строка = "02.11.2018";
ГодСтрока = Прав(Строка,4); ДеньСтрока = Лев(Строка,2); МесяцСтрока = Сред(Строка, 4,2); ТвояДата = Дата(ГодСтрока+ МесяцСтрока + ДеньСтрока + "000000") ; //Вот тыж болезный |
|||
19
VladZ
02.11.18
✎
15:13
|
ДатаС = Запрос.ПараметрыЗапроса.Получить("ДатаНачала"); - что возвращает?
|
|||
20
dezss
02.11.18
✎
15:14
|
(18) +1
скорей всего в этом и проблема))) как всегда, читайте СП |
|||
21
ДядяМитяй
02.11.18
✎
15:15
|
(18) как все просто!
только вот 02.11.2018 не получается сделать строкой |
|||
22
dezss
02.11.18
✎
15:16
|
(21) Строка(ДатаС = Запрос.ПараметрыЗапроса.Получить("ДатаНачала"));
|
|||
23
dezss
02.11.18
✎
15:16
|
(22) тьфу
(21) ДатаС = Строка(Запрос.ПараметрыЗапроса.Получить("ДатаНачала")); |
|||
24
dezss
02.11.18
✎
15:16
|
кстати, а что в ДатаС тогда хранится?
|
|||
25
ДядяМитяй
02.11.18
✎
15:18
|
это обработчик GET-запроса. Приходит именно так - 10.10.2018. С этим надо дальше работать. поэтому (22) (23) попробуй Строка(10.10.2018) и посоветуй как ее разобрать по частями или еще чего-нибудь сделать
|
|||
26
polosov
02.11.18
✎
15:19
|
(21) Если у тебя ДатаС тип - Дата,
То НачалоТупняковогоДня = НачалоДня(ДатаС); КонецТупняковогоДня = КонецДня(ДатаС); |
|||
27
ДядяМитяй
02.11.18
✎
15:20
|
(24) ДатаС - переменная, в которую пихается получаемый параметр, в ней до этого ничего не было.
|
|||
28
sitex
naïve
02.11.18
✎
15:24
|
(0) Так кого типа изначально приходит этот параметр ?
|
|||
29
ДядяМитяй
02.11.18
✎
15:28
|
мне недоступна отладка http сервисов. Хотелось бы, чтобы приходил строкой))
Но приходит из урла типа http://194.труляля:45678/Имя базы/hs/PersAccount/c1e2f571-3783-11e2-a121-00241dc19c7d/01.11.2015/01.12.2015/2 |
|||
30
ДядяМитяй
02.11.18
✎
15:29
|
два предпоследних параметра
|
|||
31
dezss
02.11.18
✎
15:31
|
(29) это приходит от твоего сервиса?
|
|||
32
ZDenis
02.11.18
✎
15:31
|
(30) А если так
Запрос.ПолучитьТелоКакСтроку() |
|||
33
dezss
02.11.18
✎
15:31
|
(32) это не тело
|
|||
34
ДядяМитяй
02.11.18
✎
15:32
|
конечно, можно напрячься и достучаться до гастарбайтеров-аутсорсеров, чтобы они по-другому слали параметры, но стало уже интересно самому
|
|||
35
ДядяМитяй
02.11.18
✎
15:32
|
Да, тела там нету, запрос простейший
|
|||
36
dezss
02.11.18
✎
15:32
|
Бери Запрос.АдресРесурса, там будет строка, парси сам
|
|||
37
dezss
02.11.18
✎
15:33
|
вообще, какого типа у тебя переменная Запрос?
|
|||
38
Garykom
гуру
02.11.18
✎
15:35
|
Запрос.ПараметрыЗапроса.Получить("имя_параметра") - в данном случае возвращает или Неопределено или строку
|
|||
39
dezss
02.11.18
✎
15:35
|
(36) + не АдресРесурса, а ОтносительныйURL
|
|||
40
dezss
02.11.18
✎
15:38
|
Хотя если у тебя есть ПараметрыЗапроса, то там не такая конструкция, как в (29), а скорей такая:
http://194.труляля:45678/Имя базы/hs/PersAccount?GUID=c1e2f571-3783-11e2-a121-00241dc19c7d&ДатаНачала=01.11.2015&ДатаКонца=01.12.2015&ВидДокумента=2 |
|||
41
ДядяМитяй
02.11.18
✎
15:39
|
(40) нет, такая как в (29), это обязательные параметры
|
|||
42
dezss
02.11.18
✎
15:39
|
пройдись циклом по ПараметрыЗапроса и сохранить куда-нить ключ-значение для отладки
|
|||
43
dezss
02.11.18
✎
15:39
|
(41) тогда бери ОтносительныйURL и парси сам
|
|||
44
ДядяМитяй
02.11.18
✎
15:40
|
(43) Да, спасибо, это наверное сработает, хоть это и анальная стоматология
|
|||
45
dezss
02.11.18
✎
15:40
|
(41) стоп...если так, то у тебя должны быть ПараметрыURL, а не ПараметрыЗапроса
|
|||
46
dezss
02.11.18
✎
15:41
|
(45) + СП
HTTPСервисЗапрос (HTTPServiceRequest) ПараметрыURL (URLParameters) Использование: Только чтение. Описание: Тип: ФиксированноеСоответствие. Содержит части URL-адреса, которые были параметризованы в шаблоне. Доступность: Сервер, толстый клиент. Примечание: Например, если шаблон URL-адреса был "/{Doc}/ByNum/{Num}", а URL запрос - "Накладная/ByNum/НО-2345", то соответсвие будет содержать две пары: Doc - Накладная, Num - НО-2345. |
|||
47
dezss
02.11.18
✎
15:42
|
(44) + ты уверен, что в
ГУИДконтр = Запрос.ПараметрыЗапроса.Получить("GUID"); хоть что-то было? |
|||
48
ДядяМитяй
02.11.18
✎
15:46
|
(45) Да, действительно, может в этом дело. Я переделывал из ?парам =
в /{парам} и упустил этот момент Но вопрос о преобразовании N.N.N в строку остался нерешен)))) |
|||
49
dezss
02.11.18
✎
15:48
|
(48) так что в ФиксированноеСоответствие хранится ты смотрел?
выведи куда-нибудь в файл, например... |
|||
50
dezss
02.11.18
✎
15:49
|
(48) ну там может этих параметров тупо нет?
|
|||
51
Nyoko
02.11.18
✎
15:56
|
проблема решается просто, есть постит форму то должны быть параметры, если нет то не обязательно, для отладки можно использовать curl и файловую базу.
|
|||
52
Пес Барбос
02.11.18
✎
16:24
|
(29) Исли приходит из урла, то может сначала в нем "поправить" ?
Источник = "http://194.труляля:45678/Имя базы/hs/PersAccount/c1e2f571-3783-11e2-a121-00241dc19c7d/01.11.2015/01.12.2015/2"; Источник = СтрЗаменить(Источник,".","*"); // здесь вычленяем "даты" // http://194*труляля:45678/Имя базы/hs/PersAccount/c1e2f571-3783-11e2-a121-00241dc19c7d/01*11*2015/01*12*2015/2 Дата1 = "01*11*2015"; МасСтрок = СтрРазделить(Дата1,"*"); ТвояДата = Дата(МасСтрок[2]+ МасСтрок[1] + МасСтрок[0] + "000000") ; |
|||
53
1Сергей
02.11.18
✎
17:07
|
(16) Сообщить(ТипЗнч(ДатаПо));
|
|||
54
dezss
07.11.18
✎
09:05
|
(52) зачем такие танцы, если сразу из строки можно вычленять даты?)
|
|||
55
ДядяМитяй
08.11.18
✎
11:24
|
Проблема, как оказалось, была в том, что я последний параметр (в примере - 2) пытался сравнивать с числом, а не со строкой.
Но то, что при этом выходило сообщение, что неправильный предыдущий параметр, да еще и то, что его никак не привести к формату "ДАТА", - вот это очень сбило с толку. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |