Имя: Пароль:
1C
 
7.7 получить список принтеров
Ø
0 bvb
 
24.01.06
18:32
Как получить список принтеров (их названий) определенных в системе
Полученный список хотелось бы загрузить в список значений
1 Бит
 
24.01.06
18:35
(0)Поиском религия не позволяет пользоваться?
f.e. например в поиске "получить список принтеров" и нажать интер
2 smaharbA
 
24.01.06
18:38
Процедура Сформировать()
    Scr = CreateObject("MSScriptControl.ScriptControl");
    Scr.Language = "javascript";
    locator=createobject("wbemscripting.swbemlocator");
    service=locator.connectserver();
    oP=service.ехесquery("select * from Win32_Printer");
    Scr.AddObject("o",oP);
    e=Scr.eval("new Enumerator(o);");
    Пока e.atEnd(0)=0 Цикл
        Сообщить(e.item(0).Name);
        e.moveNext(0);
    КонецЦикла;
КонецПроцедуры
3 Лёвыч
 
24.01.06
18:44
(+2) а вот мой велосипед на скорую руку
Процедура ЕнумПринтерКоннекшз()
  Перем Нетворк;
  Нетворк = СоздатьОбъект("WScript.Network");
  Принтеры = Нетворк.EnumPrinterConnections();
  
  тзПринтеры = СоздатьОбъект("ТаблицаЗначений");
  тзПринтеры.НоваяКолонка("Притер");
  тзПринтеры.НоваяКолонка("Порт");
  
  Для СчЦ=0 По Принтеры.length-1 Цикл
    
    тзПринтеры.НоваяСтрока();
    тзПринтеры.Притер = Принтеры.Item(СчЦ + 1);
    тзПринтеры.Порт = Принтеры.Item(СчЦ);
    
    СчЦ=СчЦ+1;
    
  КонецЦикла;
  
КонецПроцедуры
4 bvb
 
24.01.06
19:01
Какая библиотека нужна для CreateObject("MSScriptControl.ScriptControl");
а для СоздатьОбъект("WScript.Network"); ???
5 zzz
 
24.01.06
19:15
толку то от этого списка..
6 smaharbA
 
24.01.06
19:21
(5) Не скажи, по (2) можно узнать и статус принтера и где он и задания и прочее...
7 zzz
 
24.01.06
19:22
2(6) и?
8 smaharbA
 
24.01.06
19:24
(7) Далее конечно дело вкуса, сам не балуюсь таким, что положенно то и покладено ;)
Но любитель скриптования ;)
9 zzz
 
24.01.06
19:31
2(8) в (5) я имел ввиду что печатать на разные принтера выбирая их из списка - в 1С это ооооо(90 раз о)чень проблематично.
10 smaharbA
 
24.01.06
19:32
(9) Ты о мокселе ? Или я непонял по чему...
11 Лёвыч
 
24.01.06
19:35
(9) не нагнеьай - больше года уже печатаю, ни каких проблем (если принтер локальный или со своей сетевухой)
12 zzz
 
24.01.06
19:37
2(10) о кэше в движке 1С.
2(11) код в студию.
13 bvb
 
24.01.06
19:41
(9) А что применить это имяя в процедуре ПараметрыСтраницы()
в качестве процедуры "ИмяПринтера" не получится ?
14 Лёвыч
 
24.01.06
19:42
(12) многа букаф, да и зачем? Там целый механизям - операторам нудно много различных печатных форм документов по счету печатать в различных количествах на различные принтеры, каковые принтеры по 4-м этажам конторы равномерно размазаны, причем количество печатных форм и их набор зависит от склада, клиента и ты ды, нафик тут такой код? Уж поверь на слово
15 zzz
 
24.01.06
19:49
2(13) попробуй, расскажешь. Желательно с сетевыми принтерами. Печатая попеременно то на один, то на другой БЕЗ диалога печати.
 
2(14) я выдержу "много букаф".
"целый механизям" - возможно. А чисто средствами 1С?
16 Лёвыч
 
24.01.06
19:52
(15) чисто средствами 1С, только, как я писал в (11) все принтеры либо локальные, либо со своими принтсерверами, т.е. сетевыми принтерами и не пахнет. Когда начинает пахнуть, понятный перец, весь механизям идет козе в... короче, не работает механизям 8)
17 bvb
 
24.01.06
20:05
(15) У меня обработка групповой печати документов вновь прибывших в переферийную базу при обмене. Все работало тип топ пока печаталось на принтер по умолчанию, тока теперь надо печатать на принтер выбранный в реквизитах обработки
Теперь все печатные формы надо переделывать под дополнительный параметр
"Имя принтера"
18 vrag
 
24.01.06
21:29
Один и тот же сетевой принтер у разных клиентов может обзываться как угодно...
Пусть ручками выбирают.
19 smaharbA
 
24.01.06
21:40
(18) Не может он называться по разному, поверь... Название "заложено" на сервере печати, а сетевое имя тем патче...
Не веришь код уже приведен, и рабочий, в (2) для всех принтеров, в (3) для сетевых только...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн