These are chat archives for springjazzy/GIS_JKH_Integration

9th
Nov 2016
NadyaTomsk
@NadyaTomsk
Nov 09 2016 01:51
@versh23 я так понимаю, что если человек привязал себе лицевой счет, то это не изменит в лицевом счете ничего - ни СНИЛС, ни любой другой документ не появиться, так как я теоретически я могу себе привязать любой лицевой счет, если я знаю его номер и адрес.
Vershinin Sergey
@versh23
Nov 09 2016 05:34
@NadyaTomsk изменит ЕЛС, я завожу лицевые со строками ФИО, снилс нету. ну я это проверял создав два разных лицевых в 1ом помещении. потом к одному привязал физ лицо именно как объектом со снилсом и тд, и ЕЛС изменился
7vitaly-krasovsky7
@7vitaly-krasovsky7
Nov 09 2016 05:48
Коллеги, кто-нибудь в курсе: можно ли привязать один и тот же сертификат к двум и более информационным системам? Есть у нас организация, у которой уже зарегистрирована собственная ИС на сертификат организации, теперь они хотят вторую ИС, но уже коммерческую. Сертификат тот же. Интерфейс вторую ИС зарегистрировать не дает из-за того, что данный сертификат уже был привязан к собственной ИС. Можно ли обойти как-то это ограничение? Что вообще делать в таких случаях: людям нужно для текущей организации еще одну эцп заказывать?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 06:04
@7vitaly-krasovsky7 Когда блокируешь ИС, то блокируют и серт, поэтому одна ИС - один серт. Другое дело, что будет если у техпода слезно попросить привязать к одному серту другую ИС
ndbn
@ndbn
Nov 09 2016 06:35
они по сертификату определяют ИС, хотя это и странно
Aleksey
@ruDotBot_twitter
Nov 09 2016 06:37
Добрый день. Столкнулся тут с такой проблемой, как падение шарпея на большом количестве потоков. Вопрос - никто не подскажет, чем можно заменить эту криптокомовскую библиотеку? Где-то слышал, что есть аналог и вроде как даже в исходниках...
А то это чудо тянет не больше 50 потоков, а потом периодически начинает помирать с ошибкой вида :
System.Security.Cryptography.CryptographicException: Требуемый ресурс занят.
Server stack trace:
в CryptoPro.Sharpei.COMCryptography.SetProviderParameter(SafeProvHandleCP hProv, Int32 keyNumber, UInt32 paramID, IntPtr pbData)
в CryptoPro.Sharpei.CPUtils.SetPin(SafeProvHandleCP safeProvHandle, SecureString keyPassword, Int32 keyNumber)
в CryptoPro.Sharpei.Gost3410CryptoServiceProvider.SetContainerPassword(SecureString password)
Pavel Karasov
@ejsmile
Nov 09 2016 06:37
я был на конференций там говорили что при указаний СНИЛС ЕЛС будет другой, так на пример с начало у физ лица 3 ЕЛС в УК/РСО1/РСО2, если они принес СНИЛС в УК, то ЕЛС в УК смениться на новый постоянный, потом но приходит в РСО со СНИЛС-ом, то у РСО ЕЛС меняется и привязываться к ЕЛС УК только с другим "2-рым вагоном" указывающий на это РСО, в РСО2 аналогочно.
ndbn
@ndbn
Nov 09 2016 06:43
@ruDotBot_twitter ну попробуйте отлавливать этот экцепшн и повторять действие
@ruDotBot_twitter или делайте синхронизацию, например средствами https://msdn.microsoft.com/ru-ru/library/system.threading.mutex(v=vs.110).aspx
но отлавливать стоит, т.к. в теории занять библиотеку может не только ваш поток
Aleksey
@ruDotBot_twitter
Nov 09 2016 06:48
@ndbn А нафига мне этот гемор? Ловить чужие ошибки и т.п. Я хочу заменить это чудо на другое, более живучее. Отсюда и спрашиваю - никто не знает, на что можно заменить?
ndbn
@ndbn
Nov 09 2016 06:49
Это не чужие ошибки. Понял, в общем
Vershinin Sergey
@versh23
Nov 09 2016 06:52
@ejsmile круто.. т.е. через какое то время надо будет опрашивать все ранее закаченые ЛС, чтобы актуализировать ЕЛС и ИД ЖКУ
anesterov
@anesterov
Nov 09 2016 06:55
@versh23 а с какой целью их актуализировать?
Vershinin Sergey
@versh23
Nov 09 2016 06:55
@anesterov с 1 июля везде в ГИСе надо будет использовать ЕЛС, а не свою нумерацию
anesterov
@anesterov
Nov 09 2016 06:56
@versh23 спасибо, все понятно
tim apple
@timapple
Nov 09 2016 06:58
видимо с ЕЛС логика такая, что привязка идет именно к собственнику. сменился собственник - вот тебе новый ЕЛС. иначе будут проблемы при продаже и пр. У нас в ИС есть такая проблема, приходится по запросу создавать новый ЛС, а старый с долгом в архив...
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 06:59
:point_up: 8 ноября 2016 г., 14:12 Парни может кто что подсказать или мы одни такие уникальные с этой ошибкой бьемся?
tim apple
@timapple
Nov 09 2016 07:00
@pavelDruzhinin если Ваш запрос корректный, то однозначно в саппорт об ошибке. когда-нибудь исправят
Vershinin Sergey
@versh23
Nov 09 2016 07:00
@timapple ну да. а собственник считается, если указан СНИЛС или Паспорт, а ФИО - ваще пофигу. в принципе оно и понятно, ведь это простые строки
@pavelDruzhinin глупы вопрос, но вы же это проверяли?
Значение ItemElementName не соответствует типу System.Int32
tim apple
@timapple
Nov 09 2016 07:01
таже фигня и у нас будет. ФИО, правоуст/док есть, а вот снилс-а нет. по-любому надо делать периодическую синхронизацию
shsa
@shsa
Nov 09 2016 07:01
@pavelDruzhinin в сообщении об ошибке явно написано, что имеется несоответствие типов. Например сам недавно бился с отправкой счетов, а система ругалась, что у меня не задан Год, хотя он был задан, а проблема была в том, что год я задавал ка Int, а надо было как Short
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:02
@versh23 Да, лично облазил весь объект в поиске незаполненного объекта OgfData
Так, а как явнее указать ему что это int?:)
tim apple
@timapple
Nov 09 2016 07:03
@pavelDruzhinin скиньте сюда пример Вашего запроса (в тегах код), сверю с доками =)
shsa
@shsa
Nov 09 2016 07:03
@pavelDruzhinin dom.gosuslugi.schema.integration.ItemChoiceType14.@IntegerValue, смотри описание этого типа
а еще лучше используй это перечисление напрямую, а не цифру пихай
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:04
Я вчера попал на такую вещь, как верхний регистр в GUID. ГИС ждет все в нижнем... тоже может кому пригодится
Vershinin Sergey
@versh23
Nov 09 2016 07:05
@ruDotBot_twitter О_о
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:05
@versh23 Насчет Гуида давно уже заметил:)
@shsa Дак как тогда заполнять объект, если так просто получить ошибку на ровном месте. Почитал в ТФФ альбоме, написано int, Целое. Сверяюсь в объекте тоже самое.
Tolstykh Irina
@tolstykhia
Nov 09 2016 07:07
@pavelDruzhinin Item должен быть int, а ItemElementName значение из енама ItemChoiceType14.IntegerValue
ndbn
@ndbn
Nov 09 2016 07:08
я в importHouseUOData в TransportGUID в верхнем слал, проблем не было, может нововведение
7vitaly-krasovsky7
@7vitaly-krasovsky7
Nov 09 2016 07:09
@ndbn Лучше все же не испытывать судьбу и привести к нижнему :)
shsa
@shsa
Nov 09 2016 07:09
@pavelDruzhinin если используешь стандартный механизм сериализации .NET, то не используй свои типы, а пользуйся теми, что определены в классе запроса
tim apple
@timapple
Nov 09 2016 07:10
просто стажеры Ланита не знают про equalsIgnoreCase
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:11
@ndbn Вчера, когда экспортировал данные по домам и проверил на exportHouseData. Причем всасывает запрос нормально, но в ответе идет ошибка INT002000 Значение в поле FIAS_HOUSE_GUID отсутствует в реестре. Словно поиск ведется по строке без игнора регистра
Vershinin Sergey
@versh23
Nov 09 2016 07:13
у меня TransportGUID тоже в верхнем и норм) ФИАСовский в нижнем. да уж, попробую в нижний все приводить, вдруг какие то ошибки исчезнут:D
ndbn
@ndbn
Nov 09 2016 07:13
@ruDotBot_twitter а проверю ради интереса, TransportGUID послал снова, прокатило
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:15
@timapple так как в xml не сериализуется могу дать json) http://pastebin.com/kN12twZr
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:15
просто я вчера загрузил свой список домов и вкатил GUID как положено (то есть не строкой, ага). MSSQL его выдает по умолчанию в верхнем регистре... ну и отправил запрос как есть... смотрю, все задачи попадали с этой ошибкой... так и дошел, что они ФИАСовские коды хранят строкой в нижнем регистре
ndbn
@ndbn
Nov 09 2016 07:15
@ruDotBot_twitter @versh23 да, он тупо не находит дом, если в верхнем регистре
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:15
@ndbn и организацию тоже:)
ndbn
@ndbn
Nov 09 2016 07:17
интересная у них, конечно, контора. Ланит.
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:17

я в importHouseUOData в TransportGUID в верхнем слал, проблем не было, может нововведение

@ndbn А ты не проверял результаты импорта?? вот Щастье-то будет, когда тут в верхнем регистре, а тут - в нижнем.. ))

ndbn
@ndbn
Nov 09 2016 07:18
@ruDotBot_twitter не, не проверял пока
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:18
@ndbn при этом им ничего не мешает получать миллиардные контракты от государства
Pavel Karasov
@ejsmile
Nov 09 2016 07:19
@versh23 ЕЛС изменять только если к вам придут со СНИЛс-ом, а так нам даже чужие ЕЛС не увидить, они отказались от мысли массового перехода на ЕЛС, наши внутрение коды останутся на всегда
tim apple
@timapple
Nov 09 2016 07:20
@pavelDruzhinin можете дать код, где запрос заполняется ?
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:24
@ejsmile Откуда информация? На семинаре от древнего 19 сентября говорилось, что наши идентификаторы будут действительны до 1 января 2017 года... Когда что-то успело поменяться?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:25
Все банально и просто.
(from ogfData in house.BasicCharacteristics.OgfData
                                     select new OGFData
                                     {
                                         Code = ogfData.Code,
                                         Value = new OGFDataValue
                                         {
                                             Item = ogfData.Value.Item,
                                             ItemElementName = ogfData.Value.ItemElementName
                                         }
                                     })
 public class OgfDataValue
    {
        public dom.gosuslugi.schema.integration.ItemChoiceType14 ItemElementName { get; set; }
        public object Item { get; set; }
    }
tim apple
@timapple
Nov 09 2016 07:29
@pavelDruzhinin классы сами писали чтоль? где аннотации для серелизации
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:30
Класс OgfDataValue пришлось написать, так как у нас отдельная api для работы с ГИСом, которую используют несколько наших сервисов.
Если использовать встроенный класс OGFDataValue, то при сериализации в json пропадают значения
tim apple
@timapple
Nov 09 2016 07:32
@pavelDruzhinin эм. гис ведь ХМЛ ожидает
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:34
@timapple Правильно, а у нас rest api как wrapper над гисовским api, чтобы не заморачиваться с подписью и упростить некоторые вещи по загрузке данных
Возможно это не самый true way
tim apple
@timapple
Nov 09 2016 07:36
ошибку выбрасывает System.Xml.Serialization.XmlSerializer.Serialize, которому нужно описание (анотации) для создания ХМЛ. они есть?
Pavel Karasov
@ejsmile
Nov 09 2016 07:36
@ruDotBot_twitter тут была конференция от учебного цента Совета рынка, там был зам министра связи он и говорил
Vershinin Sergey
@versh23
Nov 09 2016 07:37
@ejsmile вот так новость))
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:37
@timapple Мы приводим все в гисовский объект importHouseUORequest - в нем все есть
tim apple
@timapple
Nov 09 2016 07:37
@pavelDruzhinin вот, код этого приведения в студию
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:38
 /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "4.6.1055.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dom.gosuslugi.ru/schema/integration/house-management/")]
    public partial class OGFDataValue : object, System.ComponentModel.INotifyPropertyChanged
    {

        private object itemField;

        private ItemChoiceType14 itemElementNameField;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("BooleanValue", typeof(bool), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("DateTimeValue", typeof(System.DateTime), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("File", typeof(string), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("FloatValue", typeof(float), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("IntegerValue", typeof(int), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("NsiCode", typeof(string), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("StringValue", typeof(string), Order=0)]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
        public object Item
        {
            get
            {
                return this.itemField;
            }
            set
            {
                this.itemField = value;
                this.RaisePropertyChanged("Item");
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemChoiceType14 ItemElementName
        {
            get
            {
                return this.itemElementNameField;
            }
            set
            {
                this.itemElementNameField = value;
                this.RaisePropertyChanged("ItemElementName");
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:38
@versh23 @ejsmile Это логично, учитывая количество проблем, включая временные ЛС и отсутствие СНИЛС. У них попросту ничего не схлопнется, если они перейдут на свои пустышки
Pavel Karasov
@ejsmile
Nov 09 2016 07:38
ну я не последняя инстанция, но с нами говорил Заместитель директора Департамента реализации законодательных инициатив Министерства связи и массовых
коммуникаций Российской Федерации Дмитрий Александрович Поплаухин, с его слов что они понимают сложности и скорее всего ваши коды останутся на всегда
ndbn
@ndbn
Nov 09 2016 07:39

Если использовать встроенный класс OGFDataValue, то при сериализации в json пропадают значения

Я сериализирую Json.NET, не пропадает ничего

Vershinin Sergey
@versh23
Nov 09 2016 07:39
@ruDotBot_twitter так то да, но я тоже был в сентябре у них, и там говорили, что типа "переходите все на ЕЛС и тд". а других новостей не было вроде был)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:39
@ndbn хм, надо попробовать
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:40
Я тоже сериализую в JSON и ничего не пропадает
tim apple
@timapple
Nov 09 2016 07:40
@pavelDruzhinin покажите как Вы заполняете объект этого класса
shsa
@shsa
Nov 09 2016 07:41
нужна подсказка: при импорта счета в ГИС, форма начисления отображается без единиц измерения, где задается единица измерения счета?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:41
@timapple :point_up: 9 ноября 2016 г., 10:25
ndbn
@ndbn
Nov 09 2016 07:44
@pavelDruzhinin у меня тоже путь через ж. Классы гиса импортированы в Delphi, там заполняются, сериализируются в json, идут в демон на c# там десериализируются в классы c#, потом в гис, ну и ответ в обратном порядке
tim apple
@timapple
Nov 09 2016 07:46
@pavelDruzhinin как заполняется OgfDataValue.Item. ошибка в точ, что там не Int
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:47
@timapple да, хотя там int :)
tim apple
@timapple
Nov 09 2016 07:47
точнее это ogfData.Value.Item
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:47
У меня ощущение, что туда как-то попадает null
shsa
@shsa
Nov 09 2016 07:47
дополнительная информация по вопросу с единицами измерения: когда ввожу вручную платежку через форму, единица измерения проставляется, а когда функцией импорта - услуга ставится правильная, а единицы измерения пустые :(
tim apple
@timapple
Nov 09 2016 07:48
в классах всюду object, поэтому компилятору пофиг. а вот что там на самом деле оказалось?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:49
@timapple я думаю, что все таки не пофиг и он дает значения по особому)
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:49

у меня тоже путь через ж. Классы гиса импортированы в Delphi, там заполняются, сериализируются в json, идут в демон на c# там десериализируются в классы c#, потом в гис, ну и ответ в обратном порядке

@ndbn а делфи-то зачем?

Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:49
Хотя реально бред конечно)
tim apple
@timapple
Nov 09 2016 07:49
@pavelDruzhinin давайте проверим. покажите код где присваивается ogfData.Value.Item
вдруг там String из базы...
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:50
@timapple я проверил весь объект перед отправкой. сам объект здесь http://pastebin.com/kN12twZr
Там везде
tim apple
@timapple
Nov 09 2016 07:51
не-не. я про реальный класс объекта. то что Ваш JSON его понимает и показывает как Int ничего не значит
@pavelDruzhinin извините, если неясно объясняю. но лучше проверить а не домыслы строить
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:55
@pavelDruzhinin А посмотреть в результирующий XML вы можете? Там же точно будет видно, что на выходе
ndbn
@ndbn
Nov 09 2016 07:55
@ruDotBot_twitter сама ИС на делфи
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:55
@timapple Дак в реальном классе если смотреть в watch1 все тоже самое. Я могу конечно попробовать 2 в Watch привести к int:)
Aleksey
@ruDotBot_twitter
Nov 09 2016 07:55
@ndbn Загляните в приват, пожалуйста
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 07:56
@ruDotBot_twitter нет, в этом вся проблема, что не сериализуется в xml
tim apple
@timapple
Nov 09 2016 07:57
@pavelDruzhinin проверьте вот так: Value = new OGFDataValue { Item = new System.Int32(ogfData.Value.Item),
tim apple
@timapple
Nov 09 2016 08:03
ой, вернее так: Item = (System.Int32)ogfData.Value.Item
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:07
@timapple Заданное приведение является недопустимым. Вот это поворот
tim apple
@timapple
Nov 09 2016 08:12
@pavelDruzhinin об этом я и говорил. что же там за тип?
@pavelDruzhinin ну можно еще изврат типа: Item = System.Int32.Parse(ogfData.Value.Item.toString())
@pavelDruzhinin но опять же, зависит что там. может toString() не вернет цифру
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:15
@timapple Int64
с Parse все естественно отрабатывает нормально
tim apple
@timapple
Nov 09 2016 08:17
@pavelDruzhinin ы. вот правильно и быстрее: Item = Convert.ToInt32(ogfData.Value.Item)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:17
Но там может быть не только int
tim apple
@timapple
Nov 09 2016 08:18
@pavelDruzhinin но это уже Ваша задача как разработчика учесть варианты. они же заполняются иначе
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:26
@timapple Благодарю вас за наводку
tim apple
@timapple
Nov 09 2016 08:32
@pavelDruzhinin Пожалуйста, мне тоже было приятно =)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:34
нашел статью по этому поводу https://habrahabr.ru/post/239219/
tim apple
@timapple
Nov 09 2016 08:46
ИМХО, т.к. используется object (как замена Union-типа), то нужно как-то обозначить тип, хранимый внутри. в данном случае, правильнее изначально хранить там Int32, т.е. тот тип который ожидается.
ndbn
@ndbn
Nov 09 2016 08:53
в c# можно узнать какой тип объекта лежит в переменной типа object
как и в Java в этом нет проблемы никакой
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:54
@ndbn я это сделал после наводки @timapple
ndbn
@ndbn
Nov 09 2016 08:57
@pavelDruzhinin не совсем понял решили ли вы проблему
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 08:59
@ndbn Пока нет, я думаю, но понял в чем она состоит, теперь надо как-то намекнуть десериализотору из json в объект, что у нас там тип int, а не long
tim apple
@timapple
Nov 09 2016 09:01
@ndbn причина найдена. осталось реализовать решение
ndbn
@ndbn
Nov 09 2016 09:01

@pavelDruzhinin если вы в json сериализировали поле с описанием типа :

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Entpr", typeof(FIOType), Order=1)]
        [System.Xml.Serialization.XmlElementAttribute("EntprFIO", typeof(string), Order=1)]
        [System.Xml.Serialization.XmlElementAttribute("Legal", typeof(NotificationOfOrderExecutionExportTypeRecipientInfoLegal), Order=1)]
        public object Item
        {
            get
            {
                return this.itemField;
            }
            set
            {
                this.itemField = value;
            }
        }

а потом хотите десериализировать его, нужно сохранять тип, который оно имело при сериализации и при десериализации его учитывать, в json.net например, это делается через класс-конфиг, получается примерно так:

{
    "$type" : "GisTypes.ImportResult1, Gis.Library",
    "Items" : [{
            "$type" : "GisTypes.ImportResultCommonResult, Gis.Library",
            "ItemElementName" : 0,
            "TransportGUID" : "2CA022E1-1EC9-46AC-B2E9-8333D70BEF2D",
            "Items" : [{
                    "$type" : "GisTypes.CommonResultTypeError, Gis.Library",
                    "ErrorCode" : "INT002000",
                    "Description" : "Значение в поле FIASHouseGuid отсутствует в реестре."
                }
            ]
        }
    ],
    "version" : "10.0.1.1"
}
tim apple
@timapple
Nov 09 2016 09:04
@ndbn а json.net поддерживает union через object? т.е. как указать в конфиге, что поле может содержать Int32 или String, например
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:05
Я думаю через аттрибуты можно
ndbn
@ndbn
Nov 09 2016 09:05
@timapple а это не важно
можно указывать, но не нужно
потому, что все типы c# наследуются от object
tim apple
@timapple
Nov 09 2016 09:08
@ndbn Вы не поняли суть проблемы. десериализатор JSON увидел 2 и запихнул в object-поле как Int64. а потом в коде возникает ошибка, т.к. в C# нельзя распаковать Int64 сразу в Int32
ndbn
@ndbn
Nov 09 2016 09:10
нужно смотреть что там за десериализатор, я с таким не сталкивался
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:10
как не странно Newtonsoft который)
tim apple
@timapple
Nov 09 2016 09:10
мое предложение: сразу после десериализации отдать объект в чекер, который на основании анализа ItemElementName делает переприсвоение с корректный типом. либо: приводить к нужному типу на месте по необходимости
ndbn
@ndbn
Nov 09 2016 09:13
@pavelDruzhinin странно, у меня он же
там можно через атррибут указать в какой тип десериализировать, но тут явно в другом дело
tim apple
@timapple
Nov 09 2016 09:18
перефразирую, object object-у рознь =)
tim apple
@timapple
Nov 09 2016 09:30
а мне кто-нить поможет? проверьте пожалуйста, можете в ЛК добавить виды информации при создании ИС или редактировании существующей? У меня в обоих случаях список пустой =(
Aleksey
@ruDotBot_twitter
Nov 09 2016 09:36
-
ndbn
@ndbn
Nov 09 2016 09:40
@timapple при редактировании на сит2 у меня не пустой
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:41
@timapple где проверяете? На промышленном все хорошо
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:47
Рибята, а сейчас дома отдает метод exportHouseUOData? У меня внутренняя ошибка возникает
tim apple
@timapple
Nov 09 2016 09:49
@ndbn @pavelDruzhinin на промышленном. использую IE 11. что не укажу в фильтре - поиск ничего не выдает...
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:50
@timapple Попробуй в google Chrome
ndbn
@ndbn
Nov 09 2016 09:51

@pavelDruzhinin повторил вашу проблему, действительно int32 в int64 превращается после десериализации, ну решить можно по разному, самое простое, раз класс у вас свой, наверное

 public class OgfDataValue
    {
        private object _item;

        public dom.gosuslugi.schema.integration.ItemChoiceType14 ItemElementName { get; set; }
        public object Item { 
          get { return _item;}
          set { 
                if (typeof(value) == typeof(int64)
                {
                  _item = (int32) value;
                }
                else {
                  _item =  value;
                }
              } 
        }
    }

примерно так

tim apple
@timapple
Nov 09 2016 09:52
@pavelDruzhinin пишет про плагин при попытке показать сертификаты. но идея здравая, попробую фкс или хром настроить
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:52
Можно и так:)
 public object GetItemForGis()
        {
            switch (ItemElementName)
            {
                case ItemChoiceType14.IntegerValue:
                    return int.Parse(Item.ToString());
                case ItemChoiceType14.FloatValue:
                    return float.Parse(Item.ToString());
                default:
                    return Item;
            }
        }
ndbn
@ndbn
Nov 09 2016 09:52
@timapple сейчас в ie гляну
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:53
@timapple серт же необязательно при входе в лк
tim apple
@timapple
Nov 09 2016 09:54
@pavelDruzhinin лучше через Convert.To*
ndbn
@ndbn
Nov 09 2016 09:54
@pavelDruzhinin главное чтобы вы смирились с тем, что после следующей сборке xsd/wsdl ItemChoiceType14 будет уже другой
ой в IE сайт вообще сломался
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:55
@ndbn раньше было так, когда пересобирал в последний раз сильно удивился что ничего менять не пришлось
ndbn
@ndbn
Nov 09 2016 09:57
@pavelDruzhinin до тех пор пока по тексту файла выше не появился другой "enum"
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 09:58
@ndbn а, тогда ждем-с:)
ndbn
@ndbn
Nov 09 2016 09:59
@timapple в IE11 так же, всё есть
@timapple может кеш IE почистить нужно, там с этим плохо
tim apple
@timapple
Nov 09 2016 10:00
@ndbn спасибо, буду искать причину. теперь хоть знаю что проблема явно у меня
а по поводу типов аля ItemsChoiceType11. можно написать универсально если извлекать тип в рантайме из ItemsElementName. читабельность правда упадет
т.е. не писать явно ItemsChoiceType*
tim apple
@timapple
Nov 09 2016 10:09
о, помоему хорошая идея: добавить в тесты такой чек: typeof(*3ItemElementName) == typeof(ItemsChoiceType11)
ndbn
@ndbn
Nov 09 2016 10:09

@timapple при заполнении всё равно писать придётся, я одно время на каждый подобный тип делал

public enum GuidTypes
{    
    FIASHouseGuid = ItemChoiceType15.FIASHouseGuid,
    LivingRoomGUID = ItemChoiceType15.LivingRoomGUID,
    PremisesGUID = ItemChoiceType15.PremisesGUID,
}

т.е. давал осмысленное имя и привязвался к "оригиналу", это в последующем позволяло отслеживать изменения, при заполнении только тип менять нужно

tim apple
@timapple
Nov 09 2016 10:10
если вдруг после обновления имена сломают, то тест это покажет
@ndbn собрать все в одном месте тоже удобно, править быстрее
ndbn
@ndbn
Nov 09 2016 10:15
@timapple не знаю что такое "*3"...
Aleksey
@ruDotBot_twitter
Nov 09 2016 10:16

Рибята, а сейчас дома отдает метод exportHouseUOData? У меня внутренняя ошибка возникает

Я использовал пока что только exportHouseData. Результат проверки на ППАК: [EXP001000] Внутренняя ошибка

Запрос справочников отрабатывает нормально (я его использую как проверку соединения). Может, ФИАС заливают??
tim apple
@timapple
Nov 09 2016 10:21
@ndbn ой, имел ввиду: typeof(bar.ItemElementName) == typeof(ItemsChoiceType11)
Aleksey
@ruDotBot_twitter
Nov 09 2016 10:27
@pavelDruzhinin exportHouseData заработал. Явно ФИАС грузили
Vershinin Sergey
@versh23
Nov 09 2016 10:58
ну вот, импорт лицевых не работает
Syber79
@Syber79
Nov 09 2016 10:59
А на прошлой неделе рапортовали что лицевые исправили
Vershinin Sergey
@versh23
Nov 09 2016 11:00
ну пока из 17 тысяч только 3 тысячи залилось. остальное - внутренняя ошибка или Операция не разрешена
Vershinin Sergey
@versh23
Nov 09 2016 11:06

https://helpdesk.dom.gosuslugi.ru/browse/HCSINTEGRS-1288

вот не решили.. а у вас какая была? @Syber79

Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:09
@versh23 если внутренняя ошибка, проверь в ЛК возможно выгрузилось. Я тут столкнулся на ППАК при выгрузке л/с, пачку шлепнул -мне в ответ внутренняя ошибка, значит повторно бросил ))), да и отложил. смотрю в лк а там у меня та пачка которая возвратила ошибку выгружена дважды
Syber79
@Syber79
Nov 09 2016 11:11
На СИТ02 не удается завести лицевой счет (AUT001103) AUT001103Доступ запрещен для поставщика данных организация "2202e17f-7ced-44e9-b119-260a53f4b46e" полномочие "Ресурсоснабжающая организация", "Оператор информационной системы", "Организация, уполномоченная поставщиком информации на размещение информации"
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:11
@versh23 Внутренняя ошибка при загрузке лс - это нормально:)
Vershinin Sergey
@versh23
Nov 09 2016 11:11
@gizmo75rus да не, в лк как есть 387 страниц по 10 лс, так и не меняется) а я грузил более 17 тысяч
Syber79
@Syber79
Nov 09 2016 11:11
типа это исправили, но я с сертификатами играюсь и не проверял
Vershinin Sergey
@versh23
Nov 09 2016 11:12
заметил, что много чего они обещают исправить в 11 версии.. да выйдет она только, похоже, в январе))
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:13
ну обещанного по три года ждут ))
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:13
@versh23 Учитывая, что рандомная внутренняя ошибка во время выгрузки лс тянется еще с весны-лета, то я думаю это надолго)
@gizmo75rus Как раз к 2020 году:)
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:14
)))))
Vershinin Sergey
@versh23
Nov 09 2016 11:15

https://helpdesk.dom.gosuslugi.ru/browse/HCSINTEGRS-1078

мне тут вообще сказали, что в 12 версии исправят)) вот это точно 2020)

Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:16
ппц. Начал заниматься интеграцией с марта, в средине лета забросил, сейчас продолжил, а толком нечего не изменилось
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:16
@gizmo75rus я думаю, можно смело забросить до 2020 года, так как все будут тянуть до последнего
И Ланит и все ЖКХ
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:17
аха, а штрафы то. Хрен, обяжут через эксель и веб морду в рукопашку вносить
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:18
@gizmo75rus я думаю, можно смело забросить до 2020 года, так как все будут тянуть до последнего
штрафы с 2017 года же)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:18
Потому что дали спуску, при формулировке будет созвана в апреле 2017 года рабочая группа, которая определит заполненность инфы и если что перенесет еще раз сроки
Vershinin Sergey
@versh23
Nov 09 2016 11:18
@pavelDruzhinin а штрафы то в итоге не перенесли, насколько я понял из проекта поправок к фз
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:18
Перенесут, вот увидите Запомните этот пост
:)
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:19
погодь скрин шет сделаю
Vershinin Sergey
@versh23
Nov 09 2016 11:19
@gizmo75rus через excel пробовали вчера загрузить 5тыс лицевых. спустя 8 часов - внутренняя ошибка))
ndbn
@ndbn
Nov 09 2016 11:19
@pavelDruzhinin откупишься по 41
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:19
@pavelDruzhinin делать все равно надо)
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:19
@versh23 )))))
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:20
@versh23 Я думаю, excel надо разбивать по 200-300 лицевых
если не 50)
Vershinin Sergey
@versh23
Nov 09 2016 11:20
@pavelDruzhinin а сколько это файлов то надо для 1млн ЛС ))
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:20
@versh23 ну если по 50, то 20 тысяч?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:20
@versh23 а это их не колышет))
Можно сварганить интегратор, который будет лепить один excel файл, закидывать в ГИС и так 1 млн)
Vershinin Sergey
@versh23
Nov 09 2016 11:21
да вот это и хреново, что они то работают, мы работаем. но нифига не продвигается дело:) а 1 января приближается
@pavelDruzhinin как вариант) ну это капец))
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:22
Праздник к нам приходит, праздник к нам приходит)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:22
вы меня пугаете)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:22
@versh23 Мне порой кажется, что это самый верный вариант:)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:26
кстати, а нафиг excel, есть же soap, не?)
Vershinin Sergey
@versh23
Nov 09 2016 11:26
@slvAuthor :D
на практике excel работает стабильней, чем SOAP их
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:27
что?) я тут с гис сижу и прихуеваю просто)
только устроился на работу, на второй день мне кидают задачи прикрутить интеграцию с гис)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:27
@slvAuthor у тебя еще все впереди юный падаван)
Vershinin Sergey
@versh23
Nov 09 2016 11:27
@slvAuthor Добро пожаловать))
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:27
В ад:)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:27
сцуко
я намучаюсь же?)
Vershinin Sergey
@versh23
Nov 09 2016 11:28
Слушайте, а есть же всякие ИС коммерческие, которые якобы работают полностью исправно. неужели это так? неужели и правда работают?
https://www.youtube.com/watch?v=1uIVzPdtbWQ
вот у них на канале какая то
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:29
такое ощущение что это миф)
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 11:29
@slvAuthor Держись ))
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:29
вы кстати все на шарпе делаете?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:30
@versh23 пиздят как и все вокруг:)
Vershinin Sergey
@versh23
Nov 09 2016 11:30
вот есть типа модуля к нашему билингу http://gis.stack-it.ru/ , говорят типа все работает
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:31
@versh23 дак работает так же как и ГИС)
О, я смотрю в ролике чуваки сидят на шарпе кодят)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:33
опять шарп) то чувство когда используешь пхп)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:33
@versh23 у меня ощущение что они по rest api все грузят)
Vershinin Sergey
@versh23
Nov 09 2016 11:34
@pavelDruzhinin и похоже еще ангуляр ( судя по this.scope) 1:23
@slvAuthor да посути неважно на чем)) проблема в самом сервисе - не работает:)
ndbn
@ndbn
Nov 09 2016 11:35
@versh23 наверное очередная генерация XLS файлов через COM интерфейс Excel'я
я про ссылку
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:36
@versh23 тогда пойду валерьянки куплю что бы проще было)
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:37
@slvAuthor лучше энергетиков пару грузовиков)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:40
@pavelDruzhinin хм) я тогда лучше этот гис пошлю нах)
tim apple
@timapple
Nov 09 2016 11:41
используем коммерческую ИС. их модуль для ГИС 1) оплачивается разово активация 2) + за авторское сопровождение. а из функционала привязка справочников и формирование экселей
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 11:41
@slvAuthor как тебя легко отговорить)
Denis Ulyanov
@DenisUlyanov
Nov 09 2016 11:45
@pavelDruzhinin я просто не переживу пары грузовиков энергетиков)
Syber79
@Syber79
Nov 09 2016 12:14
Да у меня уже борода поседела
Aleksey
@ruDotBot_twitter
Nov 09 2016 12:24
Аналогично. И жена спрашивает - что за диета такая. Кушает, говорит, что хочет, сколько и когда хочет, а худеет так, словно в пустыне без еды сидит
Syber79
@Syber79
Nov 09 2016 12:35
У кого была
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 12:35
@Syber79 съел?
Syber79
@Syber79
Nov 09 2016 12:36
<ns4:ErrorCode>AUT011005</ns4:ErrorCode>
<ns4:Description>Ошибка формата подписи запроса</ns4:Description>
<ns4:StackTrace>ru.lanit.hcs.integration.common.exception.OperationProcessorException: ЭП не прошла проверку: Invalid XML Signature
...
... 13 more </ns4:StackTrace>
@pavelDruzhinin Кого съел?
С подписями мучаюсь...
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 12:38
@Syber79 жену)
Знакомая тема, в техпод писали?
Еще проверьте саму подпись, мы меняли как-то серт и когда настраивал на отдельном серваке все, подставил старый и не мог понять в чем дело)
Dmitry Anikeev
@anikdv
Nov 09 2016 12:40
Никто счетчики не выгружал? Счетчик на сайт загружается, а ответ от сайта (importMeteringDeviceDataResponse) пустой, заполнен только заголовок
Syber79
@Syber79
Nov 09 2016 12:41
@pavelDruzhinin - все на моем компе.
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 12:48
@anikdv скорей всего надо менять xsd тип result
Параметр [20037, 10041, 19218] не актуален в справочнике Объектов ЖФ - вот это поворот
то есть они еще значения из справочника без предупреждения удаляют, а при экспорте дома отдают, как это мило
Syber79
@Syber79
Nov 09 2016 13:03
Ктонить может проверить мою хмл на валидность по быстрому?
У меня без идей ваще...
ndbn
@ndbn
Nov 09 2016 13:10
@Syber79 что-то там не utf8
@Syber79 чем вы подписываете?
Syber79
@Syber79
Nov 09 2016 13:11
Примером от саморитянина ихним же
на яве... все там utf-8
ndbn
@ndbn
Nov 09 2016 13:12
поля из сертификата - нет
может mail постарался, конечно
виндовый WordPad постарался, вопрос снимается
ndbn
@ndbn
Nov 09 2016 13:30
@Syber79 IsOperatorSignature вам не нужно указывать?
Syber79
@Syber79
Nov 09 2016 13:32
а что с ним, что без него - ответ одинаков...
ndbn
@ndbn
Nov 09 2016 13:39
@Syber79 проверьте что с IsOperatorSignature = true он в xml присутствует, больше различий не вижу...
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 13:40
коллеги заметил тут одну особенность, если выгружать л/с в пачках по 50, то сервис как правило отрабатывает нормально
Syber79
@Syber79
Nov 09 2016 13:41
@ndbn одинаковый ответ
Vershinin Sergey
@versh23
Nov 09 2016 13:43
@gizmo75rus через интеграцию? в одном xml 50 лс туда импортируете?
Denis Ilyushchenko
@gizmo75rus
Nov 09 2016 13:43
через сервис
создаю запросы с содержимым по 50
кучу запросов
и все запросы пролетают нормально, без ошибок
Vershinin Sergey
@versh23
Nov 09 2016 13:46
хм. а значит если 1 запрос - 1 лицевой, не работает?) странно это
может что то подшаманили) ща проверю
Syber79
@Syber79
Nov 09 2016 13:47

