ВК супер. Пробовал ловить события от Skype4COM. Всё ловится замечательно. Только иногда 1С-ина падает. Пока непонятно почему. Использую платформу 8.1.
Вот набор функций для замены семерочного ЗначениеИзСтрокиВнутр
Функция ЗначениеИзСтрокиВнутр77(Стр) Список = РазобратьСтроку(Стр); Возврат ПреобразоватьДанныеСписка(Список); КонецФункции
Функция ПреобразоватьДанныеСписка(Список) Если Список[0].Значение = "VL" Тогда Результат = Новый СписокЗначений; Для Каждого ЭлементСписка Из Список[1].Значение Цикл Данные = ПреобразоватьДанныеСписка(ЭлементСписка.Значение[0].Значение); Результат.Добавить(Данные, ЭлементСписка.Значение[1].Значение); КонецЦикла; ИначеЕсли Список[0].Значение = "S" Тогда Результат = Список[6].Значение; ИначеЕсли Список[0].Значение = "N" Тогда Результат = Число(Список[6].Значение); КонецЕсли; Возврат Результат; КонецФункции
Функция РазобратьСтроку(Знач Стр) Стр = Сред(Стр, 2, СтрДлина(Стр) - 2); Список = Новый СписокЗначений; Пока СтрДлина(Стр) > 0 Цикл Поз = НайтиРазделитель(Стр); Символ = Сред(Стр, Поз, 1); Если Символ = "," Тогда Список.Добавить(Сред(Стр, 2, Поз - 3)); Стр = Сред(Стр, Поз + 1); ИначеЕсли Символ = "{" Тогда // Ищем равное количество открывающих и закрывающих скобок Открывающих = 1; Закрывающих = 0; Поз2 = Поз + 1; Пока Открывающих <> Закрывающих Цикл Символ = Сред(Стр, Поз2, 1); Если Символ = "{" Тогда Открывающих = Открывающих + 1; ИначеЕсли Символ = "}" Тогда Закрывающих = Закрывающих + 1; КонецЕсли; Поз2 = Поз2 + 1; КонецЦикла; Список.Добавить(РазобратьСтроку(Сред(Стр, Поз, Поз2 - Поз))); Стр = Сред(Стр, Поз2); Если Лев(Стр, 1) = "," Тогда Стр = Сред(Стр, 2); КонецЕсли; Иначе Список.Добавить(Сред(Стр, 2, СтрДлина(Стр) - 2)); Стр = ""; КонецЕсли; КонецЦикла; Возврат Список; КонецФункции
Функция НайтиРазделитель(Стр) Для Поз = 1 По СтрДлина(Стр) Цикл Символ = Сред(Стр, Поз, 1); Если Символ = "," ИЛИ Символ = "{" Тогда Возврат Поз; КонецЕсли; КонецЦикла; Возврат 0; КонецФункции
Еще одна проблема - при попытке использования XMLHTTP восьмерка слетает совсем. Семерка выдает сообщение
Код для 8-ки
Соединение = Новый COMОбъект("Microsoft.XMLHTTP"); ПодключитьВнешнююКомпоненту("Addin.EventProxy"); ОбработчикСобытий = Новый ("Addin.EventProxy"); ОбработчикСобытий.ГлубинаБуфераСобытий = 200; ОбработчикСобытий.Источник(Соединение,"Microsoft.XMLHTTP","XMLHTTP");
Сори. Не знаю как выделить код.
|