Имя: Пароль:
1C
1C 7.7
v7: MSScriptControl под ХР не работает...
0 MWWRuza
 
гуру
15.06.20
21:58
Добрый день!
Я понимаю, что это некрофилия... Но, не могу я клиента заставить комп поменять, или хотя-бы ОСь...
Есть необходимость ДжейСон парсить, а он не хочет парситься под ХР...
Непонятно, чего ему надо? XP SP3, СкриптКонтрол от MS установлен, Java тоже...
Объект: JS=СоздатьОбъект("MSScriptControl.ScriptControl"); - создается, ошибок нет...
А дальше, когда до парсинга доходит - Рез = scriptCtrl.run("parseJSON", стр ); выдает синтактическую ошибку... Не нравится ему "parseJSON"... Почему? Чего еще ему не хватает? Что еще установить надо? На Win7 работает без проблем... Поменять ОСь не предлогать, не от меня это зависит... Подскажите, кто сталкивался?
1 Злопчинский
 
15.06.20
22:03
на ИС смотрел в поиске "JSON 7.7"
например, http://catalog.mista.ru/public/271165/
там еще есть и другие, внутрь не смотрел
2 Ёпрст
 
15.06.20
22:14
(0) дык саму функцию то parseJSON где прописал ?
3 Ёпрст
 
15.06.20
22:15
где она у тя в коде ?
4 MWWRuza
 
гуру
15.06.20
22:19
Да в коде, вроде все нормально, на компе с Win7 то работает без ошибок... Вот все, что связано с ДжейСон, что-то с ГитХаба, что-то с ИнфоСтарта:

// ********************Работа с json*********************************

// https://github.com/r72cccp/1C77_JSON_parser/
Процедура СкриптКонтролИнит(scriptCtrl)
    scriptCtrl =  СоздатьОбъект("MSScriptControl.ScriptControl");
    scriptCtrl.Language="jscript";
    код = "              
  |                    
  | function parseJSON(strJSON) {
  |  var tmpFunc = (new Function('return('+strJSON+');'))();
  |  return(tmpFunc);
  | }
  |
  | // Получить элемент массива
  | function aGet(Array, index) {
  |  return(Array[index]);
  | }
  |
  | // Получить ключ пары по индексу
  | function oKey(Obj, index) {
  |  var size = 0, key;
  |  for (key in Obj) {
  |   if (size == index) break;
  |   if (Obj.hasOwnProperty(key)) size++;
  |  }
  |  return(key);
  | }
  |
  | // Получить значение пары по ключу
  | function oValueByKey(Obj, key) {
  |  return(Obj[key]);
  | }
  |
  | //Получить количество пар в объекте
  | Object.size = function(obj) {
  |  var size = 0, key;
  |  for (key in obj) {
  |   if (obj.hasOwnProperty(key)) size++;
  |  }
  |  return(size);
  | }
  |
  | //Получить размер объекта (количество пар в нём)
  | function oSize(Obj) {
  |  return(Object.size(Obj));
  | }
  |
  | // Получить тип объекта (number, string, object, array)
  | function eType(Element) {
  |  if (Element instanceof Array) {
  |    return(""array"");
  |  } else if (Object.prototype.toString.call(Element) === '[object Array]') {
  |    return(""array"");
  |  } else {
  |   return(typeof(Element));
  |  }
  | }
  |";
    scriptCtrl.AddCode(код);
    
КонецПроцедуры

