|
Чем отличается хранение даты 1с и оракла? | ☑ | ||
---|---|---|---|---|
0
DES
11.12.17
✎
12:24
|
Использую API одного сайта.
Там формат данных даты dateTime (http://www.w3.org/2001/XMLSchema) Задаю дату в формате 1с8 '20170110000000' API возвращает данные от 2017-10-01Т00:00:00 Т.е.YYYYMMDD воспринимает как YYYYDDMM Может можно как то пересчитать дату 1с8 в формат хранения для этого API |
|||
1
Fragster
гуру
11.12.17
✎
12:26
|
XMLСтрока(Дата)
|
|||
2
DES
11.12.17
✎
12:28
|
Всмысле?
У меня параметр тип дата я делаю парамДата = '20170110000000' ; Как вы предлагаете? |
|||
3
Fragster
гуру
11.12.17
✎
12:29
|
(2) не тупи
|
|||
4
Fragster
гуру
11.12.17
✎
12:29
|
те
|
|||
5
DES
11.12.17
✎
12:33
|
Стараюсь,но не прокатывает Ваш совет.
|
|||
6
DES
11.12.17
✎
12:34
|
пишет несоответствие типов
|
|||
7
DES
11.12.17
✎
12:36
|
Значение не является значением объектного типа (StartDate)
|
|||
8
Fragster
гуру
11.12.17
✎
12:37
|
Сообщить(XMLСтрока(ТекущаяДата()));
|
|||
9
Вафель
11.12.17
✎
12:37
|
(2) в xml дата вроде не так задается
|
|||
10
Fragster
гуру
11.12.17
✎
12:38
|
Сообщить(XMLЗначение(Тип("Дата"), XMLСтрока(ТекущаяДата())));
|
|||
11
Fragster
гуру
11.12.17
✎
12:38
|
да и вообще, при использовании XSD схемы все эти форматы для примитивных типов никого не волнуют и происходят прозрачно для программиста
|
|||
12
Fragster
гуру
11.12.17
✎
12:39
|
(7) телепатов тут нету
|
|||
13
Вафель
11.12.17
✎
12:39
|
XMLЗначение(Тип("Дата"), XMLСтрока(ТекущаяДата())) 11.12.2017 12:37:58
Это явно не тот формат |
|||
14
DES
11.12.17
✎
12:42
|
про XML я в курсе
Дело в том что параметр для функции создается по API и после его создания он имеет тип вида (в отладчике 1с8) дата и значение 30.12.1899 0:00:00 Следовательно я могу записать в него только дату , а не строку |
|||
15
hhhh
11.12.17
✎
12:43
|
(5) парамДата = Дата(2017,01,10,00,00,00)
|
|||
16
Вафель
11.12.17
✎
12:46
|
(15) Дата(2017,01,10,00,00,00) = '20170110000000'
|
|||
17
Fragster
гуру
11.12.17
✎
12:47
|
(14) -> (11)
|
|||
18
DES
11.12.17
✎
12:47
|
(15) дата устанавливается, воспринимается API не так.
Я не могу получить данные от 28 числа любого месяца, так как API отвечает что нет такого месяца 28 |
|||
19
Fragster
гуру
11.12.17
✎
12:48
|
(13) а (8)
|
|||
20
hhhh
11.12.17
✎
12:48
|
(16) ну, там строка, а тут дата.
|
|||
21
hhhh
11.12.17
✎
12:49
|
(18) так дата у вас где устанавливается? в 1с или в api?
|
|||
22
DES
11.12.17
✎
12:49
|
(17) данные от 01.01.2017 или 02.02.2017 или 03.03.2017 получаю корректно
|
|||
23
Вафель
11.12.17
✎
12:49
|
(20) в одинарных ковычках - это как раз не строки
|
|||
24
DES
11.12.17
✎
12:50
|
(18) из 1с вызываю API
параметры вызова устанавливаю в 1с |
|||
25
DES
11.12.17
✎
12:51
|
Задаю дату 02.01.2017
получаю данные от 01.02.2017 |
|||
26
Fragster
гуру
11.12.17
✎
12:52
|
У командира сломалась рация на бронетранспортере. Прапорщик построил
личный состав и говорит: - У командира на бронетранспортере сломалась рация. Кто починит – поедет в отпуск. Голос из строя: - Товарищ прапорщик! А рация на чем: на полупроводниках или на лампах? - Для дебилов повторяю. На БРОНЕТРАНСПОРТЕРЕ! |
|||
27
Вафель
11.12.17
✎
12:52
|
а как ты дату передаешь в апи?
|
|||
28
Вафель
11.12.17
✎
12:53
|
Код в студию, плз
|
|||
29
DES
11.12.17
✎
12:57
|
(27) присваиваю параметру, а параметр передаю .
Я же говорю , проблема не присвоить дату, а интерпретировать ее так что бы API понимал месяз за день, а день за месяц |
|||
30
Fragster
гуру
11.12.17
✎
13:00
|
(28) с кодом любой дурак разберется
|
|||
31
hhhh
11.12.17
✎
13:03
|
(29) а где там формат данных даты dateTime (http://www.w3.org/2001/XMLSchema) ?? на какой строчке?
|
|||
32
DES
11.12.17
✎
13:22
|
<xs:simpleType name="dateTime" id="dateTime">
<xs:annotation> <xs:appinfo> <hfp:hasFacet name="pattern"/> <hfp:hasFacet name="enumeration"/> <hfp:hasFacet name="whiteSpace"/> <hfp:hasFacet name="maxInclusive"/> <hfp:hasFacet name="maxExclusive"/> <hfp:hasFacet name="minInclusive"/> <hfp:hasFacet name="minExclusive"/> <hfp:hasProperty name="ordered" value="partial"/> <hfp:hasProperty name="bounded" value="false"/> <hfp:hasProperty name="cardinality" value="countably infinite"/> <hfp:hasProperty name="numeric" value="false"/> </xs:appinfo> <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#dateTime"/> </xs:annotation> <xs:restriction base="xs:anySimpleType"> <xs:whiteSpace value="collapse" fixed="true" id="dateTime.whiteSpace"/> </xs:restriction> </xs:simpleType> |
|||
33
Cyberhawk
11.12.17
✎
13:25
|
2017-12-11T13:25:00
|
|||
34
Cyberhawk
11.12.17
✎
13:26
|
Чего там тебе возвращает какое-то АПИ, это уже какое отношение имеет?
|
|||
35
DES
11.12.17
✎
13:32
|
(33) это строка - а параметр имеет тип дата
|
|||
36
Cyberhawk
11.12.17
✎
13:51
|
(35) Я из всей ветки не понял, что требуется. Ты в трех словах опищи
|
|||
37
DES
11.12.17
✎
13:52
|
(35) 25 прочитай - там все
|
|||
38
DES
11.12.17
✎
13:54
|
(37)+ как получить данные на 20.12.2017?
|
|||
39
Cyberhawk
11.12.17
✎
13:57
|
Кривое АПИ или руки, хз что ты и куда там передаешь и что получаешь. Не все можно решить на стороне источника, но подменить СОАП-сервис на HTTP-запрос с нужным текстом тела / заголока, думаю, можно
|
|||
40
ambrozii-fadeevich-s
11.12.17
✎
13:59
|
овер 30 постов ни о чем
Формат(ТекущаяДатаСеанса(), "ДФ='MM.dd.yyyy ЧЧ:мм:сс'; ДЛФ=T") |
|||
41
DES
11.12.17
✎
14:00
|
(40) да билин же, это не тип дата.
|
|||
42
ambrozii-fadeevich-s
11.12.17
✎
14:03
|
(41) ты же в xml ее подсовываешь.
|
|||
43
ambrozii-fadeevich-s
11.12.17
✎
14:06
|
еще на всякий случай в отладчике ТипЗнч('20170110000000') рассчитай. понятнее станет.
|
|||
44
DES
11.12.17
✎
14:06
|
нет, не в XML
|
|||
45
DES
11.12.17
✎
14:08
|
private EFacturaApiRef.ServiceClient _client;
_client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid = Guid.NewGuid().ToString(); var request = new SearchRequest { RequestId = newid, ActorRole = 1, Parameters = new SearchParameters { InvoiceStatus = 7, e-Factura Integration Guide (API for external accounting systems) Document prepared by Alfa -Soft S.R.L 34 System administrated by Fiscservinform IssuedOn = new DateSearch { StartDate = DateTime.Now.AddDays(-100), EndDate = DateTime.Now}, BuyerIDNO = "1002600001431" } }; var response = _client.SearchInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message); } |
|||
46
DES
11.12.17
✎
14:09
|
вот пример их кода, на C# наверное
там StartDate = DateTime.Now.AddDays(-100), |
|||
47
ambrozii-fadeevich-s
11.12.17
✎
14:14
|
(46) Ну вот когда ты делаешь в 1С как в (2)
>> я делаю >> парамДата = '20170110000000' ; ты туда не дату передаешь. Ну так на всякий случай напоминаю. И как их сервис эту строку в дату преобразует - это уже второй вопрос. |
|||
48
ambrozii-fadeevich-s
11.12.17
✎
14:15
|
(46) Не дошло?
|
|||
49
Вафель
11.12.17
✎
14:19
|
(47) Так это же ДАТА
|
|||
50
ambrozii-fadeevich-s
11.12.17
✎
14:22
|
(49) Точно. А у меня везде считается, что строка. надо срочно править :)
|
|||
51
ambrozii-fadeevich-s
11.12.17
✎
14:24
|
А блин. а тут везде кавычки двойные. вот налажал.
|
|||
52
Fragster
гуру
11.12.17
✎
14:24
|
если ты используешь WSПрокси, и там валидный WSDL с нормальными определениями типов параметров, то ничего тебе делать не надо, пихай прямо 1совскую дату в объект XDTO
|
|||
53
DES
11.12.17
✎
21:57
|
(52) да вот как бы не пихается в объект XDTO
Уже все перепробовал, дата пихается только как дата, а воспринимается как хрен знает что. |
|||
54
Fragster
гуру
11.12.17
✎
22:13
|
(53) ну рассказывай, как обгонял, как подрезал? Где всдл? Где то, как ты его использовал?
|
|||
55
DES
12.12.17
✎
08:44
|
||||
56
DES
12.12.17
✎
08:47
|
функция name="SearchInvoices"
Возращает ТТН по критериям. Даю диапазон дат, получаю ТТН, смотрю - даты наперекосяк, не те что запрашивал. Путает номер дня с номером месяца. |
|||
57
DES
12.12.17
✎
08:51
|
Или функция "GetLogs"
Можно запросить лог действий за период. Та же фигня, присылает не то. Короче, все работает, кроме функций в которых параметром идет дата, причем даты в ТТН возвращает корректные (т.е. не путает в них день/месяц) |
|||
58
ИмяФамилия
12.12.17
✎
09:03
|
(57)
ну может просто косяк у граждан, даты в запросе хотят видеть одни, а в ответе отдают другие. т.е. в запросе, вроде, должно быть YYYYMMDD а на самом деле воспринимаются как YYYYDDMM ) и с ответами тоже самое) уточни у разработчиков что они имели ввиду) |
|||
59
1Сергей
12.12.17
✎
09:12
|
YYYYDDMM амерский формат, локализацию проверь
|
|||
60
ИмяФамилия
12.12.17
✎
09:45
|
(59) это гражданам разработчикам апи нужно сообщить.
либо дока не полная. и необходимо в запросе указывать локаль. |
|||
61
Cyberhawk
12.12.17
✎
10:52
|
<xs:complexType name="DateSearch">
<xs:sequence> <xs:element minOccurs="0" name="EndDate" nillable="true" type="xs:dateTime"/> <xs:element minOccurs="0" name="StartDate" type="xs:dateTime"/> </xs:sequence> </xs:complexType> |
|||
62
Cyberhawk
12.12.17
✎
10:53
|
||||
63
Fragster
гуру
12.12.17
✎
11:01
|
если так:
<xs:element minOccurs="0" name="EndDate" nillable="true" type="xs:dateTime"/> <xs:element minOccurs="0" name="StartDate" type="xs:dateTime"/> то в объект XDTO присваиваешь прямо 1сную дату, и всё работает как надо |
|||
64
Fragster
гуру
12.12.17
✎
11:01
|
без всяких преобразований
|
|||
65
ambrozii-fadeevich-s
12.12.17
✎
11:50
|
(53) Да попробуй запихни простую строку из даты в формате ymd "20171201" (в двойных кавычках) и посмотри, что получится, ибо если в XDTO не пихается дата, то скорее всего - там тупо строка из которой потом сервис конвертит дату. А все обертки с типами данных такие же гуру-прогеры (или горе-прогеры), как мы в ТЗ для важности написали.
|
|||
66
DES
12.12.17
✎
13:43
|
(62) это на что намек?
|
|||
67
DES
12.12.17
✎
13:44
|
(65) строка не пихается по определению.
Насчет локали - есть зерно истины, где бы ее прописать.... |
|||
68
Лефмихалыч
12.12.17
✎
13:49
|
||||
69
Cyberhawk
12.12.17
✎
13:50
|
(66) Ну это кусочек одной из XSD-схем, типами данных которых оперирует твой веб-сервис
|
|||
70
DES
12.12.17
✎
13:54
|
(69) а вот тут заморочка, параметры идут не типом XML, а типом ДатаВремя
|
|||
71
DES
12.12.17
✎
13:55
|
(68) это не хранение - это показано отображение (одного из вариантов)
|
|||
72
Лефмихалыч
12.12.17
✎
13:57
|
(71) к ораклу вопрос все равно отношения не имеет
|
|||
73
MM
12.12.17
✎
13:57
|
Опирайтесь на стандарт https://ru.wikipedia.org/wiki/ISO_8601
|
|||
74
DES
12.12.17
✎
14:07
|
(73) не прокатывает.
|
|||
75
mistеr
12.12.17
✎
14:31
|
(68) Твоя картинка к *хранению* даты в Оракле также отношения не имеет.
|
|||
76
Cyberhawk
12.12.17
✎
15:23
|
(70) Ты написал какую-то хрень или ты ошибся номером поста
|
|||
77
DES
12.12.17
✎
19:35
|
(76) а ты не ошибся?
XSD — это язык описания структуры XML документа. XML не используется в параметрах. |
|||
78
Cyberhawk
12.12.17
✎
20:46
|
(77) Хз, что ты пишешь
|
|||
79
DES
13.12.17
✎
14:34
|
ну вот у них нулевое значение соответствует
30.12.1899 00:00:00 А в 1С-не 01.01.0001 00:00:00 т.е. если я запилю туда 0, то ДР христа Спасителя я не получу. Вот может в этом дело? |
|||
80
Fragster
гуру
13.12.17
✎
15:31
|
нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |