Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Печать документов на заданный принтер из обработки (http://forums.kuban.ru/f1040/pechat-_dokumentov_na_zadannyj_printer_iz_obrabotki-2644856.html)

Caballero 24.05.2012 14:55

Печать документов на заданный принтер из обработки
 
Подскажите, как это сделать.
Стандартными средствами типа

Счет=Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00100002772", ТекущаяДата());
СчетОбъект=Счет.ПолучитьОбъект();
СчетОбъект.Печать("Счет", 1, ИСТИНА);

выдаёт окно выбора принтера, а надо, чтобы обработка делала своё дело полностью автоматически?

Пробовал ещё что-то типа

ТабДок = УниверсальныеМеханизмы.НапечататьДокументПоУмолчанию(СчетОбъект,1,Ложь);
ТабДок.ИмяПринтера="Kyocera FS-1120D (KPDL)";

Но не срабатывает, пишет значение ИмяПринтер не значение объектного типа

Uho 24.05.2012 15:46

[quote=Caballero;25213186]Пробовал ещё что-то типа ТабДок = УниверсальныеМеханизмы.НапечататьДокументПоУмолчан ию(СчетОбъект,1,Ложь); ТабДок.ИмяПринтера="Kyocera FS-1120D (KPDL)";[/quote]

я бы сначала посмотрел, что возвращает функция НапечататьДокументПоУмолчанию()

Caballero 24.05.2012 15:50

Сообщает "Да" :)

Uho 24.05.2012 15:53

И что платформа должна подразумевать под [b]Да.ИмяПринтера[/b]?

VZ 24.05.2012 16:09

ВаАбще-то, во-первых, надо бы убедится, что принтер есть, во вторых, неплохо весьма добавить имя задействованного принтера на морду обработки, и в третьих, надо добавить опцию задания принтера.
И уж совсем хорошо избавится от привычки давать принтеру длинные кудрявые имена, как испанскому гранду.

VZ 24.05.2012 16:12

+4 а еще в коде сабжа ересь, видимая невооруженному взгляду.

Caballero 24.05.2012 16:14

4-VZ > Принтер есть, это выдача по запросу

Caballero 24.05.2012 16:15

СписокПринтеров = Новый СписокЗначений;
СписокПринтеров.Очистить();
Принтеры = Новый COMОбъект("WScript.Network");
Prn = Принтеры.EnumPrinterConnections();
i = 0;
j = Prn.Count() - 1;
Пока i < j Цикл
СписокПринтеров.Добавить(Prn.Item(i + 1));
i = i + 1;
КонецЦикла;
Принтер = СписокПринтеров.ВыбратьЭлемент();
//даём пользователю выбрать принтер
Если Принтер <> Неопределено Тогда
Сообщить(Принтер.Значение); // например
КонецЕсли;

В коде ересь, я согласен. Поэтому и прошу помощи. С 1С не работал, а надо быстро подружиться.

Caballero 24.05.2012 17:03

Нашёл вот подходящий способ, но конфигурацию менять, к сожалению, нельзя:
[url]http://kb.mista.ru/article.php?id=677[/url]

VZ 24.05.2012 17:22

8-Caballero > Ну и? Нельзя, так нельзя. Загоняешь нужные функции в модуль свой обработки, и все.

Caballero 24.05.2012 18:49

9-VZ > То есть получается копировать всю функцию "печать" всех документов? Тогда при изменении печатных форм обязательно всё переписать не забывать надо... Мне кажется, должно быть проще всё... Или нет?
А альтернативный вариант - как обработкой сохранять эти документы в какой-нибудь общеупотребительный формат DOC, XLS или PDF?

МимохожийОднако 24.05.2012 22:06

В последней платформе есть печать в ПДФ

Caballero 25.05.2012 08:51

11-МимохожийОднако >Есть какой-нибудь хороший пример?
Блин... Хотелось правда, чтобы всё это 1с сама делала, а не напрягать ещё одно звено в виде скрипта печати

Uho 25.05.2012 09:36

у печатных форм есть параметр ИмяПараметровПечати, можно попробовать до печати переопределить ИмяПринтера

ЗЫ. а вообще автор еще не указал конфигурацию, и не сказал, зачем вообще нужно на [b]другой [/b]принтер печатать все подряд

Caballero 25.05.2012 10:30

13-Uho > Каким образом?
Бухгалтерия Проф 2.0, 1С Предприятие 8.2
Из обработки нужно генерировать комплект документов и отправлять их на принтер менеджерам автоматически.

Uho 25.05.2012 10:50

Так принтер то всегда один или нет?

Caballero 25.05.2012 10:56

В обработке принтер всегда один. Хрен с ним, пусть уж будет такой же, как выбранный в системе по умолчанию - поставим 1с на отдельную машину для печати, но лишь бы автоматически делало, а не показывало окно выбора каждый раз... Это ж застрелиться можно

Uho 25.05.2012 11:03

16-Caballero > тогда все просто: СчетОбъект.Печать("Счет", 1, ИСТИНА, ИСТИНА);

ЗЫ. а еще в БП есть штатная групповая печать

Caballero 25.05.2012 11:09

17-Uho >Фуууух..... You made my day! Спасибо!


Текущее время: 04:11. Часовой пояс GMT +3.