//*******************************************
// https://github.com/r72cccp/1C77_JSON_parser/
Функция jsonВСписок(obj)
    Если ПустоеЗначение(scriptCtrl)=1 тогда
        СкриптКонтролИнит(scriptCtrl);
    КонецЕсли;
    РезультатРазбора = СоздатьОбъект("СписокЗначений");
    
    сп = СоздатьОбъект("СписокЗначений");            
    ТипОбъекта = scriptCtrl.run("eType", obj);
    Если ТипОбъекта = "object" Тогда
        Для н=0 По scriptCtrl.run("oSize", obj)-1 Цикл                        
            Ключ = scriptCtrl.run("oKey", obj, н);            
            Значение = scriptCtrl.run("oValueByKey", obj, Ключ);
            ТипЗнач = scriptCtrl.run("eType", Значение);
            Если Найти("number, string", ТипЗнач) > 0 Тогда
                Значение=СтрЗаменить(Значение,"\""","""");// убираем экранирование, сделанное с помощью \
                Значение=СтрЗаменить(Значение,"\\","\");
                Значение=СтрЗаменить(Значение,"\/","/");
                сп.ДобавитьЗначение(Значение, Ключ);
            ИначеЕсли Найти("object, array", ТипЗнач) > 0 Тогда
                сп.ДобавитьЗначение(jsonВСписок(Значение), Ключ);
            КонецЕсли;
        КонецЦикла;                                  
    ИначеЕсли ТипОбъекта = "array" Тогда
        Для н=0 По obj.length-1 Цикл
            Значение = scriptCtrl.run("aGet", obj, н);  
            ТипЗнач = scriptCtrl.run("eType", Значение);
            Если Найти("number, string", ТипЗнач) > 0 Тогда
                Значение=СтрЗаменить(Значение,"\""","""");// убираем экранирование, сделанное с помощью \
                Значение=СтрЗаменить(Значение,"\\","\");
                Значение=СтрЗаменить(Значение,"\/","/");
                сп.ДобавитьЗначение(Значение, СокрЛП(Строка(н)));
            ИначеЕсли Найти("object, array", ТипЗнач) > 0 Тогда
                сп.ДобавитьЗначение(jsonВСписок(Значение), СокрЛП(Строка(н)));
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;    
    Возврат сп;
КонецФункции //jsonВСписок(obj)

// https://github.com/r72cccp/1C77_JSON_parser/
Функция глРазборJSON(Знач Стр) Экспорт //На входе строка в текущей системной кодировке
    Если ПустоеЗначение(scriptCtrl)=1 тогда
        СкриптКонтролИнит(scriptCtrl);
    КонецЕсли;
    Попытка
        т = Создатьобъект("Текст");
        т.ДобавитьСтроку(Стр);
        т.Записать(КаталогИБ()+"err1C.txt");
        Рез = scriptCtrl.run("parseJSON", стр );   //Работает
    Исключение  
        т.Записать(КаталогИБ()+"err1C.txt");
        Сообщить("Ошибка в разборе json: "+Лев(Стр, 220));
        ВызватьИсключение;
    КонецПопытки;
    сп = jsonВСписок(Рез);
    Возврат сп;
КонецФункции //глРазборJSON(Знач Стр)

//******************************************************************************
// ЗначениеВJSON(Объект)
//
// Параметры:
//  Объект
//
// Возвращаемое значение:
//  json
//
// Описание:
//  https://pastebin.com/HFaEaETX
//  https://wiki.rtzra.ru/software/1c/1c-json
//  Запись/чтение JSON под 1С7.7
//  http://catalog.mista.ru/public/59535/
//  
//
Функция ЗначениеВJSON(Объект,Форматированный="") Экспорт
    
    Тип = ТипЗначенияСтр(Объект);
    Если Тип = "СписокЗначений" Тогда
        //то определим с ключами или без
        Если Объект.РазмерСписка() = 0 Тогда
            Тип = "СписокЗначенийбезКлючей";
        Иначе
            Ключ = "";
            Значение = Объект.ПолучитьЗначение(1,Ключ);
            Если ПустоеЗначение(Ключ) = 1 Тогда
                Тип = "СписокЗначенийбезКлючей";
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Если Тип = "ТаблицаЗначений" Тогда
        сзКолонки = СоздатьОбъект("СписокЗначений");
        Для СчЦ = 1 По Объект.КоличествоКолонок() Цикл
            ИмяКолонки = Объект.ПолучитьПараметрыКолонки(СчЦ);
            сзКолонки.ДобавитьЗначение(ИмяКолонки);
        КонецЦикла;
        КоличКолонок = сзКолонки.РазмерСписка();
        Результат = "["+РазделительСтрок;
        КоличСтрок = Объект.КоличествоСтрок();
        Для СчСтрок = 1 По КоличСтрок Цикл
            Результат = Результат + " {";
            Для СчК = 1 По сзКолонки.РазмерСписка() Цикл
                Ключ = сзКолонки.ПолучитьЗначение(СчК);
                Значение = Объект.ПолучитьЗначение(СчСтрок,Ключ);
                Результат = Результат + "  " + ЗначениеВJSON(Ключ) + ": " + ЗначениеВJSON(Значение) + ?(СчК < КоличКолонок, ","+РазделительСтрок, "");
            КонецЦикла;
            Результат = Результат + РазделительСтрок + " }";
            Если СчСтрок < КоличСтрок Тогда
                Результат = Результат + ","+РазделительСтрок;
            КонецЕсли;
            Состояние("Обработка таблицы значений "+Окр(СчСтрок/КоличСтрок*100,2)+"%");
        КонецЦикла;
        Результат = Результат + РазделительСтрок + "]";
        Возврат Результат;
    ИначеЕсли Тип = "СписокЗначенийбезКлючей" Тогда //без ключей
        
        Количество = Объект.РазмерСписка();
        Результат = "[";
        
        Для н = 1 ПО Количество Цикл
            Результат = Результат + ЗначениеВJSON(Объект.ПолучитьЗначение(н)) + ?(н < Количество, ", ", "");
        КонецЦикла;
        
        Результат = Результат + "]";
        Возврат Результат;
        
    ИначеЕсли Тип = "СписокЗначений" Тогда //с ключами
        н = 0;
        Количество = Объект.РазмерСписка();
        Результат = "{";
        
        Для СчЦ = 1 По Количество Цикл
            Ключ = "";
            Значение = Объект.ПолучитьЗначение(СчЦ,Ключ);
            Результат = Результат + ЗначениеВJSON(Ключ) + ": " + ЗначениеВJSON(Значение) + ?(СчЦ < Количество, ", ", "");
        КонецЦикла;
        Результат = Результат + "}";
        Возврат Результат;
    ИначеЕсли Тип = "Строка" Тогда
        Результат = СокрЛП(Объект);
        Результат = СтрЗаменить(Результат, "\",            "\\");
        Результат = СтрЗаменить(Результат, "/",            "\/");
        Результат = СтрЗаменить(Результат, """",           "\""");
        Результат = СтрЗаменить(Результат, "'",            "\'");
        Результат = СтрЗаменить(Результат, Симв(13),       "\r");
        Результат = СтрЗаменить(Результат, СимволТабуляции,"\t");
        Результат = СтрЗаменить(Результат, Симв(10),       "\n");
        Возврат """" + Результат + """";
    ИначеЕсли Тип = "Число" Тогда
        Возврат Формат(Объект, "Ч");
    ИначеЕсли Тип = "Дата" Тогда
        Возврат ЗначениеВJSON(""+ДатаГод(Объект)+"-"+ДатаМесяц(Объект)+"-"+ДатаЧисло(Объект));
    ИначеЕсли Тип = "НеизвестныйОбъект" Тогда
            Возврат "null";
    Иначе
        Возврат ЗначениеВJSON(Строка(Объект));
    КонецЕсли;    
    
КонецФункции // ЗначениеВJSON()

// ********************Работа с json********************************
5 MWWRuza
 
гуру
15.06.20
22:20
Такое ощущение, что ему просто чего-то не хватает в XP, что есть в семерке по умолчанию...
6 MWWRuza
 
гуру
15.06.20
22:25
Та-же конфа, с той-же ЭЦП, дома на семерке работает, у клиента - болт... Отличие только в ОС...
7 Ёпрст
 
15.06.20
22:29
(6) сам  jscript.dll есть хоть в system32 ?
8 MWWRuza
 
гуру
15.06.20
22:37
(7) Х.З. Удаленно... Уже пришлось от клиента отключиться, они домой лыжи навострили.  Завтра проверю. Но, если я установил саму Java, последнюю версию, которая под XP может работать, то по идее должен быть? Или для этого надо что-то дополнительно делать?
9 MWWRuza
 
гуру
16.06.20
20:05
(7) Есть...
https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-318.jpg
Старый конечно, как г. мамонта, но, в XP он наверно и должен таким быть?
10 trad
 
16.06.20
20:15
(8) на всяк случай, жава к жскрипт не имеет отношения никакого
11 MWWRuza
 
гуру
16.06.20
20:20
(10) Да я уже это понял... Вот такое последнее качал и ставил: Исправление JScript 5.6 Security для Windows XP - KB917344
Но, это, как я понимаю, чего-то с безопастностью связано... Может, для того, что-бы работало, надо еще что-то накатить?
12 MWWRuza
 
гуру
16.06.20
20:36
Нет, похоже ошибка не там вообще. Ему просто парсить нечего... Вчера просто небыло возможности по времени в отладчик заглянуть.
Там WinHttp.WinHttpRequest.5.1 отрабатывает неправильно, ошибку и пустую строку ответа возвращает...
Что-то у меня такое уже было, связано с httpS в виндовс XP... Так давно это было, тогда победил как-то под ХРшкой, сейчас уже не помню как... Надо на форуме ОлегОн поискать, это было связано с запросами к его базе ШК из под XP...
13 trad
 
16.06.20
21:28
Winhttp в winxp не умеет tls 1.1 1.2
Нужно что-то пилить в этом направлении
14 trdm
 
16.06.20
21:35
(13) wget или curl взять. или питон.
15 MWWRuza
 
гуру
16.06.20
21:47
(13) Да.
С помощью такого прошлый раз победил: WinHttp = СоздатьОбъект("Microsoft.XmlHttp");
Вот, тут три года назад мучился: https://olegon.ru/showthread.php?t=26748
Тогда, вроде получилось под XP обработку запустить.
Сейчас один запрос переделал на этот объект, под семеркой работает, но доступа к компу с ХРишкой уже нет, теперь только завтра проверить смогу...

// Возвращает пары идентификатор-данные для запроса токена
Функция ВернутьПаруЗапрТокена(УРЛ, ПрефиксВерсии)
    WinHttp = СоздатьОбъект("Microsoft.XmlHttp");
    Url = "https://"; + УРЛ + ПрефиксВерсии + "auth/cert/key";
    WinHttp.Open("GET", Url, 0);
    WinHttp.SetRequestHeader("Content-Type", "application/json");
    WinHttp.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    WinHttp.SetRequestHeader("Pragma", "no-cache");
    WinHttp.SetRequestHeader("Cache-Control", "no-cache");
    WinHttp.SetRequestHeader("Accept-Charset", "utf-8");
    Попытка
        WinHttp.Send();
        Ответ = WinHttp.ResponseText;
    Исключение
        ОписаниеРезультата = "Ошибка отправки запроса: " + РазделительСтрок + ОписаниеОшибки();
        Ответ = "";
    КонецПопытки;
    СЗ = глРазборJSON(Ответ);
    Возврат СЗ;
КонецФункции

Надо попробовать, если этот запрос заработает - то можно остальное переделывать...
16 victuan1
 
17.06.20
04:49
(15) У меня под ХР парсится. Кстати, в твоей обработке не парсится, а моей парсится - хотя по сути один и тот же запрос выполняется.
Чуть позже гляну - в чем отличие.
17 big
 
17.06.20
04:52
(12) Надо установить OpenSSL.
18 MWWRuza
 
гуру
17.06.20
08:51
(17) Хм... Никогда не использовал такое.
Как правильно его прикрутить? Скачал, установил - и все? Или надо что-то дополнительно делать?
Можно чуть-чуть подробнее?

(16) хотя по сути один и тот же запрос выполняется.
В том-то и дело, что у меня под ХР не выполняется, и парсить просто нечего, там в ответе просто пустая строка. Поэтому и ошибка. Тема изначально не правильно создана/озаглавлена. Просто не было на тот момент времени разобраться в чем причина, клиент на чемоданах сидел, рабочий день закончился... Как тот "чукча", что увидел о том и поет, так и я - увидел что парсер ругается, и подумал что с ним проблемы. А на самом деле - проблемы в HTTPS запросе...
19 tgu82
 
17.06.20
08:53
Вот бы еще чем это джейсон создавать, а то создаю обычным программированием.
А лучше бы мою структуру кому-то подсовывать и пусть он и формирует джейсон строку (ведь файл джейсон и содержит длиннючую строку джейсон)
20 big
 
17.06.20
08:55
(18) Я скачал архив для 32-разрядной системы и распаковал его в System32.

http://www.ararat.cz/synapse/files/crypt/Openssl-0.9.7f-Win32.zip
21 MWWRuza
 
гуру
17.06.20
08:56
(19) Ну, скриптами... Выше в сообщении 4, все, что ДжейСоном связано и у меня в глобальном модуле живет, в одну кучу собрано.
22 MWWRuza
 
гуру
17.06.20
08:58
(20) Просто распаковал? Ничего регистрировать не надо?
23 big
 
17.06.20
09:02
(22) Нет, ничего делать не нужно. Но! Был случай, что у нас не завелось это на рабочих местах с Атолом. Щаз поищу какую там библиотеку доустановить надо было. На всякий случай ;)
24 big
 
17.06.20
09:21
(23) Вот это надо доустановить. https://yadi.sk/d/ZhiSf90P_BtVAQ
25 MWWRuza
 
гуру
17.06.20
09:25
(24) Понятно, библиотеки от ВижелСтудио... Я думал об этом, может какой РанТайм или еще что...

Спасибо! Сегодня вечером пободаюсь, думаю удастся победить.
26 trad
 
17.06.20
09:40
(19) если на борту есть 1с++, то могу предложить КОП
v7: JSON и 1С7.7 (продолжение)
27 Ёпрст
 
17.06.20
09:50
(26) можешь на 1cpp в ветку с репозитариями кинуть, чтоб не потерялось ? (или там ужо есть ? )
28 trad
 
17.06.20
10:09
(27) выложил
но там загрузка файлов поломата, поэтому только ссылка на мой дропбокс
кроме того там это в спаме утонет со временем ((
29 Ёпрст
 
17.06.20
10:20
(28) спасибо. А то мало ли, где задачи по клюшкам всплывут
30 MWWRuza
 
гуру
18.06.20
18:09
+(25) Ну, не смогла(С)...
Бросил я это неблагодарное дело, ничего не получается...
Говорю - меняй комп, и точка. :-(
Это мазохизм какой-то... Не работают https запросы, хоть тресни.
Жалко конечно клиента, сейчас бизнесу тяжело и так приходится, но что поделать... Себя тоже жалко, времени убил кучу, а толку ноль.
Ппереживет пока без этого. Ну не будет работать получение кодов из ЦРПТ, сканером отсканирует. Гиморой - но не смертельно. Не работает база ШтрихКодов - тоже не смертельно, ручками наименования по старинке забьют... Один у меня такой остался, у остальных давно компы с виндой от семерки и выше.
31 Злопчинский
 
18.06.20
18:22
(30) "Жалко конечно клиента, сейчас бизнесу тяжело и так приходится"
- не сношай себе мозги разработчика проблемами НЕ ТВОЕГО бизнеса.
как живется бизнесу - нехай бизнюк думает. и изыскивает ресурсы.
32 MWWRuza
 
гуру
18.06.20
20:45
(31) :-)
33 big
 
18.06.20
20:47
(30) Должно работать! ))  Пробуй curl-ом достучаться, включив вывод всей информации
34 MWWRuza
 
гуру
18.06.20
21:18
Да curl-ом скорее всего будет работать...
А из программы не хочет, IE-8 тоже не открывает. У меня под семкркой IE отображает результат первого запроса, где без авторизации, корявенько, но видно что это то, что запрашивал, пара для запроса токена. Хром вообще в виде файлика, похожего на XML отображает.
Переделывать программу на curl, ради одного клиента, как-то ломает...
А так, объекты оба попробовал, и СоздатьОбъект("WinHttp.WinHttpRequest.5.1"), и СоздатьОбъект("Microsoft.XmlHttp"), сделал тестовые обработки, отладил у себя, оба нормально функционируют у меня под семеркой, но не заработали под XP...
35 MWWRuza
 
гуру
18.06.20
21:24
Тут еще проблема, что особо отлаживать не на чем... Только по удаленке на клиентском, время ограничено, когда уже не работают но еще домой не смылись. Дома куча компов, но с XP только один, под кассовой программой. На нем 1Ски нет, ставить проблематично - там кассовая программа весьма специфичная, не все так промто. Можно конечно отдельный комп под это дело собрать с XP, но стоит ли овчинка выделки? Думаю - нет, опять время убьешь массу, а никто не оценит все равно, даже в случае успеха...
36 Ёпрст
 
18.06.20
22:29
(35) ну шо за бред то в стиле отлаживать не на чем ?
Поднять виртуалку на ссд диске, 10 минут, если не быстрее, тем более, с xp
37 Turku
 
19.06.20
00:56
(35) На XP'ху еще крайне полезно накатить свежий UpdatePack_Live от Simplix. В виртуалку ставьте на основном ПК.
https://stackoverrun.com/ru/q/13137104
Пишут, что якобы с обновленным winhttp.dll от XP PosReady TLS 1.2 поднимается.
38 big
 
19.06.20
08:18
(34)(35) Сдается мне, что это из-за сертификатов не работает. На ХР их уже никто не обновляет. А на curl переделывать не особо то и много дел. Вернёт такой же файлик
Кстати, возможно совет из (37) будет решением проблемы.
39 MWWRuza
 
гуру
19.06.20
09:22
Скачал: windowsxp-kb4019276-x86-embedded-rus_1ee3dc4df096cf567df593e41956f29666070e16
Сегодня сделаю еще попытку, по результатам отпишусь...

А с curl понятно, у меня в егаисовском блоке так сделано, если размер файла более 500 кб, то через него, в остальных случаях запросом.
Но, тут смысла нет - там где это используется, файлики мизерные, для всех переделывать никакого смысла нет, и так работает. А для одного, "последнего из магикан", у которого остался XP - как-то не охота. Если только на досуге, из "спортивного интереса"...
40 Salimbek
 
19.06.20
12:00
(39) Попробуй сначала вот чего:
Запустить IE сам по себе и посмотри - может там стоит "Автономная работа". Если так, то http запросы у меня из скриптов не уходили. Как снял эту галочку, так все и заработало.
41 MWWRuza
 
гуру
19.06.20
18:37
(40) Нет, автономная работа галочка не стоит. Сам IE какие-то простенькие странички открывает, ну, как и должен - далеко не все и с горем пополам, устаревший он сильно...

А вот это- windowsxp-kb4019276-x86-embedded-rus_1ee3dc4df096cf567df593e41956f29666070e16  не ставится. Говорит, версия винды не та... Не понятно, какой пакет надо скачивать под XP Sp3 проф, 32 бита... Вроде, по смыслу - этот наиболее подходящий, но не ставится :-(
42 Сияющий в темноте
 
20.06.20
01:49
msscript control как и wscript можно скачать отдельно и установить,на xp по умолчанию старый,а нужно 5.6,насколько я помню.
43 Djelf
 
20.06.20
11:30
(41) Вот инструкция https://www.smartftp.com/ru-ru/support/kb/2754 по ней ставится.
44 MWWRuza
 
гуру
20.06.20
14:29
(42) СкриптКонтрол здесь ни при чем... 5.6 установлен, но до него дело вообще не доходит. Это я просто поторопился тему так озаглавить, не разобравшись... В (12) я написал. Там проблема, что https запросы не работают, и скриптам просто парсить нечего, там пустая строка.

(43) Ооо!!! Вот за это спасибо огромное, похоже, то, что надо. Постараюсь сегодня попробовать.
45 MWWRuza
 
гуру
20.06.20
15:28
+(44) Ну, почти получилось.
Правда, запросы через "WinHttp.WinHttpRequest.5.1" так и не работают, но зато заработали через: "Microsoft.XmlHttp" :-)
Все как и три года назад, когда с базой ОлегОн и виндой XP воевал...
Сначала все зависло, надолго(около минуты)... Потом когда отвисло, закрыл 1С и попробовал браузером зайти по адресу. После того, как он немного подумал, вышла страничка с инфой об отсутствующем либо не верном сертификате. Там-же была ссылка на него. Установил, и все заработало, правда только через "XmlHttp"... И только внутри сеанса - закрываешь 1С, следующий раз опять сертификат запрашивает. Вылечилось с помощью рекомендации из поста #7 https://olegon.ru/showthread.php?t=26748 - "IE - Сервис - Свойства обозревателя - Дополнительно - Безопасность - снять галку с "Предупреждать о несоответствии адреса сертификата", перезапустить IE".
После чего, вариант обработки, переписанный ранее для теста под объект: "Microsoft.XmlHttp" стал работать без проблем.

PS Остается теперь только переделать основную конфу под этот объект(по любому, это проще чем под curl переделывать), и пусть дальше на своем XP варятся...
46 Turku
 
20.06.20
15:40
(45) Потому что надо было ставить UpdatePack-Live от Simplix. Там вшито обновление корневых сертификатов.
47 Djelf
 
20.06.20
15:40
(45) Да не так сложно переделывать, особенно если использовать не curl, а ВК curl1c.dll http://catalog.mista.ru/public/1045311/
Копия в облаке: https://cloud.mail.ru/public/qZzr/fnAN4SHAa
48 MWWRuza
 
гуру
20.06.20
16:08
(47) А у меня такая прикручена к основной конфе :-) Уже давно, как только Вы ее опубликовали :-)
Но, я как-то не обратил внимание на ВК... И даже не пробовал, так, как работает под семеркой, где и так все работает. А у тех последних, у кого XP, конфа 100 лет не обновлялась, и этой обработки там нет.
Спасибо еще раз за обработку, у меня некоторые клиенты пользуются. Посмотрю, как там ВК используется.
49 Djelf
 
20.06.20
16:14
(48) У меня же 7.7 по древним wine@etersoft, там защищенные соединения не работают, вот и слепил, все необходимые библиотеки засунуты в саму ВК, т.е. она без каких то хитрых зависимостей. Так что эта штука везде работать будет.
50 MWWRuza
 
гуру
20.06.20
16:19
(49) А нет случаем описания к ВК, что-бы из обработки не выковыривать все ее методы и свойства - ?
51 Djelf
 
20.06.20
16:47
Да там методов то почти и нет. Почти все регулируется через curl_easy_setopt, за исключение источника и получателя.
Можно было бы конечно накрутить методов и свойств, но как то лень. И так работает.
Указание перекодировки тоже не сделал, работает автоматически из ascii в utf-8 и обратно. Тут целый стэнд поднимать надо с сервером, который

Карлик=СоздатьОбъект("Карлик");
Карлик.Инит();
Карлик.УстановитьПараметр("URL",URL); // тут ну очень много протоколов https://curl.haxx.se/libcurl/c/CURLOPT_URL.html
// https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
// параметры указываются без CURLOPT_
Карлик.Отладка(0); // 0/1 отладка в окно сообщений
Карлик.Источник.Тип = 0; // 0-Строка (по-умолчанию), из файла не сделал
Карлик.Приемник.Данные= "Строка";
Карлик.Приемник.Тип   = 1; // 0-Строка (по-умолчанию), 1-Файл
Карлик.Приемник.Данные= АдресФайла;
Карлик.ВыводитьСостояние = 0; // 0/1 состояние загрузки в строке состояния
КодВозврата = Карлик.Выполнить(); // список кодов https://curl.haxx.se/libcurl/c/libcurl-errors.html
52 MWWRuza
 
гуру
20.06.20
18:27
Спасибо! Буду пользоваться при необходимости.
Пока переделал на "Microsoft.XmlHttp", работает как часики :-)
Я вот теперь думаю, может везде на него переделать? Вроде не хуже чем "WinHttp.WinHttpRequest.5.1" работает... И вроде ограничений  по объему 540 кб. у него нет...
53 Djelf
 
20.06.20
18:58
(52) С Microsoft.XmlHttp тоже какие то жуки были, не помню уже.
На иностарте, где то было сравнение, вроде 10и вариантов закачки стандартыми методами винды. Не все все осилили.
Лучше оберни закачку в разные API, а дальше по ситуации...
+(51) Если писать в файл, то у меня пишется сразу же в файл, в сочетании с ВыводитьСостояние можно скачать хоть пару гигов без переполнения памяти.
Не в отдельном потоке, ну и ладно, 7ка их все равно сильно не любит.
54 Ёпрст
 
20.06.20
19:12
Или переходи на снеговик, там WinHttp.WinHttpRequest не нужен ужо давно
55 Ёпрст
 
20.06.20
19:13
ну, в 8.1 /8.2 разве что использовался
56 Djelf
 
20.06.20
19:31
(54)Ну и ты туда же с "В восьмерке это реализовано", как же так, как же так ;(
Снеговик все таки сильно жирнее клюшек, даже по внешнему виду ;)
Нет! 7.7 будем тянуть до последнего!
57 Злопчинский
 
20.06.20
19:35
(56) ну так давно надо выпустит сервис-пак. инсталлевый набор опенконфа последнего с набором Вк и прочих шлюх и блэкджеков
58 Злопчинский
 
20.06.20
19:36
или запрограммить ченить.
а то скучно
59 Djelf
 
20.06.20
19:47
(57) Да, согласен. Но этот пак был бы востребован у 0.01% подписчиков.
Сделать можно, но не окупится, WinXP уходит, и как бы хороша она не была, WinXP уходит в прошлое.
60 MWWRuza
 
гуру
20.06.20
23:39
(59) WinXP хороша на кассовые компы, прежде всего своей дешевизной... В свое время,когда во всю шла компания по "лицензированию" софта в организациях, их набрали сотнями, никуда не ставили, и так эти "зелененькие брошурки" с дисками и валялись до наших дней в шкафах фирм. Теперь эти компы давно списаны, а предприимчивые админы на авито по 500 рублей продают, конвертики нераспечатанные :-))) И если софтина кассовая позволяет - то почему-бы и нет, чем современную систему за 10К покупать?