Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

преобразовать в строку 10.10.2018

преобразовать в строку 10.10.2018
Я
   ДядяМитяй
 
02.11.18 - 14:45
Видимо, у меня пятница, но уперся в проблему.
Мне из внешнего источника(с сайта) приходит параметр.
Вообще-то это подразумевается как дата, только 1с (на базе ут10) чтобы понять, что это дата, надо добавить хотя бы 0:0:0 (время).
Преобразовать в строку не могу, заменить точки не могу, преобразовать в дату не могу.
Убейте меня
 
 
   1Сергей
 
1 - 02.11.18 - 14:47
И какого же типа оно приходит?
   VladZ
 
2 - 02.11.18 - 14:50
(0) А проблема в чем?
   cons24
 
3 - 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) как кавычки добавить если оно пришло не строкой?
   Aleksey
 
10 - 02.11.18 - 14:54
(7) оно не может прийти не строкой
 
 Рекламное место пустует
   cons24
 
11 - 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 - 02.11.18 - 15:07
"" + ТвояДата всегда будет приведено к строке.
   dezss
 
15 - 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
только это вряд ли поможет
   polosov
 
18 - 02.11.18 - 15:12
Строка = "02.11.2018";
ГодСтрока = Прав(Строка,4);
ДеньСтрока = Лев(Строка,2);
МесяцСтрока = Сред(Строка, 4,2);
ТвояДата = Дата(ГодСтрока+ МесяцСтрока + ДеньСтрока + "000000") ;
//Вот тыж болезный
   VladZ
 
19 - 02.11.18 - 15:13
ДатаС = Запрос.ПараметрыЗапроса.Получить("ДатаНачала"); - что возвращает?
   dezss
 
20 - 02.11.18 - 15:14
(18) +1
скорей всего в этом и проблема)))
как всегда, читайте СП
   ДядяМитяй
 
21 - 02.11.18 - 15:15
(18) как все просто!
только вот 02.11.2018 не получается сделать строкой
   dezss
 
22 - 02.11.18 - 15:16
(21) Строка(ДатаС = Запрос.ПараметрыЗапроса.Получить("ДатаНачала"));
   dezss
 
23 - 02.11.18 - 15:16
(22) тьфу
(21) ДатаС = Строка(Запрос.ПараметрыЗапроса.Получить("ДатаНачала"));
   dezss
 
24 - 02.11.18 - 15:16
кстати, а что в ДатаС тогда хранится?
   ДядяМитяй
 
25 - 02.11.18 - 15:18
это обработчик GET-запроса. Приходит именно так - 10.10.2018. С этим надо дальше работать. поэтому (22) (23) попробуй Строка(10.10.2018) и посоветуй как ее разобрать по частями или еще чего-нибудь сделать
   polosov
 
26 - 02.11.18 - 15:19
(21) Если у тебя ДатаС  тип - Дата,
То 
НачалоТупняковогоДня = НачалоДня(ДатаС);
КонецТупняковогоДня = КонецДня(ДатаС);
   ДядяМитяй
 
27 - 02.11.18 - 15:20
(24) ДатаС - переменная, в которую пихается получаемый параметр, в ней до этого ничего не было.
   sitex
 
28 - 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
два предпоследних параметра
   dezss
 
31 - 02.11.18 - 15:31
(29) это приходит от твоего сервиса?
   ZDenis
 
32 - 02.11.18 - 15:31
(30) А если так
Запрос.ПолучитьТелоКакСтроку()
   dezss
 
33 - 02.11.18 - 15:31
(32) это не тело
 
 
   ДядяМитяй
 
34 - 02.11.18 - 15:32
конечно, можно напрячься и достучаться до гастарбайтеров-аутсорсеров, чтобы они по-другому слали параметры, но стало уже интересно самому
   ДядяМитяй
 
35 - 02.11.18 - 15:32
Да, тела там нету, запрос простейший
   dezss
 
36 - 02.11.18 - 15:32
Бери Запрос.АдресРесурса, там будет строка, парси сам
   dezss
 
37 - 02.11.18 - 15:33
вообще, какого типа у тебя переменная Запрос?
   Garykom
 
38 - 02.11.18 - 15:35
Запрос.ПараметрыЗапроса.Получить("имя_параметра") - в данном случае возвращает или Неопределено или строку
   dezss
 
39 - 02.11.18 - 15:35
(36) + не АдресРесурса, а ОтносительныйURL
   dezss
 
40 - 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), это обязательные параметры
   dezss
 
42 - 02.11.18 - 15:39
пройдись циклом по ПараметрыЗапроса и сохранить куда-нить ключ-значение для отладки
   dezss
 
43 - 02.11.18 - 15:39
(41) тогда бери ОтносительныйURL и парси сам
   ДядяМитяй
 
44 - 02.11.18 - 15:40
(43) Да, спасибо, это наверное сработает, хоть это и анальная стоматология
   dezss
 
45 - 02.11.18 - 15:40
(41) стоп...если так, то у тебя должны быть ПараметрыURL, а не ПараметрыЗапроса
   dezss
 
46 - 02.11.18 - 15:41
(45) + СП
HTTPСервисЗапрос (HTTPServiceRequest)
ПараметрыURL (URLParameters)
Использование:

Только чтение.
Описание:

Тип: ФиксированноеСоответствие.
Содержит части URL-адреса, которые были параметризованы в шаблоне.

Доступность:

Сервер, толстый клиент.
Примечание:

Например, если шаблон URL-адреса был "/{Doc}/ByNum/{Num}", а URL запрос - "Накладная/ByNum/НО-2345", то соответсвие будет содержать две пары:
Doc - Накладная,
Num - НО-2345.
   dezss
 
47 - 02.11.18 - 15:42
(44) + ты уверен, что в 
    ГУИДконтр = Запрос.ПараметрыЗапроса.Получить("GUID");
хоть что-то было?
   ДядяМитяй
 
48 - 02.11.18 - 15:46
(45) Да, действительно, может в этом дело. Я переделывал из ?парам =  
в
/{парам}
и упустил этот момент

Но вопрос о преобразовании N.N.N в строку остался нерешен))))
   dezss
 
49 - 02.11.18 - 15:48
(48) так что в ФиксированноеСоответствие хранится ты смотрел?
выведи куда-нибудь в файл, например...
 
 Рекламное место пустует
   dezss
 
50 - 02.11.18 - 15:49
(48) ну там может этих параметров тупо нет?
   Nyoko
 
51 - 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") ;
   1Сергей
 
53 - 02.11.18 - 17:07
(16) Сообщить(ТипЗнч(ДатаПо));
   dezss
 
54 - 07.11.18 - 09:05
(52) зачем такие танцы, если сразу из строки можно вычленять даты?)
   ДядяМитяй
 
55 - 08.11.18 - 11:24
Проблема, как оказалось, была в том, что я последний параметр (в примере - 2) пытался сравнивать с числом, а не со строкой.
Но то, что при этом выходило сообщение, что неправильный предыдущий параметр, да еще и то, что его никак не привести к формату "ДАТА", - вот это очень сбило с толку.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует