Имя: Пароль:
1C
1C 7.7
v7: Падает "карлик" при выводе результата...
0 MWWRuza
 
гуру
20.12.23
13:15
Добрый день!
В продолжение закрытой: v7: Карлик (curl1c) и XML_DOM, вместе крашутся...

В "боевой" у одного клиента периодически падает:



Пока не понял отчего, но, тенденция явная - говорит, третья накладная подряд "схлопывает" 1С, при этом, подписание документа отрабатывает - после перезапуска 1С статус у этого "злополучного" документа становится "подписан", так, что, он отрабатывает, а падает именно на выводе результата запроса...
Никакой XML_DOM в этой обработке не грузится, это точно, там давно вся работа с ХМЛ переделана на 1срр...

Вообще, зная оператора этого клиента, могу допустить, что параллельно с обработкой ЭДО лайт, может быть запущено что-то из ЕГАИС, а там все на XML_DOM построено... Позвоню, попытаю...
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...
Бывает-же... Кто-бы сказал - не поверил, а тут сам отловил такое.