Запихал оба варианта в архив с запросом и ответами
https://cloud.mail.ru/public/MG55/buvV8LEVT

Вдруг кто пойме - что им не так с подписью.
Серт живой, на него ИС зарегана и он же транспортный
Если из тела ХМЛ выдернуть и в текстовичек .cer сохранить - идентичен.

Vershinin Sergey
@versh23
Nov 09 2016 13:56
хм.. что то изменилось)
it-webwork
@it-webwork
Nov 09 2016 13:58
Кто нибудь сталкивался с асинхронными запросами, которые повисают? То есть getState возвращает уже около часа статус в работе...
Vershinin Sergey
@versh23
Nov 09 2016 13:58
@it-webwork даааа)
it-webwork
@it-webwork
Nov 09 2016 13:58
Хотя если перезапустить, то все отработает..
И как решали?
Таймауты?
Vershinin Sergey
@versh23
Nov 09 2016 13:59
никак) кто то выше цитировал ответ от сапорта "если запрос не отвечает 5 дней, то скорее всего он никогда не ответит" ))
ну у меня по таймеру опрос идет
it-webwork
@it-webwork
Nov 09 2016 13:59
Круто конечно :)
То есть ставить скажем лимит на час и не париться?
Pavel Druzhinin
@pavelDruzhinin
Nov 09 2016 14:23
@it-webwork лучше ддосить до последнего, уломают начальство продать яхты и купить нормальный парк серверов
Aleksey
@ruDotBot_twitter
Nov 09 2016 14:32
На тему таймаутов - есть несколько путей. Первый - ждать адекватное время и периодически запрашивать. Второй - забить, пересоздать и запросить заново. Для каждого случая решается индивидуально (например, для запроса каких-нибудь справочников известно, что максимальный ответ в пределах 5 минут - там проще пересоздать запрос)
Так что оба подхода имеют свою необходимость + ручное разрулирование настройками

никак) кто то выше цитировал ответ от сапорта "если запрос не отвечает 5 дней, то скорее всего он никогда не ответит" ))

Я цитировал. Было интересно спросить и про таймауты, и про прочую лабуду. А реально настроил задачник на то, чтобы вопрос в принципе не мог висеть дольше 12 часов.

it-webwork
@it-webwork
Nov 09 2016 14:35
Спасибо за инфу :)
Кстати обратил внимание что при этом приходит state=1. В других запросах приходил сразу state=2
Aleksey
@ruDotBot_twitter
Nov 09 2016 14:40
Коды ответов из ТФФ. AsyncRequestStateType: Статус обработки сообщения в асинхронном обмене (1- получено; 2 - в обработке; 3- обработано)