|
|
|
Управляем принтерами из 1С интерактивно/программно без ВК... | ☑ | ||
|---|---|---|---|---|
|
0
smaharbA
10.02.06
✎
11:50
|
Создадим на форме ТаблицуЗначений "ТЗПринтеры" повесим на нее функцию ДействиеСПринтером(), еще можно кнопку "Обновить" с функцией ПриОткрытии()...
... Перем Scr,Shell,КоллекцияПринтеров; //******************************************* Процедура ПриОткрытии() ТЗПринтеры.УдалитьСтроки(); Scr.Reset(); Scr.AddObject("o",КоллекцияПринтеров.Items()); e=Scr.eval("new Enumerator(o);"); Пока e.atEnd(0)=0 Цикл ТЗПринтеры.НоваяСтрока(); ТЗПринтеры.ПоУмолчанию = ""; ТЗПринтеры.Имя = e.item(0).Name; ТЗПринтеры.Путь = e.item(0).Path; ТЗПринтеры.Принтер = e.item(0); Verbs=""; Об="s"+ТЗПринтеры.КоличествоСтрок(); Scr.AddObject(Об,e.item(0).verbs()); v=Scr.eval("new Enumerator("+Об+");"); Пока v.atEnd(0)=0 Цикл Verbs=Verbs + v.item(0).name +РазделительСтрок; v.moveNext(0); КонецЦикла; Если (Найти(verbs,"Использовать по умолчанию")=0) и (ТЗПринтеры.КоличествоСтрок()>1) Тогда ТЗПринтеры.ПоУмолчанию = "@@@"; КонецЕсли; e.moveNext(0); КонецЦикла; КонецПроцедуры // ПриОткрытии Процедура ДействиеСПринтером() СпДействий=СоздатьОбъект("СписокЗначений"); Об="s"+ТЗПринтеры.НомерСтроки; v=Scr.eval("new Enumerator("+Об+");"); Пока v.atEnd(0)=0 Цикл СпДействий.ДобавитьЗначение(v.item(0),v.item(0).name); v.moveNext(0); КонецЦикла; Действие=""; Если СпДействий.ВыбратьЗначение(Действие,,,,2)=1 Тогда Действие.DoIt(); ПриОткрытии(); КонецЕсли; КонецПроцедуры // ТЗПринтеры.НоваяКолонка("ПоУмолчанию"); ТЗПринтеры.НоваяКолонка("Имя"); ТЗПринтеры.НоваяКолонка("Путь"); ТЗПринтеры.НоваяКолонка("Принтер"); ТЗПринтеры.УстановитьПараметрыКолонки("ПоУмолчанию",,,,"",3); ТЗПринтеры.ВидимостьКолонки("Принтер",0); Scr = CreateObject("MSScriptControl.ScriptControl"); Scr.Language = "javascript"; Scr.Timeout=-1; Shell=СоздатьОбъект("Shell.Application"); КоллекцияПринтеров=Shell.NameSpace("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"); |
|||
|
1
АперБот
10.02.06
✎
12:32
|
Я очень простой бот, занимаю около 200 строк кода и могу только поднимать ветки
|
|||
|
2
smaharbA
10.02.06
✎
13:26
|
Дополнил немного информацией
//Создадим на форме ТаблицуЗначений "ТЗПринтеры" повесим на нее функцию ДействиеСПринтером(), еще можно кнопку "Обновить" с функцией ПриОткрытии()... //... Перем Scr,Shell,КоллекцияПринтеров; //******************************************* Процедура ПриОткрытии() ТЗПринтеры.УдалитьСтроки(); Scr.Reset(); Scr.AddObject("o",КоллекцияПринтеров.Items()); e=Scr.eval("new Enumerator(o);"); Пока e.atEnd(0)=0 Цикл ТЗПринтеры.НоваяСтрока(); ТЗПринтеры.ПоУмолчанию = ""; ТЗПринтеры.Имя = e.item(0).Name; ТЗПринтеры.Путь = e.item(0).Path; ТЗПринтеры.Состояние=КоллекцияПринтеров.GetDetailsOf(e.item(0),3); ТЗПринтеры.Документы=КоллекцияПринтеров.GetDetailsOf(e.item(0),1); ТЗПринтеры.Модель=КоллекцияПринтеров.GetDetailsOf(e.item(0),5); ТЗПринтеры.Комментарий=КоллекцияПринтеров.GetDetailsOf(e.item(0),3); ТЗПринтеры.Размещение=КоллекцияПринтеров.GetDetailsOf(e.item(0),4); ТЗПринтеры.Принтер = e.item(0); Verbs=""; Об="s"+ТЗПринтеры.КоличествоСтрок(); Scr.AddObject(Об,e.item(0).verbs()); v=Scr.eval("new Enumerator("+Об+");"); Пока v.atEnd(0)=0 Цикл Verbs=Verbs + v.item(0).name +РазделительСтрок; v.moveNext(0); КонецЦикла; Если (Найти(verbs,"Использовать по умолчанию")=0) и (ТЗПринтеры.КоличествоСтрок()>1) Тогда ТЗПринтеры.ПоУмолчанию = "@@@"; КонецЕсли; e.moveNext(0); КонецЦикла; Форма.ОбработкаОжидания("ПриОткрытии",20); КонецПроцедуры // ПриОткрытии Процедура ДействиеСПринтером() СпДействий=СоздатьОбъект("СписокЗначений"); Об="s"+ТЗПринтеры.НомерСтроки; v=Scr.eval("new Enumerator("+Об+");"); Пока v.atEnd(0)=0 Цикл СпДействий.ДобавитьЗначение(v.item(0),v.item(0).name); v.moveNext(0); КонецЦикла; Действие=""; Если СпДействий.ВыбратьЗначение(Действие,,,,2)=1 Тогда Действие.DoIt(); ПриОткрытии(); КонецЕсли; КонецПроцедуры // ТЗПринтеры.НоваяКолонка("ПоУмолчанию"); ТЗПринтеры.НоваяКолонка("Имя"); ТЗПринтеры.НоваяКолонка("Путь"); ТЗПринтеры.НоваяКолонка("Принтер"); ТЗПринтеры.НоваяКолонка("Состояние"); ТЗПринтеры.НоваяКолонка("Документы"); ТЗПринтеры.НоваяКолонка("Модель"); ТЗПринтеры.НоваяКолонка("Комментарий"); ТЗПринтеры.НоваяКолонка("Размещение"); ТЗПринтеры.УстановитьПараметрыКолонки("ПоУмолчанию",,,,"",3); ТЗПринтеры.УстановитьПараметрыКолонки("Документы",,,,,10); ТЗПринтеры.ВидимостьКолонки("Принтер",0); Scr = CreateObject("MSScriptControl.ScriptControl"); Scr.Language = "javascript"; Scr.Timeout=-1; Shell=СоздатьОбъект("Shell.Application"); КоллекцияПринтеров=Shell.NameSpace("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"); |
|||
|
3
Волшебник
модератор
10.02.06
✎
13:35
|
Помещал бы ты сразу эти фрагменты в Книгу знаний. Ну не место им на форуме!
|
|||
|
4
Бивень
10.02.06
✎
13:38
|
(3) Там никто не увидит, какой он умный ...
|
|||
|
5
smaharbA
10.02.06
✎
13:40
|
(4) Догадался... Да это просто пАнты, и нескрываю...Но в книгу оформлю всеже...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |