![]() |
|
Печать двух страниц на одном листе | ☑ | ||
---|---|---|---|---|
0
zawod
16.11.05
✎
00:31
|
Можно ли программным способом задать печать двух страниц на одном листе?
Например, в WS WORD при настройке печать есть фишка Количество страниц на листе (не путать в настройке принтера в 1С опцию Экземпляров на страницу - работает не так). |
|||
1
OFF
модератор
16.11.05
✎
06:20
|
ВывестиСекцию, ПрисоеденитьСекцию еще никто не отменял
Ну а дальше маштабом играйся |
|||
2
smaharbA
16.11.05
✎
06:35
|
(16) Сейчас во всех(почти) принтерах такое встроено, не экземпляров, а страниц
|
|||
3
Vint Kras
16.11.05
✎
06:42
|
я настроил в системе два принтера на один, один обычные настройки, второй как 2 сказал, нужно две страницы на листе печатаю на втой, нет на первый (он по умолчанию) все работает на ура.
|
|||
4
smaharbA
16.11.05
✎
07:13
|
(3) Можно программно, вот пример
Перем Сп; Процедура НастройкаПечати(ИмяПринтераКакВСистеме) Предупреждение("Настройте параметры печати для "+СокрЛП(ИмяПринтераКакВСистеме),5); КомандаСистемы("rundll32 printui.dll,PrintUIEntry /e /n """+СокрЛП(ИмяПринтераКакВСистеме)+""""); ВЗ="";НЗ="";ПредстСп=""; Если Сп.ВыбратьЗначение(ВЗ,"Выберите профиль для сохранения",НЗ,,1)=1 Тогда ЗапуститьПриложение("rundll32 printui.dll,PrintUIEntry /Ss /n """+СокрЛП(ИмяПринтераКакВСистеме)+""" /a "+Сп.ПолучитьЗначение(НЗ)); Сп.ПолучитьЗначение(НЗ,ПредстСп); Сп.УстановитьЗначение(НЗ,Сп.ПолучитьЗначение(НЗ),"+"+Сред(ПредстСп,2)); КонецЕсли; КонецПроцедуры // НастройкиПринтера //******************************************* Процедура ПрименитьНастройкиПечати(ИмяПринтераКакВСистеме) ВЗ="";НЗ="";ПредстСп=""; Сп2=Сп; РС=Сп2.РазмерСписка(); Для к=0 По РС-1 Цикл Сп.ПолучитьЗначение(РС-к,ПредстСп); Если Лев(ПредстСп,1)="-" Тогда Сп.УдалитьЗначение(РС-к); КонецЕсли; КонецЦикла; Если Сп2.ВыбратьЗначение(ВЗ,"Выберите профиль для применения",НЗ,,1)=1 Тогда Предупреждение(Сп2.ПолучитьЗначение(НЗ)); ЗапуститьПриложение("rundll32 printui.dll,PrintUIEntry /Sr /n """+СокрЛП(ИмяПринтераКакВСистеме)+""" /a """+СокрЛП(Сп2.ПолучитьЗначение(НЗ))+""""); КонецЕсли; КонецПроцедуры Процедура Печать() КонецПроцедуры // Печать //******************************************* // Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; ПрименитьНастройкиПечати(ИмяПринтераКакВСистеме); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Контрагенты = Справочник.Контрагенты.ТекущийЭлемент; |Группировка Контрагенты; |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); к=0; Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("Контрагенты"); к=к+1; КонецЦикла; Таб.ПараметрыСтраницы(,,,,,,,,,,,СокрЛП(ИмяПринтераКакВСистеме)); Таб.Напечатать(1); //Таб.ТолькоПросмотр(1); //Таб.Показать("Сформировать", ""); КонецПроцедуры Сп=СоздатьОбъект("СписокЗначений"); Сп.Установить(?(ФС.СуществуетФайл(КаталогПользователя()+"Duplex.dat")=1,"+","-")+"Двухсторонняя печать",КаталогПользователя()+"Duplex.dat"); Сп.Установить(?(ФС.СуществуетФайл(КаталогПользователя()+"NoDuplex.dat")=1,"+","-")+"Односторонняя печать",КаталогПользователя()+"NoDuplex.dat"); Сп.Установить(?(ФС.СуществуетФайл(КаталогПользователя()+"Other.dat")=1,"+","-")+"Другая какаято печать",КаталогПользователя()+"Other.dat"); ... Тут можно сохранять любые настройки принтера и вызывать их когда надо, программно... |
|||
5
Vint Kras
16.11.05
✎
07:18
|
(4) :-), да с тобой все давно ясно..... :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |