Имя: Пароль:
1C
1С v8
Чем отличается хранение даты 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
в оракле дата хранится вот так
https://i.imgur.com/aDg3NVz.png

вопрос к ораклу отношения не имеет
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
нет