По теме из базы знаний
- [расширение] Добавление работ в 1С:Документооборот с использованием inline-бота telegram
- Универсальная обработка для 1С 8.3 Инструмент для изменения и исправления ошибок информационной базы
- Занимательный PowerShell
- Базы данных. Несколько шагов до серьезного обслуживания
- Cкрипт для выгрузки DT (детешников) утилитой ibcmd 1С+MSSQL
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вопрос следущего характера:
Есть ли возможность работать с CMD из под 1С также, как, например, с InternetExplorer-ом?
ну тоесть для чтения HTML версии страницы можно использовать
есть ли похожий механизм для "DOS.Application"?
Есть ли возможность работать с CMD из под 1С также, как, например, с InternetExplorer-ом?
ну тоесть для чтения HTML версии страницы можно использовать
Код |
---|
Web = СоздатьОбъект("InternetExplorer.Application"); // создаем
Web.Navigate("https://infostart.ru"); // переходим по урлу
Текст = Web.Document.documentElement.innerHTML; // инвертируем в HTML и пишем как текст
Web.Quit(); // закрываем
Показать полностью |
есть ли похожий механизм для "DOS.Application"?
Позволю себе отвлечься.
Автор прекрасно знает, что такое "переходим по урлу", а вот файлик ping.txt сейвать умеет наверное только мышей.
Куда хочешь, туда и сохраняй, сейваватель.
Например на C:\
Я в акуе с поколения нехт.
Автор прекрасно знает, что такое "переходим по урлу", а вот файлик ping.txt сейвать умеет наверное только мышей.
Куда хочешь, туда и сохраняй, сейваватель.
Например на C:\
Я в акуе с поколения нехт.
2 vip
я конечно прошу просчения, но я начинающий программист 1с
для меня не совсем понятна конструкция
в варианте с
<Code>
Web = СоздатьОбъект("InternetExplorer.Application"); // создаем
Web.Navigate("https://infostart.ru"); // переходим по урлу
Текст = Web.Document.documentElement.innerHTML; // инвертируем в HTML и пишем как текст
Web.Quit(); // закрываем
[/1C-CODE]
все придельно понятно, куда, что и как записывается.
тут же просто запускается приложение и фсе. я так понимаю, что оно что то записало в этот файл, но сам файл не сохранило. сообветствено я спрашиваю конструкции всего описания записи результата PING в файлик.
может комуто это покажется cтранным, но я не понимаю работы "> ping.txt"
я конечно прошу просчения, но я начинающий программист 1с
для меня не совсем понятна конструкция
ЗапуститьПриложение("ping 192.168.0.1 > ping.txt");
в варианте с
<Code>
Web = СоздатьОбъект("InternetExplorer.Application"); // создаем
Web.Navigate("https://infostart.ru"); // переходим по урлу
Текст = Web.Document.documentElement.innerHTML; // инвертируем в HTML и пишем как текст
Web.Quit(); // закрываем
[/1C-CODE]
все придельно понятно, куда, что и как записывается.
тут же просто запускается приложение и фсе. я так понимаю, что оно что то записало в этот файл, но сам файл не сохранило. сообветствено я спрашиваю конструкции всего описания записи результата PING в файлик.
может комуто это покажется cтранным, но я не понимаю работы "> ping.txt"
> > АйПи будет менятся в коде...
> 1c позволяет создавать текстовые файлы...
Бяка. Лучше уж так:
В bat-файле:
@ping %1 > D:\ping.txt
В 1С:
ЗапуститьПриложение("ping.bat 192.168.0.1");
Или так:
ЗапуститьПриложение("cmd /c ping 192.168.0.1 >d:\ping.txt");
или
КомандаСистемы("ping 192.168.0.1 >d:\ping.txt");
> 1c позволяет создавать текстовые файлы...
Бяка. Лучше уж так:
В bat-файле:
@ping %1 > D:\ping.txt
В 1С:
ЗапуститьПриложение("ping.bat 192.168.0.1");
Или так:
ЗапуститьПриложение("cmd /c ping 192.168.0.1 >d:\ping.txt");
или
КомандаСистемы("ping 192.168.0.1 >d:\ping.txt");
2 poppy
>> ЗапуститьПриложение("cmd /c ping 192.168.0.1 >d:\ping.txt");
самое оно!!! СПС огромное
есть еще 3 вопроса:
1. Как сделать так, что б окно CMD небыло видно?
2. как несколько таких процедур записать в один файл (ну всмысле что б оно не перезаписывало кажыдй раз файлик заново, а дописывало в него)?
3. как это дело перекодирывать в нормальный вид (дос кодировка в блокноте совсем никак не читается)?
>> ЗапуститьПриложение("cmd /c ping 192.168.0.1 >d:\ping.txt");
самое оно!!! СПС огромное
есть еще 3 вопроса:
1. Как сделать так, что б окно CMD небыло видно?
2. как несколько таких процедур записать в один файл (ну всмысле что б оно не перезаписывало кажыдй раз файлик заново, а дописывало в него)?
3. как это дело перекодирывать в нормальный вид (дос кодировка в блокноте совсем никак не читается)?
Можно ли потрындеть тут у Вас? Если интересуют не все cmd DOS, а только ping ...
Функция ПроверитьВклКомпа(name)
Если ПустоеЗначение(name) = 1 Тогда
Возврат 0;
КонецЕсли;
Попытка
scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
scrptCtrl.language="vbscript";
scrptCtrl.addcode("
|Function Avaible()
|Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}"")
|Set objPing = objWMIService.ExecQuery(""select * from Win32_PingStatus where address = '"+name+"'"")
|For Each objStatus in objPing
|If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
| Avaible = 0
|Else
| Avaible = 1
|End If
|Next
|End function
|");
Рез = ScrptCtrl.Run("Avaible");
Возврат Рез;
Исключение
Сообщить("Тест 1");
Возврат 0;
КонецПопытки;
КонецФункции // ПроверитьВклКомпа()
Функция ПроверитьВклКомпа(name)
Если ПустоеЗначение(name) = 1 Тогда
Возврат 0;
КонецЕсли;
Попытка
scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
scrptCtrl.language="vbscript";
scrptCtrl.addcode("
|Function Avaible()
|Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}"")
|Set objPing = objWMIService.ExecQuery(""select * from Win32_PingStatus where address = '"+name+"'"")
|For Each objStatus in objPing
|If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
| Avaible = 0
|Else
| Avaible = 1
|End If
|Next
|End function
|");
Рез = ScrptCtrl.Run("Avaible");
Возврат Рез;
Исключение
Сообщить("Тест 1");
Возврат 0;
КонецПопытки;
КонецФункции // ПроверитьВклКомпа()
Мне обидно за себя.............. Совсем все позабыли Dos Видимо DDos по всем плачет))))
Что по поводу
есть маленький код под 7.7 раз уж нужно в файл добовлять
scr = СоздатьОбъект("WScript.Shell");
Фс.УстТекКаталог(Строка(КаталогИБ())+"TEMP");
Если ФС.ТекКаталог() <>"" Тогда
Дир = Строка(scr.Run("cmd /c ping "+СокрЛП(СтрокаПинга)+" >"+Строка(фс.ТекКаталог())+"swap.txt",0,1));
Иначе
ФС.УстТекКаталог(СТрока(каталогИБ()));
ФС.СоздатьКаталог("TEMP");
Дир = Строка(scr.Run("cmd /c ping "+СокрЛП(СтрокаПинга)+" >"+Строка(фс.ТекКаталог())+"\swap.txt",0,1));
КонецЕсли;
СтрокаПинга это рквизит диалога
А все остальное ручки при работе с файлами.
З.Ы. Я сам новичок так что не обессудьте стаж 1.5 месяца
Что по поводу
есть маленький код под 7.7 раз уж нужно в файл добовлять
scr = СоздатьОбъект("WScript.Shell");
Фс.УстТекКаталог(Строка(КаталогИБ())+"TEMP");
Если ФС.ТекКаталог() <>"" Тогда
Дир = Строка(scr.Run("cmd /c ping "+СокрЛП(СтрокаПинга)+" >"+Строка(фс.ТекКаталог())+"swap.txt",0,1));
Иначе
ФС.УстТекКаталог(СТрока(каталогИБ()));
ФС.СоздатьКаталог("TEMP");
Дир = Строка(scr.Run("cmd /c ping "+СокрЛП(СтрокаПинга)+" >"+Строка(фс.ТекКаталог())+"\swap.txt",0,1));
КонецЕсли;
СтрокаПинга это рквизит диалога
А все остальное ручки при работе с файлами.
З.Ы. Я сам новичок так что не обессудьте стаж 1.5 месяца
Понимаю что малость опоздал :) Просто сам недавно столкнулся.
Накидал аналогичное как в (34), тока для 8-ки. Не уверен что все правильно, может если сетевуха не одна (или еще что-нибудь), работать не будет. Но у меня работает.
ЗЫ: Сорри за буржуйский, просто когда вперемешку выглядит как то не очень.
// Функция Avaible проверяет "пингуется" ли указанный IP
Пример:
Накидал аналогичное как в (34), тока для 8-ки. Не уверен что все правильно, может если сетевуха не одна (или еще что-нибудь), работать не будет. Но у меня работает.
ЗЫ: Сорри за буржуйский, просто когда вперемешку выглядит как то не очень.
// Функция Avaible проверяет "пингуется" ли указанный IP
Function Avaible(IP) Export
Try
ServicesSet = GetCOMObject("winmgmts:{impersonationLevel=impersonate}");
Items = ServicesSet.ExecQuery("SEL ECT StatusCode fr om Win32_PingStatus WHERE address = '" + IP + "' AND Timeout=10");
Except
Return Undefined;
EndTry;
For Each Item In Items Do
If Item.StatusCode = 0 Then
Return True;
Else
Return False;
EndIf;
EndDo;
EndFunction
ПоказатьПример:
Если Avaible("127.0.0.1") Тогда
// Пингуется
Иначе
// НЕ Пингуется
КонецЕсли
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот