![]() |
Печать документов на заданный принтер из обработки Подскажите, как это сделать. Стандартными средствами типа Счет=Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00100002772", ТекущаяДата()); СчетОбъект=Счет.ПолучитьОбъект(); СчетОбъект.Печать("Счет", 1, ИСТИНА); выдаёт окно выбора принтера, а надо, чтобы обработка делала своё дело полностью автоматически? Пробовал ещё что-то типа ТабДок = УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СчетОбъект,1,Ложь); ТабДок.ИмяПринтера="Kyocera FS-1120D (KPDL)"; Но не срабатывает, пишет значение ИмяПринтер не значение объектного типа |
[quote=Caballero;25213186]Пробовал ещё что-то типа ТабДок = УниверсальныеМеханизмы.НапечататьДокументПоУмолчан ию(СчетОбъект,1,Ложь); ТабДок.ИмяПринтера="Kyocera FS-1120D (KPDL)";[/quote] я бы сначала посмотрел, что возвращает функция НапечататьДокументПоУмолчанию() |
Сообщает "Да" :) |
И что платформа должна подразумевать под [b]Да.ИмяПринтера[/b]? |
ВаАбще-то, во-первых, надо бы убедится, что принтер есть, во вторых, неплохо весьма добавить имя задействованного принтера на морду обработки, и в третьих, надо добавить опцию задания принтера. И уж совсем хорошо избавится от привычки давать принтеру длинные кудрявые имена, как испанскому гранду. |
+4 а еще в коде сабжа ересь, видимая невооруженному взгляду. |
4-VZ > Принтер есть, это выдача по запросу |
СписокПринтеров = Новый СписокЗначений; СписокПринтеров.Очистить(); Принтеры = Новый COMОбъект("WScript.Network"); Prn = Принтеры.EnumPrinterConnections(); i = 0; j = Prn.Count() - 1; Пока i < j Цикл СписокПринтеров.Добавить(Prn.Item(i + 1)); i = i + 1; КонецЦикла; Принтер = СписокПринтеров.ВыбратьЭлемент(); //даём пользователю выбрать принтер Если Принтер <> Неопределено Тогда Сообщить(Принтер.Значение); // например КонецЕсли; В коде ересь, я согласен. Поэтому и прошу помощи. С 1С не работал, а надо быстро подружиться. |
Нашёл вот подходящий способ, но конфигурацию менять, к сожалению, нельзя: [url]http://kb.mista.ru/article.php?id=677[/url] |
8-Caballero > Ну и? Нельзя, так нельзя. Загоняешь нужные функции в модуль свой обработки, и все. |
9-VZ > То есть получается копировать всю функцию "печать" всех документов? Тогда при изменении печатных форм обязательно всё переписать не забывать надо... Мне кажется, должно быть проще всё... Или нет? А альтернативный вариант - как обработкой сохранять эти документы в какой-нибудь общеупотребительный формат DOC, XLS или PDF? |
В последней платформе есть печать в ПДФ |
11-МимохожийОднако >Есть какой-нибудь хороший пример? Блин... Хотелось правда, чтобы всё это 1с сама делала, а не напрягать ещё одно звено в виде скрипта печати |
у печатных форм есть параметр ИмяПараметровПечати, можно попробовать до печати переопределить ИмяПринтера ЗЫ. а вообще автор еще не указал конфигурацию, и не сказал, зачем вообще нужно на [b]другой [/b]принтер печатать все подряд |
13-Uho > Каким образом? Бухгалтерия Проф 2.0, 1С Предприятие 8.2 Из обработки нужно генерировать комплект документов и отправлять их на принтер менеджерам автоматически. |
Так принтер то всегда один или нет? |
В обработке принтер всегда один. Хрен с ним, пусть уж будет такой же, как выбранный в системе по умолчанию - поставим 1с на отдельную машину для печати, но лишь бы автоматически делало, а не показывало окно выбора каждый раз... Это ж застрелиться можно |
16-Caballero > тогда все просто: СчетОбъект.Печать("Счет", 1, ИСТИНА, ИСТИНА); ЗЫ. а еще в БП есть штатная групповая печать |
17-Uho >Фуууух..... You made my day! Спасибо! |
Текущее время: 04:11. Часовой пояс GMT +3. |