![]() |
|
v7: Падает "карлик" при выводе результата... | ☑ | ||
---|---|---|---|---|
0
MWWRuza
20.12.23
✎
13:15
|
Добрый день!
В продолжение закрытой: v7: Карлик (curl1c) и XML_DOM, вместе крашутся... В "боевой" у одного клиента периодически падает: ![]() Пока не понял отчего, но, тенденция явная - говорит, третья накладная подряд "схлопывает" 1С, при этом, подписание документа отрабатывает - после перезапуска 1С статус у этого "злополучного" документа становится "подписан", так, что, он отрабатывает, а падает именно на выводе результата запроса... Никакой XML_DOM в этой обработке не грузится, это точно, там давно вся работа с ХМЛ переделана на 1срр... Вообще, зная оператора этого клиента, могу допустить, что параллельно с обработкой ЭДО лайт, может быть запущено что-то из ЕГАИС, а там все на XML_DOM построено... Позвоню, попытаю... |
|||
1
MWWRuza
20.12.23
✎
13:27
|
Позвонил. Утверждает, что точно ничего не запускала, ни ЕГАИС ни чего другого... После первого падения, открывает 1С, сразу в список - УПД подписан, подписывает следующий - опять так-же падает. И так, три раза подряд.
Параллельно никакие программы не грузятся. Пока не понятно, с чем конфликт. У других клиентов работает, пока жалоб на это не было... Куда покопать? |
|||
2
Djelf
20.12.23
✎
19:15
|
(1) Да хрен его знает куда копать, ВК сделана очень просто, по технологии Орефкова, она не должна никуда лезть в чужую памать.
Но есть проблемка - и кажется ты это озвучил, это "подписывает"! У меня VirtualBox из-за этого "подписывает" вообще в синьку всю систему выкидывал, криптопро это еще тот вирус, который не антивирус, но все таки иногда вирус... |
|||
3
Волшебник
20.12.23
✎
19:16
|
(2) что значит "подписывает"? утечки памяти?
|
|||
4
Djelf
20.12.23
✎
19:32
|
(3) Так в (1) написано "УПД подписан", следовательно криптопро (вероятность 99%), я тут совсем не спец, но оно что-то с памятью компа что-то вытворяет.
Т.е. удалил криптопро, вбокс перестал ронять комп в синьку, поставил заново опять вылеты в синий экран. Какие еще идеи могут быть почему так? |
|||
5
MWWRuza
21.12.23
✎
17:17
|
(3) что значит "подписывает"? утечки памяти?
Подписывает - в данном контексте значит только одно, что запрос отрабатывает нормально и передаваемые данные попадают на сервер. А вот дальше, когда запрос отработал, в самом конце карлик вышибает 1Ску... Последующаа(после перезапуска 1С) проверка статуса документа, говорит, что он успешно подписался, значит критическая ошибка не на стадии выполнения запроса, а уже в конце, когда он отработал, при выводе результата. КриптоПро, конечно тот еще "вирус" :-) Но, я не думаю, что тут он как-то замешан... При тестах, которые я делал в предыдущей теме, он вообще не использовался - я ей(тестовой обработке) подсовывал готовые подписанные ранее файлы. И все равно падало, столило только создать DOM и загрузить в него любую ХМЛ из файла(там для теста кнопочка была специально, выполняющая это). Сейчас никакого DOM во всей обработке ЭДО лайт не используется, весь парсинг ХМЛ на 1срр сделан, и все равно иногда есть падения. У меня подозрение, что не только мелкософтовский DOM с карликом не уживается, но и MSXML_HTTP возможно тоже... Просто, прежде чем карликом отправить окончательный мультипарт запрос, для подготовки отправляемых данных выполняются еще несколько запросов через MS_XML_HTTP... Попробовать и их убрать, переделав на карлик? |
|||
6
Djelf
21.12.23
✎
20:37
|
(5) Мне не удается повторить. И что особенно интересно, рабочий комп на W10x64, а сервер на W@E под Linux. Т.е. это совсем разные системы, настолько разные что дальше уже никак. Но почему-то не падает ни там, ни сям. Стресс-тесты ты у меня видел, они тоже работают без проблемм. Чтобы еще такого замутить, чтобы падало гарантийно?
|
|||
7
MWWRuza
21.12.23
✎
23:47
|
Гарантировано падает(и у меня, и у клиентов), Винды-7, разной разрядности, если в пределах одной процедуры/функции с карликом сделать еще так:
XML_DOM = CreateObject("MSXML2.DOMDocument.6.0"); XML_DOM.Load(ПутьКХМЛФайлу); ХМЛка может быть абсолютно любая. И запрос отправляемый карликом - мультипарт(но, я думаю, это значения не имеет, так, как он отрабатывает нормально и падает все в самом конце, когда запрос уже отправлен). Но, в данный момент у меня такого нет, я это поубирал давно, и читаю ХМЛки с помощью 1срр... |
|||
8
Злопчинский
21.12.23
✎
23:47
|
я когда-то давно (сильно) столкнулся с тем что 1С-ка падала со странной ошибкой про фрейм какой-то в неожиданных местах... Вычислил что проблема в том, что в системе какая-то смотрелка графики от Кэнона (или хз от чего, точно не помню) заменила системные библиотеки на свои, но другой версии. В итоге взял из дистриба 1Ски (там тогда еще прямо в дистрибах лежали эти файлики в отдельно папочке) и засунул в ситсему. Стало нормально. Но ходил и ругался я с большим удовольствием на всех целый день ;-)
|
|||
9
MWWRuza
21.12.23
✎
23:51
|
А на чем кстати ВК написана?
Может ей какой-то ФреймВорк нужен для нормальной работы? |
|||
10
Djelf
22.12.23
✎
00:43
|
(9) Обертка для 1С 7.7 на с++ msvc 6.0, все осальное на cc.
И падает то не эта библиотека, а MSXML2.DOMDocument.6.0, а вот почему это науке не известно, исходников MSXML2 в свободном доступе нет. Может все что угодно быть, да тот же TeamViewer сует свой нос куда не попадя, а то что КриптоПро ты не использовал не значит что его нет, он как служба все равно запущен. |
|||
11
MWWRuza
22.12.23
✎
01:04
|
Х.з., что там падает конкретно, "схлопывается" 1С.
У последнего клиента падает и без MSXML2.DOMDocument.6.0, это я просто написал, на чем у меня падало гарантировано. А от КриптоПро избавиться к сожалению не получится, на нем вся "эта затея" базируется. Единственный вариант - попробовать убрать все мелкософтовские запросы, переделать все на карлика... Если не поможет, переделывать на чистый курл, чего не хотелось-бы :-( |
|||
12
MWWRuza
22.12.23
✎
01:28
|
Сейчас посмотрел, всего в обработке 9 запросов, в разных местах. Конечно не все используются при подписании, но, все равно, штуки три точно. И из них, 8 на "msxml2.serverxmlhttp.6.0", и только один, "финальный", который мультипарт, на карлике.
Надо посмотреть, какие точно участвуют в процедуре получения списка и подписании, и их переделать на карлика... Хуже то точно не должно быть... Хотя, если начнет падать на открытии обработки(там идет получение списа документов с сервера), то станет понятно, что "msxml2.serverxmlhttp.6.0" ни при чем... |
|||
13
Djelf
22.12.23
✎
15:29
|
Ну загрузи в чистую систему и проверь! Я ж телепатировать журнал чужих ошибок винды не умею видеть (этот скил я еще не прокачал).
Может быть станет что-то понятнее.. |
|||
14
MWWRuza
22.12.23
✎
17:04
|
(13) Я ж телепатировать журнал чужих ошибок винды не умею видеть
Да журнал ошибок винды, после первой-же ошибки, я смогу взять, очистив предварительно... Если есть смысл, и тебе не лень и время будет посмотеть. |
|||
15
MWWRuza
28.12.23
✎
14:45
|
Сейчас разговаривал с оператором клиента, у которого выявились падения...
Говорит, "позавчера работало целый день, было несколько УПД, ни разу не упало, все подписывалось, нарадоваться не могла :-) а вчера, снова стало падать при каждой попытке подписания"... Вот х.з., что у них там не так. Зашел, очистил все журналы винды, и "строго наказал" - как только следующая УПД будет, при подписании которой упадет - сразу звонить мне, зайду, заберу "свежие" журналы винды, посмотрим, что там будет... Может что-то прояснится, и если "кто-то сторонний виноват", вычислим зловреда :-) |
|||
16
Garykom
28.12.23
✎
14:48
|
опять?
|
|||
17
MWWRuza
28.12.23
✎
14:56
|
(16) Что "опять?" Все работает, в нескольких конторах, в самых разных условиях, нормально, ни разу не падало после того, как убрал чтение ХМЛ через DOM и переделал на 1СРР...
Здесь же, конфа та-же, все остальные условия те-же, но падает как-то эпизодически... Значит, что-то где-то на грани, и малейший "шаг в сторону" нарушает стабильнось вроде как стабильно работающей системы... Хочется понять, что именно. |
|||
18
Garykom
28.12.23
✎
15:09
|
уже было несколько тем по этому карлику
снова? |
|||
19
MWWRuza
28.12.23
✎
15:15
|
Моя была одна(до этого была еще одна, но там не про падения, а про то, как я к нему вообще пришел), в первом сообщении ссылка на тему про падения есть, она закрыта, так, как там вроде-бы все решилось - нашли, что с DOM конфликт был, убрал чтение ХМЛ через DOM - все заработало, тему закрыли.
А тут, да - "опять?", с чем-то еще конфликт... |
|||
20
MWWRuza
28.12.23
✎
16:36
|
(11) Единственный вариант - попробовать убрать все мелкософтовские запросы, переделать все на карлика...
Решил заняться этим, проверить... А как правильно делать несколько запросов подряд, через карлика-? Первый запрос отрабатывает, а второй и далее ошибка... В отладчике смотрю - начиная со второго запроса, карлик пустое значение... Делаю так: Функция глКарлик_ВыполнитьЗапрос(Тип, Знач Url, ТекТокен, СтрОшибка, СзКарл = 0, МП = 0, Отл = 0) Экспорт Попытка СоздатьОбъект("Карлик"); Исключение Если ЗагрузитьВнешнююКомпоненту("curl1c.dll") = 0 Тогда Сообщить("Компонента curl1c.dll не загружена", "!"); Возврат 0; Иначе Карлик = СоздатьОбъект("Карлик"); КонецЕсли; КонецПопытки; ******************************** ******************************** Здесь сам запрос ******************************** ******************************** Карлик = 0; Возврат ТекстОтвета; КонецФункции По идее, запрос отработал, я его прибил - Карлик = 0; потом, в следующем запросе, пытаюсь создать объект, и в исключении создаю новый. Или для него "= 0" не работает, и нужно какой-то другой метод использовать типа "деструкт" или что-то наподобии? |
|||
21
MWWRuza
28.12.23
✎
17:38
|
Блин... Первый раз объект создается, запрос отрабатывает нормально... А второй раз, "Не получается создание объекта curl1c, по причине Неудачная попытка создания объекта (Карлик)"...
И хоть ты что с ним делай, результат один :-( |
|||
22
Djelf
28.12.23
✎
17:52
|
(21) Я ёц, я стресс-тестов в обработку нафигачил достаточно много.
Поднимай виртуалку, в ней сделай тест гарантийного падения. Выкладывай виртуалку. |
|||
23
MWWRuza
28.12.23
✎
17:55
|
Тьфу ты блин... Это я протупил. При первой попытке - неудача, так, как ВК не загружена, загружаем, создаем, присваивая переменной Карлик созданный объект. А потом, при следующей попытке - создаем сразу, так, как ВК уже загружена, а переменной его не присваиваю, пропущена "Карник ="...
Тупо откуда-то копировал, не вникнув в суть... Вот ошибка: Функция глКарлик_ВыполнитьЗапрос(Тип, Знач Url, ТекТокен, СтрОшибка, СзКарл = 0, МП = 0, Отл = 0) Экспорт Попытка СоздатьОбъект("Карлик"); Исключение Сейчас вроде нормально, надо клиенту поставить, посмотреть, как у них будет. |
|||
24
Djelf
28.12.23
✎
19:31
|
Есть еще вариант - подкинуть mfc42.dll из хрюши в каталог bin (1С).
Проверял твои глюки, убрал его, загрузка через http://www.dorex.pro/?projects&configspy стала падать, вернул - заработала. Этю стюардессу приходится мариновать и бальзамировать определенными настройками и библиотеками, иначе она сбегает и самозакапывается и что, опять откапывать? Я не понимаю почему у тебя проблемы есть, а у Вика нет. Масштаб внедрений у Вика я не знаю, но видимо это не единичный проект где это испольеется. Подобных претензий от Вика не было. И это не коммерческая разработка, это была разработка для внутреннего использования. Ну если хотите лицензию, то вот она, лицензия:"As Is". Исходники выложены. Не идеально, но эта штука работает 10 лет уже (видимо не во всех вариантах винды, как пишет MWWRuza). З.Ы. Очень быстро, очень, меня полностью скинут на 8ку. Дальше ситуация покрыта от меня тьмой. Была бы у нас зимой Ромашка и ее лепестки... "Уволит/Не уволит, Премирует/Но и оштрафует". |
|||
25
MWWRuza
28.12.23
✎
21:05
|
Да это понятно все...
Подкинуть библиотеку, идея хорошая, обязательно завтра попробую. А пока, я пытаюсь свою "поделку" полностью на карлика перевести... В принципе, с JSON - проблем нет, все работает. Вот это все на карлике сделано, все запросы от мелкософта заменены на карлик, работает отлично, даже субъективно быстрее: ![]() А вот дальше, с XML что-то ничего не получается... Там по кнопке "Открыть документ" получается его содержимое... Или я совсем тупой, или одно из двух... XML-ка документа загружается в неверной кодировке... ![]() И что я не делаю, пока победить не получается... Пробовал через метод Карлик.УстановитьПараметр("HTTPHEADER", <СамПараметр>); Передавать в параметр: "Content-type: text/xml; charset=""UTF-8""" "Content-type: text/xml; charset=""Ansi""" "Content-type: text/xml; charset=""Windows-1251""" "Content-type: text/xml" Бесполезно, при передаче любого из этих параметров запрос перестает отрабатывать, возвращает статус 400, вместо 200... Что я не так делаю? |
|||
26
MWWRuza
28.12.23
✎
21:42
|
В общем, я кажется понял в чем дело:
Когда я использовал MS_XML_HTTP, я сохранял весь объект в файл: Стат = Объект.Status; Если Стат = 200 Тогда Если Файл = 0 Тогда Ответ = Объект.ResponseText; Иначе ПутьКФайлу = СокрЛП(Файл); СохранитьВФайл(Объект, ПутьКФайлу); Возврат ПутьКФайлу; КонецЕсли; Иначе В процедуре СохранитьВФайл через поток сохранялись файлы... Процедура СохранитьВФайл(http, ИмяФайла) Скрипт = оздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language = "vbscript"; stream = CreateObject("ADODB.Stream"); stream.Mode = 3; stream.Type = 1; stream.Open(); Скрипт.AddObject("stream",stream); Скрипт.AddObject("http",http); Скрипт.Eval("stream.Write(http.responseBody)"); stream.SaveToFile(ИмяФайла, 2); КонецПроцедуры Тут же, через карлика, в ответе текст, а это немного не то... Как это сделать через карлика, я пока не понимаю... Если я добавляю в параметры: "Content-Type: application/json", тоже 400 прилетает... |
|||
27
MWWRuza
28.12.23
✎
23:07
|
При таких заголовках, в строке ответа кракозябры:
![]() А если добавить параметр application/json, или application/xml, то без разницы - 400 в ответе... |
|||
28
MWWRuza
28.12.23
✎
23:19
|
Я вот думаю, может я вообще "вчерашний день ищу", и карлик просто не умеет работать с объектами? И в результатах запроса всегда строка, как бы я не изголялся с типом контента?
|
|||
29
Злопчинский
29.12.23
✎
00:02
|
(28) здравая идея имхо
|
|||
30
MWWRuza
29.12.23
✎
12:20
|
В общем, пока Djelf молчит(хотелось бы услышать ответ на вопрос в (28)), провел анализ кода 1С, и обнаружил глобальную переменную WinHTTP(объект "WinHttp.WinHttpRequest.5.1")... Это конечно, не XMLHTTP, и не XMLDOM, но все равно, она там нафик не нужна - наследие от старых времен, инициализировалась при старте программы, и висела в памяти весь сеанс... Потому, что раньше было всего несколько запросов, в разных местах конфы, и все они использовали эту глобальную переменную. А теперь, их туева хуча развелось по всей конфе - и ЕГАИС, и маркировка, и запрос контрагентов, и запрос номенклатуры, и еще куча всего, и я уже давно создал универсальную глобальную функцию запроса, которую дергаю из всех мест, с разными параметрами на разные случаи жизни, в ней своя переменная этого-же объекта, и глобальная стала не нужна. Но, она осталась - я про нее забыл.
Х.з., может с ней конфликт идет, и карлик выносит 1Ску... Убрал, надо будет закинуть обновление проблеммному клиенту и посмотреть, как будет. |
|||
31
Djelf
29.12.23
✎
17:00
|
(30) Что я могу ответить? Где вопрос то?
Или ответить на это? "карлик просто не умеет работать с объектами", хм... интересный подход к ВК. Ты чего ожидаешь от ВК которая принимает/отсылает только текст (или двоичные данные через файл, если так указано в источнике или получателе)? Отсылку/приемку объектов ActiveX? И в каком формате ты предлагаешь это сделать? |
|||
32
MWWRuza
29.12.23
✎
17:20
|
(31) Ты чего ожидаешь от ВК которая принимает/отсылает только текст
Ну, вот этого я и ожидал. Просто мелкософтовские WINHTTP и XMLHTTP, могут получать объектами содержимое файлов, которые потом, можно из потока сохранить скриптом в соответствующие файлы. Здесь, такое не прокатывает - в ответе только строка... И даже, если победить кодировку для XML, и избавиться от "кучи вопросиков", и просто без скрипта работы с потоком сохранить ответ в файл, то для других данных, например печатная форма в PDF, это не прокатит. Короче, придется оставить все как есть - все запросы через средства MS, и только один, финальный, отправка мультипарт, через карлика... Там в ответе строка с результатами операции, так, что тут отрабатывает нормально. Только падения победить... PS "или двоичные данные через файл, если так указано в источнике или получателе" а вот это у меня и не получается, если указываю "application/xml", то запрос перестает отрабатывать, возвращает 400... Может тут я что-то не так делаю? Подскажи как правильно принять двоичные данные, а я уже их дальше скриптом в файл сохраню... |
|||
33
MWWRuza
29.12.23
✎
18:46
|
(32) Может тут я что-то не так делаю? Подскажи как правильно принять двоичные данные, а я уже их дальше скриптом в файл сохраню...
Ух-ты! :-) При: Карлик.Приемник.Тип = 1; Карлик.Приемник.Данные = Файл; // Файл - путь к файлу он сам файл сохраняет по указанному пути, и ни какие скрипты работы с потоками не нужны :-) Круто! :-) |
|||
34
MWWRuza
30.12.23
✎
00:52
|
Переделал на карлика почти все, и список доков json получаю, и документы открываю, и печатные форы в PDF, и мультипарт подписанного дока улетает без вопросов, все работает отлично...
А вот на одном запросе застрял, ничего не могу сделать... Нужно POST запросом, без авторизации, отправить на сервер файл JSON для получения токена. Сам JSON валидный, проверяется любым онлайн-валидатором, да и он-же успешно отправляется через MS_WIN_HTTP или через MS_XML_HTTP... Сам запрос такой: Карлик.ВыводитьСостояние(1); Карлик.Отладка(1); Карлик.Трассировка(1); Карлик.УстановитьПараметр("TIMEOUT",30); Карлик.УстановитьПараметр("URL", СокрЛП(<Здесь нужный url>)); Карлик.УстановитьПараметр("CUSTOMREQUEST", "POST"); Карлик.УстановитьПараметр("FOLLOWLOCATION", 1); Карлик.Приемник.Тип = 0; Карлик.УстановитьПараметр("HTTPHEADER", "cache-control" + ": "+ "no-cache"); Карлик.УстановитьПараметр("HTTPHEADER", "Accept" + ": "+ "application/json"); Карлик.УстановитьПараметр("HTTPHEADER", "Content-Type" + ": "+ "application/json"); Запрос = Карлик.СоздатьЗапрос(); Карлик.Источник.Тип = 0; Карлик.Источник.Данные = СокрЛП(<Здесь мой JSON, строка>); КодОшибки = Карлик.Выполнить(); Файл JSON: https://cloud.mail.ru/public/jJ6F/hJZ8xrVbG Ошибка: Ошибка в разборе json: Ошибка {"error_message":"JSON parse error: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value; nested exception is com.fasterxml.jackson.core.JsonPar Такое ощущение, что ему что-то в JSON не нравится, но, что??? Джейсон, как джейсон, абсолютно валидный... Поиском в интернете ничего интересного найти не получилось. Что-то с самим запросом у меня не так, но что? |
|||
35
MWWRuza
30.12.23
✎
01:10
|
Полный текст ошибки:
<= Recv data, 406 bytes (0x196) 0000: {"error_message":"JSON parse error: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus 0080: sign, for valid numeric value; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('-' (cod 0100: e 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value\n at [Source: (PushbackInputStream); 0180: line: 1, column: 3]"} |
|||
36
Злопчинский
30.12.23
✎
01:27
|
Переводчиком читал?
где-то числовое значение отрицательное (есть такие у тебя) "криво" записано должно быть типа -123 а у тебя может - 123 или -.23 или может в _строке_ встречается типа запись числа (хотя это вряд ли) формально м.б. формат _ДЖСОНА_ не нарушен, а при более глубоком разборе на стороне сервера идет валидация на корректность записи чисел? . тупо пройти по всему джсону и КЗМом сделать замену минуса (код 45) на чтнить совсем специфическое типа ^ и посмотреть глазками - может простог глаз замылился |
|||
37
MWWRuza
30.12.23
✎
01:36
|
Пример запроса через курл от ЦРПТ:
curl --location --request POST '<URL стенда>/api/v1/session' --header 'Content-Type: application/json' --data-raw '{ "uuid": "e32e22c6-0ac3-4432-a553-dd62d11da1fc", "data":"MIIS0wYJKoZIhv...zd2FLM2K6QuiG+Xc9fyOmtiI17e0UvU+JabozsbH2lRW2Ctyg=" }' Может вот это - "data-raw" как-то влияет? В MS запросах без этого работает... |
|||
38
Злопчинский
30.12.23
✎
01:41
|
а почему после uuid после : есть пробел, а на строке ниже - нет? или это некритично?
. и на этом запросе тоже дает вышеописанную ошибку? если да - то тупо может минуса в uuid не нравятся? |
|||
39
MWWRuza
30.12.23
✎
02:17
|
(36) Минусы?
Конечно смотрел, поиском ф файле, там минусы только в строке uid, в первой части джейсона... А как без них? "uuid": "4cd53c9d-18de-4f42-8631-20d98a17be5c" Это строка, тут не может быть чисел, ни отрицательных, ни положительных. Больше во всем файле нет минусов. Этот-же джейсон нормально работает с MS-овскими запросами. В интернете поиском что-то попадалось типа того, что это не ошибка в джейсоне, а просто такую некорректную ошибку запрос выводит, а дальше для меня не понятно - там в какие-то дебри PHP уводят... |
|||
40
MWWRuza
30.12.23
✎
01:48
|
(38) Я это тупо скопировал с PDF-ки от ЦРПТ... У них там все что хочешь может быть, не только наличие/отсутствие пробелов...
А этот запрос, который через курл, я не пробовал, но именно этот джейсон отрабатывает через WinHTTP нормально. |
|||
41
Злопчинский
30.12.23
✎
02:13
|
если тебе на ДЖСОН ругается СЕРВЕР
тогда имхо если тупо - надо брать MS-запрос и КАРЛ-запрос (каким-нить перехватчиком запросов) и прямо смотреть чем они отличаются...? |
|||
42
MWWRuza
30.12.23
✎
02:16
|
(38) и на этом запросе тоже дает вышеописанную ошибку?
Ну, я с курлом особо не дружу, скорее всего в синтаксисе ошибки, но, они другие: ![]() |
|||
43
Злопчинский
30.12.23
✎
02:34
|
(42) ну тут вообще все криво судя по последним строкам сообщения, запрос криво построен имхо, пропустил какой-то заголовок или лишний впихнул бо resolve host смотрит не адрес, а данные запроса.
. но я не спец по запросам |
|||
44
trad
30.12.23
✎
03:29
|
Мда уж. Плохи дела
|
|||
45
trad
30.12.23
✎
03:30
|
у ТС
|
|||
46
Злопчинский
30.12.23
✎
05:39
|
(45) мы ж не погромисты, мы ж девелоперы!
|
|||
47
MWWRuza
30.12.23
✎
11:40
|
(44)(45) А я что... Я сразу сказал, что с чистым curl не дружу, никогда с ним не работал и не знаю его синтаксиса... Я просто взял пример из талмуда от ЦРПТ(сообщение (37)), и заменил в нем данные примера на свои. У них, похоже тоже "Плохи дела" :-(
По Карлику... Попробовал этот злополучный ДжейСон файлом передавать, предварительно сохранив в темпе... Ничего не изменилось, ошибка та-же: Ошибка в разборе json: Ошибка {"error_message":"JSON parse error: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value; nested exception is com.fasterxml.jackson.core.JsonPar Непонятно, что ему в JSON не нравится... При этом, WinHTTP сожрал этот-же JSON и не поперхнулся, в ответ токен прилетел, только что проверил. |
|||
48
MWWRuza
30.12.23
✎
12:35
|
Что-то с заголовками не то:
Вот эти, для обеих вариантов запроса передаю: "cache-control": "no-cache" "Accept": "application/json" а с этим непонятка: "Content-Type": "application/json" С ним, WinHTTP перестает отрабатывать, карлик же с ним дает ошибку как в (47). Без этого заголовка, карлик выдает: Ошибка в разборе json: Ошибка {"error_message":"Неподдерживаемый тип содержимого запроса (content-type): multipart/form-data;boundary=------------------------6523d2b2b2ab0394;charset=UTF-8"} Почему-то он думает, что это мультипарт, хотя, это обычная строка JSON... Видимо, сюда: "Content-Type" надо что-то другое передать, что-бы он правильно его переварил... Но, что? |
|||
49
Злопчинский
30.12.23
✎
13:25
|
Галактика в ожидании, интересно поборешь или нет...
|
|||
50
MWWRuza
30.12.23
✎
13:38
|
Да х.з....
Экспериментировать с загололовками мне сейчас удобно, тут: сзЗаголовки = СоздатьОбъект("СписокЗначений"); сзЗаголовки.ДобавитьЗначение("no-cache", "cache-control"); сзЗаголовки.ДобавитьЗначение("application/json", "Accept"); // сзЗаголовки.ДобавитьЗначение("text/plain", "Accept"); сзЗаголовки.ДобавитьЗначение("application/json; charset=utf-8", "Content-Type"); // сзЗаголовки.ДобавитьЗначение("application/json", "Content-Type"); // сзЗаголовки.ДобавитьЗначение("text/plain; charset=utf-8", "Content-Type"); добавляй что хочешь, и комментируй что не нужно... И далее одной кнопкой. Но, что-то "не выходит каменный цветок", не нравится ему мой JSON, хоть убей... Может его в Базе64 завернуть? Ну, тогда он точно не поймет, что это джейсон... |
|||
51
MWWRuza
30.12.23
✎
14:15
|
Оставить этот запрос на WinHTTP, а остальные на карлике?
Ну, конечно это будет работать, но, при этом я не добьюсь основной цели этого действа - полностью избавиться от сторонних запросов, и все перевести на карлика, что-бы убедиться, что падать перестанет там, где падает(предположительно из-за "зоопарка" запросов). Хотя, если изменить алгоритм действий пользователя - то можно и сейчас проверить и сделать выводы. Сейчас, если пользователь открывает обработку, а токен "протух"(срок жизни - 10 часов), то автоматически идет получение нового этим злополучным запросом, и только потом открывается список, и можно дальше работать - подписывать, и т.п... А можно открыть программу, проверить токен(там есть соответствующая обработка, с одной кнопочкой: "Проверить/получить токен"), получить новый, если он "протух". После этого закрыть программу, и открыть заново(будет новый сеанс, и "все забудется", что выполнялись запросы не через карлика). После этого все делать как обычно - токен уже есть, соответственно новый получаться не будет, и этот запрос выполняться не будет, соответственно все дальнейшие запросы через карлика. Все станет понятно. Но, это "полумеры", хочется все-таки победить этот запрос. |
|||
52
Злопчинский
30.12.23
✎
14:18
|
Полумеры это не наше вот это всё!
|
|||
53
Djelf
30.12.23
✎
15:37
|
(51) Дай уже виртуалку где все падает, взрывается, и где творится такое: спаситя, помогитя меня сейчас Годзилла затопчет.
|
|||
54
Злопчинский
30.12.23
✎
16:13
|
(53) не, битва двух якадзун...
|
|||
55
MWWRuza
30.12.23
✎
16:19
|
(53) Я не знаю про какую виртуалку идет речь, падает у клиента на реальной Win-7 32 бита.
У меня ничего не падает, как и у других клиентов, про которых знаю. Для сужения круга поиска проблемы, решил переделать всю свою обработку на карлика, что-бы исключить влияние других майкрософтовских запросов... Все получилось, кроме одного запроса - нужно запросом с типом POST передать на сервер JSON, и получить ответ. Не получается, хоть тресни. Ошибки выше описаны. Сейчас, анализирую лог карлика, увидел, что он и не пытается передать JSON целиком, не понимает его... Вот: 00a3: Accept: application/json 00bd: Content-Length: 46 00d1: Content-Type: application/json; boundary=------------------------de8c2711f7521731 0124: => Send SSL data, 5 bytes (0x5) Почему он думает, что длина его 46 - ??? Там большая строка JSON, почти 5 килобайт... 46 - это длина его первого узла: "uuid": "a3f0a8bb-dc27-49a8-9db7-06f16465393f" потом идет второй узел: "data": "MIINlQYJKo***************8\/\/MXkf0U8dg==" длиннющая строка... По ссылке: https://cloud.mail.ru/public/QUqG/HEaFsXgMK архив, в котором сам JSON и полный лог карлика из табло 1С... Будет время, посмотри пожалуйста, что я не так делаю... А падения, проверю, когда клиенту поставлю переделанную полностью на карлика обработку. Сейчас этому мешает один этот запрос. PS Но, мне почему-то кажется, что на чистом карлике, и падать не будет :-) |
|||
56
MWWRuza
30.12.23
✎
16:34
|
Заголовки, полученные методом Карлик.ПолучитьЗаголовки()
![]() |
|||
57
MWWRuza
31.12.23
✎
15:55
|
Ура!!!! Победил.
(49) Галактика в ожидании, интересно поборешь или нет.. Галактика может встречать новый год спокойно :-) Просто изначально, запрос карликом использовался у меня для мультипарта, и я не обратил внимание, зачем там оператор: Запрос = Карлик.СоздатьЗапрос(); Я его выполнял, а в запрос ничего не добавлял так, как он был до условия на МП. Поэтому он и не отрабатывал правильно с данными источника. Перенес создание запроса в условие, что он мультипарт(так, как для не мультипарт запросов он не нужен) - и для обычных запросов все заработало :-) // МП - признак того, что запрос будет мультипарт Если МП = 1 Тогда КонтТип = "multipart/form-data"; Карлик.УстановитьПараметр("HTTPHEADER","Content-Type: " + КонтТип); Запрос = Карлик.СоздатьЗапрос(); Запрос.Добавить("content", ИмяФайла, "text/xml", content); Запрос.Добавить("doc_id",, "text/plain", doc_id); Запрос.Добавить("signature",, "text/plain", signature); Иначе Если ТелоЗапросаJSON <> 0 Тогда Карлик.Источник.Тип = 0; Карлик.Источник.Кодировка = 1; Карлик.Источник.Данные = СокрЛП(ТелоЗапросаJSON); КонецЕсли; КонецЕсли; Все оказалось просто, в очередной раз бездумный копи/паст подвел :-) |
|||
58
Djelf
30.12.23
✎
19:02
|
(57) lincurl забавная штука, в slist добавить строку/объект можно, очистить можно, но выборочно удалить пункт из списка нельзя.
Но! В твоих тестах ты пересоздавал объект, а сейчас пишешь что не пересоздавал, или пересоздавал его в другом месте или кешировал его в переменной или еще что-то делал, что мне не ведомо. Я пока не готов проверять бесконечные выверты в обработках (без тестового случая, который гарантийно убивает 1с). Это все не важно... Даже если в (57) падать перестало, то в (0) оно все равно падает и падать будет. Мне без разницы, я эту штуку не продаю, оно "красивое", хотите рассматривайте, хотите используйте... Не хотите, ну и не надо. |
|||
59
MWWRuza
30.12.23
✎
19:04
|
Теперь, обновить конфу проблемному клиенту, и понаблюдать, будет падать или нет...
Но, это уже после праздников, потому как даже если они и будут завтра работать, сомневаюсь что будет новаый входящий УПД от ЧЗ через ЭДО лайт... |
|||
60
MWWRuza
30.12.23
✎
19:07
|
(58) то в (0) оно все равно падает и падать будет.
Погоди так категорично :-) У меня есть надежды, что должно помочь. |
|||
61
MWWRuza
30.12.23
✎
19:11
|
(58) (57) lincurl забавная штука, в slist добавить строку/объект можно, очистить можно, но выборочно удалить пункт из списка нельзя.
Но! В твоих тестах ты пересоздавал объект, а сейчас пишешь что не пересоздавал, или пересоздавал его в другом месте или кешировал его в переменной или еще что-то делал, что мне не ведомо. Я пересоздавал, при каждом запросе. Но, при этом я еще и делал Запрос = Карлик.СоздатьЗапрос(), и ничего в него не передавал, он оставался пустым. Поэтому из источника данные и неподхватывались. |
|||
62
MWWRuza
30.12.23
✎
20:29
|
(58) оно "красивое", хотите рассматривайте, хотите используйте...
Это без сомнения! Даже очень красиво. Спасибо. Протестирую после праздника, что наворотил, и если не поможет, и все равно будет падать, тогда уже и буду думать, как создать виртуалку с тестом гарантированного падения, да еще и которую можно "выложить". Никогда с этим не работал, для меня "эти слова ругательные" :-) Ну, праздники длинные, время будет, разберусь. Всех с наступающим! :-) |
|||
63
AAA
02.01.24
✎
07:31
|
(62)А где можно скачать эту штуку?
|
|||
64
AAA
02.01.24
✎
07:39
|
Спасибо, нашел )
|
|||
65
MWWRuza
02.01.24
✎
11:23
|
(64) Напишите сюда, как попробуете. Особенно по стабильности работы в окружении других программ. Что у Вас там параллельно используется - КриптоПро, парсинг XML через DOM, запросы через WinHTTP или MSXMLHTTP - ?
Интересна статистика... PS У меня сейчас работает идеально, ничего не падает и даже намека нет... У клиента, если получится, сегодня проверю, все свои предновогодние "мытарства" :-) |
|||
66
AAA
02.01.24
✎
21:07
|
(65)у меня простенький пример из 10 строк приводит к аварийному завершению программы. Окружение - 1сpp3.2.2.0, formex2.0.5.92 Активно используется Йоксель, но в этот момент он не загружен. Только сейчас )) обнаружил в глобальнике еще две ВК, но это штатные, надо их почикать.
|
|||
67
AAA
02.01.24
✎
21:15
|
Без всех ВК тот же самый вылет. Разбираться пока нет времени и сил ) Пока выручает MSXMLHTTP
|
|||
68
MWWRuza
02.01.24
✎
22:21
|
(67) Блин... Я не одинок :-(
А система какая? Винда, в смысле? Попробуйте по совету Djelf из поста (24) подкинуть в BIN 1C dll-ку mfc42.dll более раннюю, вот архив: https://cloud.mail.ru/public/BQSi/HKq7VZLHR Сам пока проверить не могу, у меня, и у доступных мне клиентов, и так ничего не падает, все стабильно. А та клиентка, у которой падает, куда-то пропала - обещала сегодня позвонить, но так и не позвонила... Видать еще НГ празновать продолжает :-) А "Пока выручает MSXMLHTTP" - это все хорошо, но он нормально с мультипарт для ЭДО лайт ЦРПТ не работает... Пол беды, что тело запроса руками формировать приходится(в карлике это через объект "Запрос" очень просто делается), а самое главное не верную кодировку именно вложенной одной из частей мультипарта победить не получилось, нужно в Windows-1251 передать ХМЛ, а он его упорно в utf-8 корячит :-( Тут с этим разбирались: Работа с ЭДО через API... С карликом именно с этим никаких проблем нет. |
|||
69
MWWRuza
03.01.24
✎
19:40
|
(65) У клиента, если получится, сегодня проверю, все свои предновогодние "мытарства" :-)
Проверил сегодня. Все работает нормально, ничего не падает, сам лично подписал три документа(с прошлого года висели не подписанные, так, как она не могла подписать, вылетала 1Ска). При чем, судя по всему еще до подписания, на получении данных для титула... Так как до этого, подписывалось, несмотря на падения, а тут три неподписанных висело. А может ей просто надоело, что падает, и она сама не подписывала, что более вероятно, х.з... Это теперь не выяснить достоверно. Свежие будут завтра, попробует сама, и обещала позвонить после этого. PS Правда, каюсь, чистоты эксперимента не получилось - сегодня напрягли с разных сторн так, что было "не до любви к искусству :-) " - сразу и старую длл-ку mfc42.dll закинул в BIN, и карлика обновил до последней версии, и свои доработки поставил по исключению в подписании сторонних MS запросов. Не знаю, что помогло, но работает. Что именно повлияло х.з... Будет время - попробую длл-ку удалить и понаблюдать. |
|||
70
MWWRuza
04.01.24
✎
17:32
|
(69) Свежие будут завтра, попробует сама, и обещала позвонить после этого.
Не понятно... Говорит - упало сразу, при попытке открыть обработку... Захожу, проверяю - да, падает при открытии, там идет получение списка документов с сервера, а перед этим обновление токена, если он протух. Но, вчера то не падало! Открывал/закрывал раз десять, даже намека на падения не было... Говорю, давай перезагрузим комп... Перезагрузили, захожу, открываю обработку, задумалось, получило новый токен и открылась обработа, в списке один документ. Спрашиваю - подписываем? Да. Нажал подписать, все штатно, подписалось и ничего не упало... Мистика блин :-( |
|||
71
MWWRuza
04.01.24
✎
19:13
|
(6) Чтобы еще такого замутить, чтобы падало гарантийно?
Создал обработку для теста "гарантированного падения". Простейшая, из десятка строк. В каталог вместе с обработкой положить файл "ProbUPD.xml". Тут: https://cloud.mail.ru/public/qmGh/DrWQGrw61 , в архиве все - сама обработка, карлик, именно тот, который использовал, и тестовая XML. Запускаю в чистой пустой конфе. Вообще без всего. Обработка самодостаточная, не использует ничего из конфы, и никакой токен ей тоже не нужен, это первый запрос для получения ключевой пары для дальнейшего получения токена ЦРПТ. Дальше, что делаю: 1. Без загрузки XML и без обеих галочек. НЕ ПАДАЕТ ![]() 2. С галочкой отладка без XML. НЕ ПАДАЕТ 3. С галочками отладка и трассировка. НЕ ПАДАЕТ 4. Галочки те-же, XML загружена. НЕ ПАДАЕТ 5.Снимаю обе галочки, XML загружаю. НЕ ПАДАЕТ но, при этом, в табло какие-то "следы" от отдадки или трассировки: <тут пустая строка в табло> CcURL Constructor CcURL::CacheDNS True CcURL::CacheCONNECT True CcURL::CacheSSL True CcURL::CacheCOOKIE False CurlMime Constructor CurlMime Constructor done CcURL Constructor done 6. Запускаю новый сеанс, что-бы исключить влияние установленных ранее галочек, галочки сняты, XML загрузил. ТУТ ЖЕ УПАЛО!!! 7. Проверяю еще раз после перезапуска, сразу без галочек с загр. XML. СТАБИЛЬНО ПОВТОРЯЕТСЯ - УПАЛО! ![]() |
|||
72
MWWRuza
04.01.24
✎
19:24
|
+ к (71) Журналы моей многострадальной Windows-7 32 bit, очищены перед тестом, когда падает: https://cloud.mail.ru/public/BiL2/UhEfo1h44
|
|||
73
MWWRuza
04.01.24
✎
20:49
|
Попробовал сейчас у клиента, у которой падало(мне оставили комп, и Анидеск) - все точно так-же как и у меня. Падает чистая, свеже загруженная 1С, без галочек. Стоит прогнать с галочками - то потом, снимай/не снимай - не падает.
|
|||
74
Djelf
05.01.24
✎
08:06
|
Очень много тем по такой ошибке: https://clck.ru/37TsBh
Никто точно не знает из-за чего, танцы с бубном типа "sfc /scannow" проверка avz4 и т.п. Насчет галочек странно, а если их поставить и сразу же снять? Перед прогоном? |
|||
75
MWWRuza
05.01.24
✎
11:17
|
(74) Насчет галочек странно, а если их поставить и сразу же снять? Перед прогоном?
Упало сразу. Да и что это действие может изменить? Это просто реквизиты на форме. Никакой процедуры обработки их изменения нет. Хотя, мысль очень интересная - сейчас добавлю процедуру установки параметров карлика при изменении галочек, без выполнения запроса, и попробую... |
|||
76
Djelf
05.01.24
✎
11:28
|
(75) Я не точно выразился, типа так сделать: Карлик.Отладка(1); Карлик.Отладка(0);
Черт его знает, на W10x64 никак не удается завалить. Ну можно в виртуалке W7x32 поднять, но если там не упадет, то я не знаю что дальше пробовать. |
|||
77
MWWRuza
05.01.24
✎
11:35
|
Добавил такое:
Процедура ИзменитьГалочку(Пар) Если ЗагрузитьВнешнююКомпоненту("curl1c.dll") = 1 Тогда Карлик = СоздатьОбъект("Карлик"); Сообщить("Компонента загружена", "!"); Иначе Сообщить("Компонента curl1c.dll не загружена","!"); КонецЕсли; // Карлик.ВыводитьСостояние(0); Если Пар = 1 Тогда Карлик.Отладка(Отл); ИначеЕсли Пар = 2 Тогда Карлик.Трассировка(Трасс); КонецЕсли; КонецПроцедуры В новом сеансе, галочки не трогаю, ХМЛ загружаю, выполняю запрос - ПАДАЕТ. Перезапускаю, сеанс естественно новый. Ставлю галочку "Трассировка". и тут же ее снимаю. Отладку даже не трогаю. Гружу ХМЛ. Выполняю запрос. НЕ ПАДАЕТ! Странно, но факт... Где-то сохраняется установленный параметр "Трассировка", несмотря на то, что объект я пересоздаю каждый раз, и в процедуре изменения галочек, и потом в запросе создаю новый... Очень странно, но факт... |
|||
78
MWWRuza
05.01.24
✎
11:42
|
(76) на W10x64
Когда-то, в старые времена, капризничал ЛК ФНС, никак их программеры не могли отладить работу его под разными системами и с разными токенами - обычными, и ЭЦП-2.0 с криптопровайдером на борту... А мне клиентам кассы регить/ФНки менять и т.п... И я плюнул на все, купил террабайтный Самсунг, повесил его третьим диском в комп, и установил на него W10x64 :-), с выбором откуда грузиться при старте компа. Да, можно было попробовать "малой кровью обойтись" через виртуалки и т.п., но, не дружу я с ними... Да и деньги были, решил - пусть еще диск будет. Поэтому, попробовать как будет на W10x64 работать - мне элементарно. Попробую, отпишусь. |
|||
79
MWWRuza
05.01.24
✎
11:46
|
(76) Карлик.Отладка(1); Карлик.Отладка(0);
Кстати, влияют обе галочки, и отладка и трассировка. |
|||
80
MWWRuza
05.01.24
✎
12:18
|
+(79) Дальнейшими экспериментами выяснил, что падение/не падение вызывает не только запрос, а и изменение галочек.
Если при загруженной ХМЛ(в свежем сеансе, ничего до этого не делал, только обработку открыл) поставить галочку(любую), сразу ПАДАЕТ. Если не загружая ХМЛ поставить/снять галочку(любую), то потом, можно загрузить ХМЛ, и играть с галочками сколько угодно, выполнять запрос - уже ничего не падает. Вот видео всего этого "процесса": https://cloud.mail.ru/public/HuT3/CrpQCjPvU В принципе, можно сделать обходной "костыль" этого - при старте системы создавать объект карлик, потом включать/выключать отладку, и дальше работать... По идее, должно помочь. Но это "костыль", какие-то "пляски с бубном", и все-таки хорошо-бы разобраться в причине. Я прекрасно понимаю, что проект не коммерческий и т.п., поэтому ни сколько не напрягаю, просто прошу - по возможности и наличию времени. PS Сейчас перегружусь в Win-10 и там попробую... |
|||
81
MWWRuza
05.01.24
✎
12:35
|
(80) PS Сейчас перегружусь в Win-10 и там попробую...
Попробовал. Все то-же самое, один в один, отличие только в том, что окошко с ошибкой не появляется, 1С просто схлопывается не корректно(потому, что потом переиндексацию запрашивает), как и не было, без каких-либо окошек/сообщений,как будто ее закрыли просто. PS Сами 1С разные, на разных дисках установлены(только база и обработка одни), и даже разные платформы - в семерке локальная, в десятке сетевая. |
|||
82
MWWRuza
05.01.24
✎
12:55
|
Добавил третью галочку, Карлик.ВыводитьСостояние(Сост), все с ней так-же.
Если в "чистом сеансе", сначала загрузить ХМЛ, а потом попробовать менять любую из трех галочек - то ПАДАЕТ. Если наоборот, сначала поиграть с галочками(в любых вариантах), или выполнить запрос и только потом загрузить ХМЛ - то потом, можно делать все, что угодно - уже падения вызвать не получается, все стабильно. PS Коллеги "клюшечники", ПРОСЬБА! - попробуйте у себя плиз... Полный архив в (71). Для статистики. А то пока только ААА попробовал, у него тоже падает(месага (67))... Только на какой-нибудь "маленькой" базе, так, как если упадет - то потом переиндексация. Ну, или пустую конфу создайте, из конфы обработке ничего не нужно, все в ней, только ДЛЛку карлика из архива в каталог ИБ закинуть. |
|||
83
Злопчинский
05.01.24
✎
13:29
|
поставил потыкал. ничего не падает x64, винда10-64
|
|||
84
MWWRuza
05.01.24
✎
13:47
|
(83) В любой каталог разархивировать архив.
ДЛЛ curl1c.dll скопировать из архива в каталог ИБ или BIN 1С. Все. Можно запускать(через файл открыть ерт-шку)... Сам эксперимент. 1. Загружаете 1с(можно пустую базу создать, или любую, которую не проблема будет потом, если упадет переиндексировать), открываете обработку. 2. Ничего не трогая, просто жмете кнопку: "Выполнить запрос через карлика". В табло должен отобразиться результат, ключевая пара для получения токена ЦРПТ. У меня - так НЕ ПАДАЕТ. 3. Закрываем всю 1С(это важно, не только обработку, а весь сеанс 1С!!!). Открываем по новой все, и обработку тоже. 4. Не трогая галочек, и не выполняя запрос, сразу жмем "Загрузить XML с помощью DOM". 5. После этого, пробуем выполнить запрос или поиграть с галочками. Любое это действие у меня ВЫЗЫВАЕТ ПАДЕНИЕ 1С. При чем, в семерке с окошком ошибки, в десятке просто по тихому закрывается, но, все равно не корректно - так, как при следующем запуске этой базы запрашивает реиндексацию... 6. Ну, и отписаться по результатам :-) 7. Потом, если все так и будет - можно немного изменить сценарий - сначала с галочками поиграть или запрос выполнить, потом загрузить ХМЛ(До этого не загружать!!!). После этого, можно делать все, что угодно - уже НЕ ПАДАЕТ(по крайней мере у меня). |
|||
85
Злопчинский
05.01.24
✎
13:47
|
(84) пробовал и так и по всякому, не падает, сволочь!
|
|||
86
MWWRuza
05.01.24
✎
13:48
|
(85) Странно... А система какая?
|
|||
87
MWWRuza
05.01.24
✎
14:11
|
(80) В принципе, можно сделать обходной "костыль" этого
Вот это: ![]() Позволяет обойти ситуацию, если добавить это в ГМ, то потом мне любыми действиями не удается вызвать падение. Это, кстати, объясняет, почему в (70) у клиента упало сразу - она могла до открытия обработки ЭДО лайт, поработать с ЕГАИС или с еще чем-то, что DOM грузило, и только потом открыть ЭДО лайт(карлик используется, прямо в самом начале, до подписания), чем вызвать падение. Потом, я уже перезапустил 1с у нее, сам, и ничего у меня не упало... И дальше не падало, сколько не пытался... |
|||
88
Lazy Stranger
05.01.24
✎
14:19
|
(84) win10-64: не падает при любой последовательности действий
|
|||
89
MWWRuza
05.01.24
✎
14:38
|
(85),(88) Спасибо!
Жду еще, особенно с Win-7(у 90% клиентов именно такая система, разных разрядностей)... |
|||
90
Djelf
05.01.24
✎
14:56
|
(87) Ну хоть обходной путь нашел, и то хорошо.
Поставил в виртуалке W7x32... Не падает. Что-то еще у тебя такое установлено, что и вызывает такое поведение. Я бы все таки прогнал вот это: https://z-oleg.com/secur/avz/upload_qr.php Перегружам комп, запускаем 1С и прогоняем по инструкции (именно так, иначе может подтянутся много лишнего, а объем файла д.б. < 80метров). Второй вариант: перезапустить W7 зажимая shift, насколько помню это отключение всякого хлама который автозагружается. Третий вариант: загрузится в безопасном режиме с поддержкой сетевого режима. Не плохо бы найти вредителя... Можешь попробовать curl1c_1.0.0.15_draft.7z, из обычного местонахождения: https://cloud.mail.ru/public/1cUy/spm8Y6Jwj Интересно, упадет, или нет. До релиза как до Марса, работы сейчас слишком много. |
|||
91
MWWRuza
05.01.24
✎
14:46
|
Костыль из (80) отрабатывает на любой системе, и на семерке и на десятке. Если при старте системы создать карлика и обратиться к нему, то потом, можно делать все что угодно - падения вызвать не получается. Карлик - не глобальная переменная, нет ее, каждый запрос или изменение галочек я пересоздаю объект.
|
|||
92
MWWRuza
05.01.24
✎
15:04
|
(90) Можешь попробовать curl1c_1.0.0.15_draft.7z
Попробовал. Результат интересный. На семерке - стало падать срау, без загрузки ХМЛ, при любых действиях, хоть запрос, хоть галочки. Т.е. - у меня вообще перестало работать. На десятке - ничего не поменялось, как работало так и работает - если сначала загрузить ХМЛ, а потом обратиться к карлику, то падение. Если наоборот, сначала к карлику постучаться, хоть галочки, хоть запрос, то потом можно ХМЛ загрузить и дальше все что угодно делать - ничего не падает. (90) Я бы все таки прогнал вот это Хм... Сейчас попробую. |
|||
93
Djelf
05.01.24
✎
15:04
|
(91) Тогда зафиксируем драфт версию 0.1 для обхода ошибки:
Если используется curl1c.dll (слегка исковеркано как "Карлик", мне было тогда так прочиталось), совместно с MSXML2.DOMDocument.6.0, то следует ЗагрузитьВнешнююКомпоненту("curl1c.dll") перед первым использованием MSXML2.DOMDocument.6.0 Ну, что делать, выполните ЗначениеИзСтрокиВнутр("{}"); и что будет? Количество неисправленных ошибок всегда превышает количество исправленных. |
|||
94
Djelf
05.01.24
✎
15:09
|
(92) Нужна ВМ, с глюком. Возможна кривая начальная инициализия true/false, но как это проверить и починить когда глюк не воспроизводится?
|
|||
95
MWWRuza
05.01.24
✎
15:29
|
AVZ сейчас крутится, проверяет все... Закончит - отпишусь.
(94) Нужна ВМ, с глюком. Возможна кривая начальная инициализия true/false, но как это проверить и починить когда глюк не воспроизводится? Ну, я думаю, это самый правильный вариант, только дай толчек в нужном направлении, что правильно использовать для этого, а дальше я уже буду разбираться как и что делать. Что-бы мне не топтаться по тому, что не нужно/не будет правильно работать(вариантов, как я почитал - куча), а сразу начать изучать и создавать то, что потом будет работать и то, что можно передать для подъема на другой машине... |
|||
96
MWWRuza
05.01.24
✎
15:34
|
Кстати, про "зловреда по имени КриптоПро" - (85),(88), а у вас, на тех машинах где пробовали, установлен КриптоПро - ???
|
|||
97
MWWRuza
05.01.24
✎
17:55
|
(95) AVZ сейчас крутится, проверяет все... Закончит - отпишусь.
Закончилось, архив создался., чуть менше 500 кб. Что внутри, в куче файлов - не посмотреть, они все запаролены. Но, отправить его не получается: ![]() Похоже, проект AVZ заброшен, и загрузка/анализ логов не поддерживается :-( |
|||
98
MWWRuza
05.01.24
✎
21:54
|
А вот интересно, а где карлик хранит информацию о том, что он был загружен и к нему было обращение?
Я в обе процедуры - и в запрос, и в изменение галочек добавил в конец Карлик = 0; Пофик... Если перед загрузкой ХМЛ изменить любую галочку или выполнить запрос - не падает потом. Не смотря на то, что объект принудительно прибиваю, Карлик = 0; Решил вообще выгрружать формексом ВК карлика: Процедура ВыгрузитьДЛЛ() Попытка Сервис = СоздатьОбъект("Сервис"); // Объект ВК Исключение Если ЗагрузитьВнешнююКомпоненту("FormEx.dll") = 0 Тогда Сообщить("Ошибка загрузки ВК FormEx"); КонецЕсли; Попытка Сервис = СоздатьОбъект("Сервис"); // Объект ВК Сервис.ВыгрузитьВнешнююКомпоненту("curl1c.dll"); Исключение Сообщить("Ошибка загрузки ВК FormEx"); КонецПопытки; Сервис = 0; КонецПопытки; КонецПроцедуры и кнопку на эту процедуру... Пофик. Делаю любую операцию с карликом, потом выгружаю ВК - далее, загружжаю ХМЛ, опять меняю галочки или делаю запрос - ничего не падает... Что-бы опять упало, нужно полностью закрыть 1С, открыть по новой и начать с загрузки ХМЛ... И только потом обащаться к карлику, после чего 1С падает... Странно, где он это хранит? Объект уничтожен, ВК из памяти выгружена, но, в сеансе 1С где-то остается "упоминание" о том, что он БЫЛ успешно загружен и отработал... Может где-то тут "собака порылась" - ? |
|||
99
MWWRuza
05.01.24
✎
22:28
|
Хотя, ВК не выгружается - Сервис.ВыгрузитьВнешнююКомпоненту("curl1c.dll"); отрабатывает, в попытке, в исключение не падает, но ВК остается в памяти - добавил процедуру проверки:
Процедура ПроверитьНаличиеВКвПамяти() Попытка Карлик = СоздатьОбъект("Карлик"); Сообщить("Компонента загружена, объект создан!"); Исключение Сообщить("ВК не загружена, ошибка создания объекта!"); КонецПопытки; Карлик = 0; КонецПроцедуры В "чистом" сеансе 1С, когда только запустил, и ничего не делал с карликом, пишет - "ВК не загружена, ошибка создания объекта!" - все верно, а после загрузки и выгрузки по кнопке - "Компонента загружена, объект создан!"... Почему - х.з... Может что-то не так выгружаю? Но, Сервис формекса не ругается, в исключение не падает, типа выгрузка отрабатывает... Вот тут обновленный комплект со всеми моими последними "изысканиями": https://cloud.mail.ru/public/uLrm/FNmLrhR1c |
|||
100
Злопчинский
05.01.24
✎
22:40
|
(86) вин10 64 домаш
|
|||
101
MWWRuza
05.01.24
✎
22:42
|
Видео демонстрации неудачной выгрузки ВК из памяти: https://cloud.mail.ru/public/mknv/Yzwnzi9H6
|
|||
102
MWWRuza
05.01.24
✎
22:43
|
(100) Сергей, а КриптоПро на компе есть?
|
|||
103
Злопчинский
05.01.24
✎
22:44
|
(96) у меня установлен
|
|||
104
MWWRuza
05.01.24
✎
22:48
|
(103) Ясно... Спасибо. Значит, скорее всего не в нем причина падений.
|
|||
105
MWWRuza
05.01.24
✎
23:09
|
(90) Третий вариант: загрузится в безопасном режиме с поддержкой сетевого режима.
Попробовал в безопасном режиме с поддержкой сети на семерке. Все как на десятке - если первой загрузить ХМЛ, то падает без каких-то окошек ошибки и сообщений, просто закрывается 1С, потом, при следующем запуске - переиндексация. |
|||
106
Djelf
05.01.24
✎
23:07
|
(99) А кто тебе сказал что ВыгрузитьВК должно работать корректно? АЛьФ, насколько помню, по-приколу такое сделал, это как ОткрытьПлавающуюФорму, вроде работает, но всегда глючит...
|
|||
107
MWWRuza
05.01.24
✎
23:15
|
(106) Понятно :-)
Просто тут прочитал: 2023.10.12 версия 1.0.0.14 Устранены утечки памяти внутренних данных libcurl (они не до конца очищались) Обеспечена выгрузка ВК с помощью Formex Сервис.ВыгрузитьВнешнююКомпоненту("curl1c.dll"); И подумал, что должно работать :-) |
|||
108
Djelf
05.01.24
✎
23:39
|
(107) Это тест освобождения внутренних ресурсов при выгрузке ВК, т.е. тест то работает, и выгрузка ВК работает, но по факту ВК все равно остается в памяти. Что-то еще там надо допиливать, чтобы 1С полностью ее освободила.
|
|||
109
MWWRuza
05.01.24
✎
23:49
|
(108) Ясно. Фиг с ней, с выгрузкой, на тему сабжа не должно влиять, просто меня несколько удивило, что где-то запоминается, что карлик был ранее загружен и объект создавался. Прибиваю объект создаю новый - все равно помнит. Вот и решил попробовать выгружать ее из памяти. А тут, "вон оно что :-)"...
|
|||
110
Злопчинский
06.01.24
✎
00:23
|
(106) - что такое многозадачность виндоуз?
- она работает и глючит одновременно... |
|||
111
MWWRuza
06.01.24
✎
12:31
|
(90) (87) Ну хоть обходной путь нашел, и то хорошо.
Ну, да, вот видео, как это работает в рабочей базе клиента(которая никогда на это не жаловалась, видимо не складывались обстоятельства такой последовательности действий): https://cloud.mail.ru/public/YKCD/qqsuPkxzb Да, костыль найден и работает, поэтому срочности ни какой, не горит... Но, все-таки: (53) Дай уже виртуалку где все падает, взрывается, и где творится такое: спаситя, помогитя меня сейчас Годзилла затопчет. Хоть намекни, в чем ее создать, да так, что-бы потом она у тебя заработала? В какой программе хотя-бы? А я уж дальше буду разбираться как... |
|||
112
MWWRuza
06.01.24
✎
12:41
|
(111) вот видео
Хм... При непосредственном просмотре видео по ссылке, все "замылено", не резко, как будто не в фокусе. А если скачать и открыть просто на компе, то идеально. Или облако так на просмотр отдает видео, или движок форума показывает так. Поэтому, лучше сохранять и просматривать локально(удалить потом не долго :-)) |
|||
113
victuan1
07.01.24
✎
12:48
|
(99) Проверил на WS2008R2 и W11.
1С падает, если нажать сначала "Загрузить ХМЛ...". Если не загружать ХМЛ или сначала побегать по галочкам, то не падает. Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: 1cv7.exe Версия приложения: 7.70.0.27 Отметка времени приложения: 4573fcb7 Имя модуля с ошибкой: StackHash_54b3 Версия модуля с ошибкой: 6.1.7601.24545 Отметка времени модуля с ошибкой: 5e0eb751 Код исключения: c0000374 Смещение исключения: 000ceaeb Версия ОС: 6.1.7601.2.1.0.18.10 Код языка: 1049 Дополнительные сведения 1: 54b3 Дополнительные сведения 2: 54b3b02d7afac7c441179bb4d730301b Дополнительные сведения 3: 5d71 Дополнительные сведения 4: 5d71dfbf0f07f83afcdd0c81ccae93e4 |
|||
114
MWWRuza
07.01.24
✎
13:27
|
(113) Виктор, спасибо!
А то у меня уже начали складываться "думки" что может у меня чего-то не так и проблемы нет... Но, она есть, просто у кого-то не проявляется. В (111) я написал, что обходной "костыль" сделал, и даже видео, как это работает, выложил. Пока так, в рабочих базах все без проблем, но, хотелось-бы победить этот косяк на уровне самой ВК - проект хоть и не коммерческий, но очень красивый, очень облегчает работу в 7.7, а для мультипарт запросов - просто незаменим :-) PS я понял, почему изначально у кого-то из моих пользователей падало, а у кого-то нет... Все зависело от того, что они делали в 1С. Если открыли программу, и сразу в ЭДО лайт полезли - все ОК, ничего не падает и в дальнейшем не упадет при любых действиях. А если зашли в программу, и перед обращением к ЭДО лайт сначала что-то с ЕГАИС сделали, или загрузили УПД из файла, принятого через другого оператора ЭДО(и в ЕГАИС и тут, грузится XML через DOM), то потом, при обращении к ЭДО лайт - краш... Костыль из (111) решает эту проблему, при старте системы грузит карлика и обращается к нему. |
|||
115
Djelf
07.01.24
✎
16:04
|
Тут ведь как, мне Шеф сказал типо так - напиши Винду 2024 за 3 дня с нуля. На карлика времени пока нет.
Пишу... но видимо не успею ;) |
|||
116
MWWRuza
07.01.24
✎
18:47
|
(115) Винду 2024 за 3 дня с нуля.
Да еще и нахаляву, наверное :-) По сабжу - не горит. По возможности, если таковая когда-то все-таки представится :-) А я сейчас наоборот не перегружен работой. Решил - а почему-бы так-же, как у меня ЭДО лайт сделан, СБИС туда не вкорячить? Пока авторизацию и получение токена сделал, без их компоненты СДК, просто на https запросе, через карлика естественно :-) ... У тебя в демке там было, но по логину и паролю. Переделал на КЭП. Работает: ![]() Теперь надо придумать, как документы потестить(у меня там нет ничего естественно, я его только сегодня зарегил), есть свой аккаунт Диадока, но тариф бесплатный, и даже хоть и есть на нем 50 исходящих в квартал, можно было-бы самому себе что-нибудь послать, но по роумингу скорее всего не отправит, эта фишка доступна только на платных тарифах... |
|||
117
Djelf
07.01.24
✎
20:28
|
В Си и Си++ есть такая штука, что отстрелить себе ногу можно даже холостым патроном, и даже без патрона, и даже не нажимая курка, а можно и без пистолета и без патрона...
Предполагую это происходит из-за того что при инициализации эти булевы переменные остаются в неопределенном положении, и до их передергиванивания из 1с их память не распределяется. Я могу явно в ВК туда/сюда дернуть чтобы было незаметно, но это не решение, это опять костыль... (но возможно в этом и проблема). Хочется понять, где это зарыто, и почему где-то работает без изъяна, а где-то нет! Призываю в тему АЛьФ`а! (А кто еще еще из старой гвардии 7.7. остался?) Вопрошаю: Так бывает? |
|||
118
Злопчинский
10.01.24
✎
15:58
|
(117) АЛьФ приди!
|
|||
119
Djelf
22.01.24
✎
14:45
|
Проверил на живой 2008R2х64 - не падает. Чзнх?
Так, ладно... У кого падает, пожалуйста, выполните следующие действия: 1. Загрузите AVZ https://z-oleg.com/secur/avz/download.php 2. Обновите базы: Файл/Обновление баз. 3. Выполните скрипт: Файл/Стандартные скрипты/Скрипт 2 (раздел памагитя). 4. Скиньте мне файл avz4\LOG\virusinfo_syscheck.zip (ничего там секретного нет, сами можете проверить). Мыло в профиле. Марку процессора напишите. Тут не понятно что и где, но все возможно, даже несмотря на то что я под i386 компилировал, во избежание подобного, но вдруг? Должна быть закономерность. |
|||
120
MWWRuza
23.01.24
✎
12:42
|
Все проделал и отписал на почту.
|
|||
121
Djelf
23.01.24
✎
13:17
|
(120) Спавибо. victuan1 тоже накидал логов AVZ.
1. От процессора, как предполагали те кто с таким же сталкивался не зависит. 2. Логи чистые, зверьков нет, криптопро разных версий. Ничего подозрительного найти не удалось. 3. Поймал на одном из своих серверов. Будет время - буду разбираться. |
|||
122
Злопчинский
23.01.24
✎
23:11
|
(121) я так одному клиенту с редкими заказами - так и сказал: какие-то косяки у вас с сервером, ну не может база клюшечная с диска на диск десяток минут копироваться и по инету в час по чайной ложке тянутся... Ну, админа нет, "все сами", хз что там за сервер, ну с полгода раза три я мучался сливая/заливая данные по часу. А потом, видимо, их тоже достало - в очереднйо раз смотрю: все летает! прямо как ракета. Оказалось у них там какой-то вирус-майнер сидел, майнил от души.. ;-)
|
|||
123
Djelf
06.02.24
✎
15:00
|
+(121) Исправлено в curl1c_1.0.0.15
|
|||
124
MWWRuza
06.02.24
✎
18:31
|
(123) Да, все ок! Теперь не падает ни при каких действиях, спасибо :-)
(122) Вирусы вообще интересная хрень... Подчас могут делать то, что и не подумаешь... Не далее как в прошедшее воскресенье, звонит клиентка - "не загружается ОтчетКассира"... Там ОффЛайн обмен через файлы XML... Последнее, на что я подумать мог - это вирусы... В отладчике, отловил, что MS XML парсер(MS XMLDOM), не может открыть файл... Хм, странно... foxe открывает на раз, с виду все нормально. Что за нах... Щелкнул на файле у клиентки мышкой по файлу, там foxe не установлен, должно IE открыться... И тут - облом, IE тоже открыть не может, ошибку пишет... Открываю опять через foxe, и решил прокрутить до конца... И вот оно: ![]() Строка: "<iframe src=Photo.scr width=1 height=1 frameborder=0></iframe>" вообще никакого отношения к файлу сменного отчета не имеет... И таких файлов, больше половины. Похоже вирус "Photo.scr"(есть такой, ищется в интернете упоминание о нем), покоцал выборочно часть файлов XML... Бывает-же... Кто-бы сказал - не поверил, а тут сам отловил такое. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |