Проблема в том, что считать наличием интернета. Вот если шлюз провайдера пингуется, это инет? А если машинка за прокси, пинг не работает, но странички открываются, это инет?
// инициализируем настройки прокси, если они определены
НастройкиПрокси = ПолучитьНастройкиПрокси();
Если ЗначениеЗаполнено(НастройкиПрокси.ИмяПользователя) Тогда
Прокси = Новый ИнтернетПрокси;
Прокси.Пользователь = НастройкиПрокси.ИмяПользователя;
Прокси.Пароль = НастройкиПрокси.Пароль;
Иначе
Прокси = Неопределено;
КонецЕсли;
// устанавливаем соединение с сервером
Попытка
Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки, , , , Прокси);
Исключение
Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
Возврат Неопределено;
КонецПопытки;
Возникала аналогичная задача. Код в (4) мне не помог, т.к. при отсутствии доступа к ресурсу он ничего не сообщал (HTTPСоединение исключение не вызывало). Помог следующий код взятый здесь https://its.1c.ru/db/metod8dev#content:5574:hdoc:
АдресСервераОнлайнПроверки = "http://yandex.st/jquery/1.6.4/jquery.min.js";
ЕстьИнтернетСоединение = ложь;
СтруктураURI = СтруктураURI(АдресСервераОнлайнПроверки);
HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт);
HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
Попытка
Результат = HTTPСоединение.Получить(HTTPЗапрос);
ЕстьИнтернетСоединение = Истина;
Исключение
//Сообщить(ОписаниеОшибки());
Сообщить("Проблема подключения к интернету...");
КонецПопытки;
Функция СтруктураURI(Знач СтрокаURI) Экспорт
СтрокаURI = СокрЛП(СтрокаURI);
// схема
Схема = "";
Позиция = Найти(СтрокаURI, "://");
Если Позиция > 0 Тогда
Схема = НРег(Лев(СтрокаURI, Позиция - 1));
СтрокаURI = Сред(СтрокаURI, Позиция + 3);
КонецЕсли;
// строка соединения и путь на сервере
СтрокаСоединения = СтрокаURI;
ПутьНаСервере = "";
Позиция = Найти(СтрокаСоединения, "/");
Если Позиция > 0 Тогда
ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1);
СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1);
КонецЕсли;
// информация пользователя и имя сервера
СтрокаАвторизации = "";
ИмяСервера = СтрокаСоединения;
Позиция = Найти(СтрокаСоединения, "@");
Если Позиция > 0 Тогда
СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1);
ИмяСервера = Сред(СтрокаСоединения, Позиция + 1);
КонецЕсли;
// логин и пароль
Логин = СтрокаАвторизации;
Пароль = "";
Позиция = Найти(СтрокаАвторизации, ":");
Если Позиция > 0 Тогда
Логин = Лев(СтрокаАвторизации, Позиция - 1);
Пароль = Сред(СтрокаАвторизации, Позиция + 1);
КонецЕсли;
// хост и порт
Хост = ИмяСервера;
Порт = "";
Позиция = Найти(ИмяСервера, ":");
Если Позиция > 0 Тогда
Хост = Лев(ИмяСервера, Позиция - 1);
Порт = Сред(ИмяСервера, Позиция + 1);
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Схема", Схема);
Результат.Вставить("Логин", Логин);
Результат.Вставить("Пароль", Пароль);
Результат.Вставить("ИмяСервера", ИмяСервера);
Результат.Вставить("Хост", Хост);
Результат.Вставить("Порт", ?(Порт <> "", Число(Порт), Неопределено));
Результат.Вставить("ПутьНаСервере", ПутьНаСервере);
Возврат Результат;
КонецФункции