Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Чем отличается хранение даты 1с и оракла?

Чем отличается хранение даты 1с и оракла?
Я
   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
 
 
   Fragster
 
1 - 11.12.17 - 12:26
XMLСтрока(Дата)
   DES
 
2 - 11.12.17 - 12:28
Всмысле?
У меня параметр тип дата
я делаю 
парамДата =  '20170110000000' ;
Как вы предлагаете?
   Fragster
 
3 - 11.12.17 - 12:29
(2) не тупи
   Fragster
 
4 - 11.12.17 - 12:29
те
   DES
 
5 - 11.12.17 - 12:33
Стараюсь,но не прокатывает Ваш совет.
   DES
 
6 - 11.12.17 - 12:34
пишет несоответствие типов
   DES
 
7 - 11.12.17 - 12:36
Значение не является значением объектного типа (StartDate)
   Fragster
 
8 - 11.12.17 - 12:37
Сообщить(XMLСтрока(ТекущаяДата()));
   Вафель
 
9 - 11.12.17 - 12:37
(2) в xml дата вроде не так задается
   Fragster
 
10 - 11.12.17 - 12:38
Сообщить(XMLЗначение(Тип("Дата"), XMLСтрока(ТекущаяДата())));
   Fragster
 
11 - 11.12.17 - 12:38
да и вообще, при использовании XSD схемы все эти форматы для примитивных типов никого не волнуют и происходят прозрачно для программиста
   Fragster
 
12 - 11.12.17 - 12:39
(7) телепатов тут нету
   Вафель
 
13 - 11.12.17 - 12:39
XMLЗначение(Тип("Дата"), XMLСтрока(ТекущаяДата()))    11.12.2017 12:37:58

Это явно не тот формат
   DES
 
14 - 11.12.17 - 12:42
про XML я в курсе
Дело в том что параметр для функции создается по API и после его создания он имеет тип вида (в отладчике 1с8) дата
и значение 30.12.1899  0:00:00

Следовательно я могу записать в него только дату , а не строку
   hhhh
 
15 - 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'
   Fragster
 
17 - 11.12.17 - 12:47
(14) -> (11)
   DES
 
18 - 11.12.17 - 12:47
(15) дата устанавливается, воспринимается API не так.
Я не могу получить данные от 28 числа любого месяца, так как API отвечает что нет такого месяца 28
   Fragster
 
19 - 11.12.17 - 12:48
(13) а (8)
   hhhh
 
20 - 11.12.17 - 12:48
(16) ну, там строка, а тут дата.
   hhhh
 
21 - 11.12.17 - 12:49
(18) так дата у вас где устанавливается? в 1с или в api?
   DES
 
22 - 11.12.17 - 12:49
(17) данные от 01.01.2017 или 02.02.2017 или 03.03.2017 получаю корректно
   Вафель
 
23 - 11.12.17 - 12:49
(20) в одинарных ковычках - это как раз не строки
   DES
 
24 - 11.12.17 - 12:50
(18) из 1с вызываю API
параметры вызова устанавливаю в 1с
   DES
 
25 - 11.12.17 - 12:51
Задаю дату 02.01.2017
получаю данные от 01.02.2017
   Fragster
 
26 - 11.12.17 - 12:52
У командира сломалась рация на бронетранспортере. Прапорщик построил
личный состав и говорит:
- У командира на бронетранспортере сломалась рация. Кто починит – поедет
в отпуск. Голос из строя:
- Товарищ прапорщик! А рация на чем: на полупроводниках или на лампах?
- Для дебилов повторяю. На БРОНЕТРАНСПОРТЕРЕ!
   Вафель
 
27 - 11.12.17 - 12:52
а как ты дату передаешь в апи?
   Вафель
 
28 - 11.12.17 - 12:53
Код в студию, плз
   DES
 
29 - 11.12.17 - 12:57
(27) присваиваю параметру, а параметр передаю .
Я же говорю , проблема не присвоить дату, а интерпретировать ее так что бы API  понимал месяз за день, а день за месяц
   Fragster
 
