Получения новостей с RSS-канала сайта buh.ru Код для получения новостей с сайта buh.ru, используется RSS-канал http://www.buh.ru/rss/rss-2.0.jsp
Данный код для 7.7, при использовании в 8-ой версии нужно заменить СоздатьОбъект( на Новый COMОбъект(, остальное вроде так же.
Код 1C v 7.x
Функция ВытащитьДату(Стр)
парсер=СоздатьОбъект("VBScript.RegExp");
парсер.Global=-1;
парсер.Ignore Case =-1;
стрМес="Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec";
парсер.Pattern="(\d\d)\s(("+стрМес+"))\s(\d{4})";
рез = парсер.Execute(Стр);
Если рез.Count>0 Тогда
рез_ = рез.Item(0);
чч=Число(рез_.Submatches(0));
мст=рез_.Submatches(1);
где=Найти(стрМес,мст);
мм=цел(где/4)+1;
гг=Число(рез_.Submatches(3));
дат=Дата(гг,мм,чч);
Иначе
дат=0;
КонецЕсли;
Возврат дат;
КонецФункции
Процедура Сформировать()
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ИД","Число");
ТЗ.НоваяКолонка("Дата","Дата");
ТЗ.НоваяКолонка("Заголовок","Строка");
ТЗ.НоваяКолонка("Ссылка","Строка");
ТЗ.НоваяКолонка("Текст","Строка");
Состояние("Получение данных с сайта www.buh.ru");
//ТаймАут поставьте в зависимости от качества подключения
ТаймАут=100000;
IE=СоздатьОбъект("InternetExplorer.Application");
IE.navigate("http://www.buh.ru/rss/rss-2.0.jsp");
Пока IE.readyState<4 Цикл
ТаймАут=ТаймАут-1;
Если ТаймАут=0 Тогда
Предупреждение("Не удалось получить данные с сайта www.buh.ru",10);
Возврат;
КонецЕсли;
КонецЦикла;
//версия 0.1 для v7plus.dll
//ХМЛ=СоздатьОбъект("AddIn.XMLParser");
//ХМЛДок=ХМЛ.СоздатьДокумент();
//ХМЛДок.Загрузить(oIE.document.XMLDocument);
//Выборка=ХМЛДок.ВыбратьУзлы("//item");
//Для ии=0 По Выборка.КоличествоУзлов()-1 Цикл
// ЭлНовость=Выборка.ПолучитьУзел(ии);
// ТЗ.НоваяСтрока();
// ТЗ.Дата=ВытащитьДату(ЭлНовость.ВыбратьУзел("./pubDate").Текст);
// ТЗ.Заголовок=ЭлНовость.ВыбратьУзел("./title").Текст;
// ТЗ.Ссылка=ЭлНовость.ВыбратьУзел("./link").Текст;
// ТЗ.Текст=ЭлНовость.ВыбратьУзел("./description").Текст;
//КонецЦикла;
//версия 0.2 для MSXML
ХМЛДок=СоздатьОбъект("MSXML2.DOMDocument");;
ХМЛДок.async=0;
ХМЛДок.resolveExternals=0;
ХМЛДок.load(IE.document.XMLDocument);
Выборка=ХМЛДок.selectNodes("//item");
Для ии=0 По Выборка.length-1 Цикл
ЭлНовость=Выборка.item(ии);
ТЗ.НоваяСтрока();
ТЗ.Дата=ВытащитьДату(ЭлНовость.selectSingleNode("./pubDate").text);
ТЗ.Заголовок=ЭлНовость.selectSingleNode("./title").text;
ТЗ.Ссылка=ЭлНовость.selectSingleNode("./link").text;
ТЗ.Текст=ЭлНовость.selectSingleNode("./description").text;
КонецЦикла;
//Все. Мы получили ТЗ с последними новостями
КонецПроцедуры
К сожалению, автор не известен.
Категория:
COM-объекты, WMI, WSH Задать вопрос пользователю, ответ на вопрос Код 1C v 8.2 УП Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос("Выполнить?", Режим, 0);
Если Ответ =КодВозвратаДиалога.Да Тогда
Сообщить("Выполнено");
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
Сообщить("Не выполнено");
КонецЕсли;
Код 1C v 8.х
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Сохранить текст?", Режим,0) ;
Если Ответ = КодВозвратаДиалога.Нет Тогда
ТекДок.Записать(ПутьКФайлу);
КонецЕсли ;
//Свойства РежимДиалогаВопрос:
//ДаНет (YesNo)
//ДаНетОтмена (YesNoCancel)
//ОК (OK)
//ОКОтмена (OKCancel)
//ПовторитьОтмена (RetryCancel)
//ПрерватьПовторитьПропустить (AbortRetryIgnore )
//Свойства КодВозвратаДиалога:
//Да (Yes)
//Нет (No)
//ОК (OK)
//Отмена (Cancel)
//Повторить (Retry)
//Прервать (Abort)
//Пропустить (Ignore )
//Таймаут (Timeout)
Код 1C v 7.x
// Зададим вопрос, и варианты ДА, НЕТ
Рез = Вопрос("Вы получили данное сообщение?", 4);
// При нажатии Да - Рез=6, Нет- Рез=6
//Можно и так:
Если Вопрос("Сохранить?", "Да+Нет") = "Да" Тогда
ТекДок.Записать(ПутьКФайлу);
КонецЕсли;
//Вопрос(Текст_вопроса, Режим, Таймаут) - Вывести окно вопроса и получить ответ.
//Возвращает ответную реакцию в виде числа или строки, в соответствии с заданием параметра <Режим>:
//-1 или 'Таймаут' ('Timeout'), если закончилось время ожидания ответа;
//1 или 'ОК' ('ОК'), если если нажата кнопка OK;
//2 или 'Отмена' ('Cancel'), если нажата кнопка Отмена;
//3 или 'Стоп' ('Abort'), если нажата кнопка Стоп;
//4 или 'Повтор' ('Retry'), если нажата кнопка Повтор;
//5 или 'Пропустить' ('Ignore '), если нажата кнопка Пропустить;
//6 или 'Да' ('Yes'), если нажата кнопка Да;
//7 или 'Нет' ('No'), если нажата кнопка Нет.
//
//Параметры:
//Текст_вопроса - cтрока текста вопроса;
//Режим - определяет набор кнопок диалога в виде числа или строки (в скобках английское написание):
// 0 или 'ОК' ('ОК') - кнопка OK;
// 1 или 'ОК+Отмена' ('OK+Cancel') - кнопки OK и Отмена;
// 2 или 'Стоп+Повтор+Пропустить' ('Abort+Retry+Ignore ') - кнопки Стоп, Повтор, Пропустить;
// 3 или 'Да+Нет+Отмена' ('Yes+No+Cancel') - кнопки Да, Нет, Отмена;
// 4 или 'Да+Нет' ('Yes+No') - кнопки Да, Нет;
// 5 или 'Повтор+Отмена' ('Retry+Cancel') - кнопки Повтор, Отмена;
// (любое другое значение или отсутствие параметра равносильно 0);
//Таймаут - число секунд времени ожидания ответа (если опущен или 0, то без ограничения).
Категория:
Встроенные Функции