Страница 1 из 2

Конструктивное предложение

Добавлено: 19 июн 2017, 16:27
zeroabe
Господа разработчики. Убедительно Вас прошу добавить в ответы помимо error ещё и классифицированный error_code. Без этого обработка ошибок становится делом крайне неприятным и, часто, просто бессмысленным.

Re: Конструктивное предложение

Добавлено: 19 июн 2017, 19:22
Audim
Я думал об этом.
Но не срастается:

-коды ошибок у всех ККТ разные,
-даже логика ошибок иногда разная.
-У некоторых вообще нет кодов ошибок - все текстом.
-А у некоторых коды-то есть, а описания их нету...

Да из драйверов dll у unitserver не получится сделать.....

Re: Конструктивное предложение

Добавлено: 19 июн 2017, 19:59
zeroabe
Audim писал(а):Я думал об этом.
Но не срастается:

-коды ошибок у всех ККТ разные,
-даже логика ошибок иногда разная.
-У некоторых вообще нет кодов ошибок - все текстом.
-А у некоторых коды-то есть, а описания их нету...

Да из драйверов dll у unitserver не получится сделать.....
Почему я догадывался?

Re: Конструктивное предложение

Добавлено: 19 июн 2017, 20:01
zeroabe
Тогда вопрос такого содержания:
Вроде бы все объекты ответов содержат свойство "Status", одно из значений которого обозначает ошибку. Так вот, допустим, если я словил ошибку от ккм в ответе - значение этого свойства будет == 2? Или они друг от друга не зависят?

Re: Конструктивное предложение

Добавлено: 19 июн 2017, 20:43
Audim
Да, если была ошибка то Status = 2.

Кроме одного исключения:
Если регистрация чека выполнена и получили ошибку уже после регистрации чека (во время вытягивания фискальных данных по чеку) то тогда Status = 0 (чек-то зарегистрирован, второй раз регистрировать нельзя) а в поле "Error" будет текст ошибки.

Re: Конструктивное предложение

Добавлено: 20 июн 2017, 22:01
oum
А еще когда внутренняя ошибка "Status": 0 не есть гуд
я сейчас еще мучаю Kkm web-server Version : 2.0.20.03

Код: Выделить всё

{
    "Error": "Message: Error converting value {null} to type 'System.DateTime'. Path 'OFD_DateErrorDoc', line 1, position 162.\n\r   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)\r\n   в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)\r\n   в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)\r\n   в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)\r\n   в KkmFactory.FileHandler.\u0003 .\u0002()",
    "Status": 0,
    "Command": "",
    "IdCommand": ""
}

Re: Конструктивное предложение

Добавлено: 20 июн 2017, 22:02
oum
а заявлено
// Все у которых дата окончания работы ФН меньше указанной. Дата-время. Если null или не указано то любое

Re: Конструктивное предложение

Добавлено: 20 июн 2017, 23:10
Audim
2 косяка за раз....
Подправил и то и то.

Re: Конструктивное предложение

Добавлено: 21 июн 2017, 13:26
zeroabe
Audim писал(а):Да, если была ошибка то Status = 2.

Кроме одного исключения:
Если регистрация чека выполнена и получили ошибку уже после регистрации чека (во время вытягивания фискальных данных по чеку) то тогда Status = 0 (чек-то зарегистрирован, второй раз регистрировать нельзя) а в поле "Error" будет текст ошибки.
Но в этом случае информацию по чеку можно получить по его ID?

Re: Конструктивное предложение

Добавлено: 21 июн 2017, 13:35
Audim
К сожалению нет.
Но сейчас народ обновил прошивки в ККТ и такие ошибки перестали встречается...