30 - 11.12.17 - 13:00
(28) с кодом любой дурак разберется
 
 
   hhhh
 
31 - 11.12.17 - 13:03
(29) а где там формат данных даты dateTime (http://www.w3.org/2001/XMLSchema)  ?? на какой строчке?
   DES
 
32 - 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>
   Cyberhawk
 
33 - 11.12.17 - 13:25
2017-12-11T13:25:00
   Cyberhawk
 
34 - 11.12.17 - 13:26
Чего там тебе возвращает какое-то АПИ, это уже какое отношение имеет?
   DES
 
35 - 11.12.17 - 13:32
(33) это строка - а параметр имеет тип дата
   Cyberhawk
 
36 - 11.12.17 - 13:51
(35) Я из всей ветки не понял, что требуется. Ты в трех словах опищи
   DES
 
37 - 11.12.17 - 13:52
(35) 25 прочитай - там все
   DES
 
38 - 11.12.17 - 13:54
(37)+ как получить данные на 20.12.2017?
   Cyberhawk
 
39 - 11.12.17 - 13:57
Кривое АПИ или руки, хз что ты и куда там передаешь и что получаешь. Не все можно решить на стороне источника, но подменить СОАП-сервис на HTTP-запрос с нужным текстом тела / заголока, думаю, можно
   ambrozii-fadeevich-s
 
40 - 11.12.17 - 13:59
овер 30 постов ни о чем
Формат(ТекущаяДатаСеанса(), "ДФ='MM.dd.yyyy ЧЧ:мм:сс'; ДЛФ=T")
   DES
 
41 - 11.12.17 - 14:00
(40) да билин же, это не тип дата.
   ambrozii-fadeevich-s
 
42 - 11.12.17 - 14:03
(41) ты же в xml ее подсовываешь.
   ambrozii-fadeevich-s
 
43 - 11.12.17 - 14:06
еще на всякий случай в отладчике ТипЗнч('20170110000000') рассчитай. понятнее станет.
   DES
 
44 - 11.12.17 - 14:06
нет, не в XML
   DES
 
45 - 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);
}
   DES
 
46 - 11.12.17 - 14:09
вот пример их кода, на C# наверное

там 
StartDate = DateTime.Now.AddDays(-100),
   ambrozii-fadeevich-s
 
47 - 11.12.17 - 14:14
(46) Ну вот когда ты делаешь в 1С как в (2) 
>> я делаю 
>> парамДата =  '20170110000000' ;
ты туда не дату передаешь. Ну так на всякий случай напоминаю.

И как их сервис эту строку в дату преобразует - это уже второй вопрос.
   ambrozii-fadeevich-s
 
48 - 11.12.17 - 14:15
(46) Не дошло?
   Вафель
 
49 - 11.12.17 - 14:19
(47) Так это же ДАТА
   ambrozii-fadeevich-s
 
50 - 11.12.17 - 14:22
(49) Точно. А у меня везде считается, что строка. надо срочно править :)
   ambrozii-fadeevich-s
 
51 - 11.12.17 - 14:24
А блин. а тут везде кавычки двойные. вот налажал.
   Fragster
 
52 - 11.12.17 - 14:24
если ты используешь WSПрокси, и там валидный WSDL с нормальными определениями типов параметров, то ничего тебе делать не надо, пихай прямо 1совскую дату в объект XDTO
   DES
 
53 - 11.12.17 - 21:57
(52) да вот как бы не пихается в объект XDTO
Уже все перепробовал, дата пихается только как дата, а воспринимается как хрен знает что.
   Fragster
 
54 - 11.12.17 - 22:13
(53) ну рассказывай, как обгонял, как подрезал? Где всдл? Где то, как ты его использовал?
   DES
 
55 - 12.12.17 - 08:44
   DES
 
56 - 12.12.17 - 08:47
функция  name="SearchInvoices"
Возращает ТТН по критериям. 
Даю диапазон дат, получаю ТТН, смотрю - даты наперекосяк, не те что запрашивал.
Путает номер дня с номером месяца.
   DES
 
