JavaScript и наличие установленного принтера на машине
confirm ("У Вас есть принтер?");
![](/images/graemlins/lol.gif)
![](/images/graemlins/frown.gif)
Kand: Привет. Не знаешь, JavaScript умеет с файлами работать?
Legus: Только через переполнение буфера
Kand: Гыг
Неужели через OLE этого нельзя сделать? Подскажите о ОТЦЫ вражеских технологий!
![](/images/graemlins/smile.gif)
Содержимое <filename>.js
var WshNetwork = WScript.CreateObject("WScript.Network");
var oPrinters = WshNetwork.EnumPrinterConnections;
WScript.Echo("Network printer mappings:");
for(i = 0; i < oPrinters.length; i += 2) {
WScript.Echo("Port " + oPrinters.Item(i) + " = " + oPrinters.Item(i + 1;}
Найдет ли он локальный - фиг знает - у меня локальных нету. Работает как видно через OLE.
![](/images/graemlins/frown.gif)
![](/images/graemlins/frown.gif)
![](/images/graemlins/frown.gif)
Да этот скрипт и их чекает (у меня нашел отбросить их небольшая проблема думаю - но это надо доки смотреть.
to
Кто сказал что я шарю?
![](/images/graemlins/mad.gif)
![](/images/graemlins/mad.gif)
![](/images/graemlins/mad.gif)
Да я в этом разделе походу самый криворукий программер, потому как не программер по работе
![](/images/graemlins/grin.gif)
Чисто теоретически можно соединиться с 1С через ADO (это же просто набор .dbf таблиц или одна из стандартных DB). Вот такой код функции возвращающей содержимое SQL запроса на VB правда (на JS сам думаю без проблем переложишь) выполняет SQL запрос к некой BD, на которую есть alias в odbcad32.exe, используя OLE-объект.
P.S. html и 1С никогда не программировал
![](/images/graemlins/wink.gif)
Function ExecSQL (strDSNName, strSQL)
Dim strConnectionString, strS
Dim objConnection, objRecordset, objCommand
strConnectionString = "Provider=MSDASQL.1;Persist Security Info=True;Data Source=" & strDSNName
Set objConnection=CreateObject("ADODB.Connection")
objConnection.ConnectionString=strConnectionString
objConnection.CursorLocation=3
objConnection.Open
Set objRecordset = CreateObject("ADODB.Recordset")
Set objCommand = CreateObject("ADODB.Command")
objCommand.CommandType=1
objCommand.ActiveConnection = objConnection
objCommand.CommandText = strSQL
Set objRecordset = objCommand.Execute
Do While Not objRecordset.EOF
' select должен выбирать как минимум два столбца - 0 и 1 в objRecordSet - номер столбца
strS = strS & objRecordset(0)& " " & objRecordset(1) & Chr(13) & Chr(10)
objRecordSet.MoveNext
Loop
ExecSQL = strS
'MsgBox objRecordset.Recordcount
objRecordset.close
objConnection.Close
End Function
Оставить комментарий
Ivan826
Реально ли проверить установлен ли принтер на машине клиента?Т.е. если принтера нету не предлагать распечатывать страницу