57 - 12.12.17 - 08:51
Или функция "GetLogs"
Можно запросить  лог действий за период.
Та же фигня, присылает не то.
Короче, все работает, кроме функций в которых параметром идет дата, причем даты в ТТН возвращает корректные (т.е. не путает в них день/месяц)
   ИмяФамилия
 
58 - 12.12.17 - 09:03
(57)
ну может просто косяк у граждан, даты в запросе хотят видеть одни, а в ответе отдают другие.
т.е. в запросе, вроде, должно быть YYYYMMDD а на самом деле воспринимаются как YYYYDDMM )
и с ответами тоже самое)

уточни у разработчиков что они имели ввиду)
   1Сергей
 
59 - 12.12.17 - 09:12
YYYYDDMM амерский формат, локализацию проверь
   ИмяФамилия
 
60 - 12.12.17 - 09:45
(59) это гражданам разработчикам апи нужно сообщить.
либо дока не полная. и необходимо в запросе указывать локаль.
   Cyberhawk
 
61 - 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>
   Cyberhawk
 
62 - 12.12.17 - 10:53
   Fragster
 
63 - 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сную дату, и всё работает как надо
   Fragster
 
64 - 12.12.17 - 11:01
без всяких преобразований
   ambrozii-fadeevich-s
 
65 - 12.12.17 - 11:50
(53) Да попробуй запихни простую строку из даты в формате ymd "20171201" (в двойных кавычках) и посмотри, что получится, ибо если в XDTO не пихается дата, то скорее всего - там тупо строка из которой потом сервис конвертит дату. А все обертки с типами данных такие же гуру-прогеры (или горе-прогеры), как мы в ТЗ для важности написали.
   DES
 
66 - 12.12.17 - 13:43
(62) это на что намек?
 
 Рекламное место пустует
   DES
 
67 - 12.12.17 - 13:44
(65) строка не пихается по определению.
Насчет локали - есть зерно истины, где бы ее прописать....
   Лефмихалыч
 
68 - 12.12.17 - 13:49
в оракле дата хранится вот так
https://i.imgur.com/aDg3NVz.png

вопрос к ораклу отношения не имеет
   Cyberhawk
 
69 - 12.12.17 - 13:50
(66) Ну это кусочек одной из XSD-схем, типами данных которых оперирует твой веб-сервис
   DES
 
70 - 12.12.17 - 13:54
(69) а вот тут заморочка, параметры идут не типом XML, а типом ДатаВремя
   DES
 
71 - 12.12.17 - 13:55
(68) это не хранение - это показано отображение (одного из вариантов)
   Лефмихалыч
 
72 - 12.12.17 - 13:57
(71) к ораклу вопрос все равно отношения не имеет
   MM
 
73 - 12.12.17 - 13:57
Опирайтесь на стандарт https://ru.wikipedia.org/wiki/ISO_8601
   DES
 
74 - 12.12.17 - 14:07
(73) не прокатывает.
   mistеr
 
75 - 12.12.17 - 14:31
(68) Твоя картинка к *хранению* даты в Оракле также отношения не имеет.
   Cyberhawk
 
76 - 12.12.17 - 15:23
(70) Ты написал какую-то хрень или ты ошибся номером поста
   DES
 
77 - 12.12.17 - 19:35
(76) а ты не ошибся?
XSD — это язык описания структуры XML документа.
XML не используется в параметрах.
   Cyberhawk
 
78 - 12.12.17 - 20:46
(77) Хз, что ты пишешь
   DES
 
79 - 13.12.17 - 14:34
ну вот у них нулевое значение соответствует 
30.12.1899 00:00:00 
А в 1С-не 01.01.0001 00:00:00
т.е. если я запилю туда 0, то ДР христа Спасителя я не получу.
Вот может в этом дело?
   Fragster
 
80 - 13.12.17 - 15:31
нет


Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.