Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:57

Печать этикетки из документа

Автор SkyNetYar, 11 сен 2015, 12:11

0 Пользователей и 1 гость просматривают эту тему.

SkyNetYar

Добрый день! УТ 11.1.10.167 доработанная
Имеется добавленный документ,на форме которого необходимо сделать кнопку,при нажатии на которую печаталась бы этикетка на товар на принтере этикеток с уже заготовленной формой.
Подскажите пожалуйста как реализовать?
Мои мысли пометить кнопку,привязать команду,создать макет,печатать сразу на указанный принтер без пред просмотров.

Дмитрий@

Вы же сами написали как это реализовать, что конкретно у вас не получается: поместить кнопку на форму.....

SkyNetYar

Цитата: Дмитрий@ от 11 сен 2015, 12:13
Вы же сами написали как это реализовать, что конкретно у вас не получается: поместить кнопку на форму.....
Все получилось,только не знаю как саму функцию написать что бы сразу на принтер летело с уже заданными размерами и ошибку если принтер не подключен\включен

&НаКлиенте
Функция ПечатьЭтикетки(ДокСсылка) Экспорт

ТабДокумент = Новый ТабличныйДокумент;
Макет = ДокСсылка.ПолучитьОбъект().ПолучитьМакет("ПечатьЭтикетки");
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

        ОбластьМакета.Параметры.тратата = тратата


     ТабДокумент.Вывести(ОбластьМакета);
    Возврат ТабДокумент;
КонецФункции

vitasw

ТабДокумент.Напечатать();
СП = великая весч

SkyNetYar

А как задать размер 56х30 формат этикетки,что то не найду примера,как нарисовать табличный документ с заданными размерами и печатать с такими размерами..

vitasw

Методом научного тыка + по ширине листа

SkyNetYar

нашел..
ТабДокумент.ИмяПринтера = "ZDesigner LP 2824 Plus (ZPL)";
ТабДокумент.КоличествоЭкземпляров = 1;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.РазмерСтраницы="Custom";
ТабДокумент.ВысотаСтраницы=300;
ТабДокумент.ШиринаСтраницы=560;
Добавлено: 11 сен 2015, 14:08


Вот что получилось в итоге
Функция ПечатьЭтикетки(ДокСсылка) Экспорт

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.АвтоМасштаб = истина ;
ТабДокумент.ОтображатьСетку = Ложь;
ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.ОтображатьЗаголовки = Ложь;


    Макет = ДокСсылка.ПолучитьОбъект().ПолучитьМакет("ПечатьЭтикетки");
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

ОбластьМакета.Параметры.Заголовок     = "№ "+СокрЛП(ДокСсылка.Номер)+" от "+Формат(ДокСсылка.Дата,"ДЛФ=Д");


ТабДокумент.ИмяПринтера = "ZDesigner LP 2824 Plus (ZPL)";
    ТабДокумент.КоличествоЭкземпляров = 1;
    ТабДокумент.РазмерСтраницы="Custom";
    ТабДокумент.ВысотаСтраницы=300;
    ТабДокумент.ШиринаСтраницы=560;
ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСлева=0;
ТабДокумент.ПолеСправа=0;
ТабДокумент.ПолеСверху=0;
ТабДокумент.ПолеСнизу=0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
        ТабДокумент.Напечатать(истина);
Возврат ТабДокумент;
КонецФункции


Подскажите только если ошибка,например принтер выключен,как вывести сообщение ?
Добавлено: 11 сен 2015, 14:09


Цитата: SkyNetYar от 11 сен 2015, 13:51
нашел..
ТабДокумент.ИмяПринтера = "ZDesigner LP 2824 Plus (ZPL)";
ТабДокумент.КоличествоЭкземпляров = 1;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.РазмерСтраницы="Custom";
ТабДокумент.ВысотаСтраницы=300;
ТабДокумент.ШиринаСтраницы=560;
Добавлено: 11 сен 2015, 14:08


Вот что получилось в итоге
Функция ПечатьЭтикетки(ДокСсылка) Экспорт

ТабДокумент = Новый ТабличныйДокумент;


    Макет = ДокСсылка.ПолучитьОбъект().ПолучитьМакет("ПечатьЭтикетки");
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

ОбластьМакета.Параметры.Заголовок     = "№ "+СокрЛП(ДокСсылка.Номер)+" от "+Формат(ДокСсылка.Дата,"ДЛФ=Д");


ТабДокумент.ИмяПринтера = "ZDesigner LP 2824 Plus (ZPL)";
    ТабДокумент.КоличествоЭкземпляров = 1;
    ТабДокумент.РазмерСтраницы="Custom";
    ТабДокумент.ВысотаСтраницы=300;
    ТабДокумент.ШиринаСтраницы=560;
ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСлева=0;
ТабДокумент.ПолеСправа=0;
ТабДокумент.ПолеСверху=0;
ТабДокумент.ПолеСнизу=0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
        ТабДокумент.Напечатать(истина);
Возврат ТабДокумент;
КонецФункции


Подскажите только если ошибка,например принтер выключен,как вывести сообщение ?
Добавлено: 11 сен 2015, 16:04


Что то я заплелся выдает ошибку МетодОбъекта не обнаружен ПолучитьОбъект()


///////////////////////////////////////////////////////////Печать этикетки
&НаКлиенте
Процедура ОбработкаКомандыПечатьЭтикетки(ДокСсылка)
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент = ПечатьЭтикетки(ТабДокумент);
ТабДокумент.Показать("ПечатьЭтикетки");
КонецПроцедуры


&НаСервере
Функция ПечатьЭтикетки(ДокСсылка) Экспорт

ТабДокумент = Новый ТабличныйДокумент;

    Макет = ДокСсылка.ПолучитьОбъект().ПолучитьМакет("ПечатьЭтикетки");
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

ОбластьМакета.Параметры.Заголовок     = "№ "+СокрЛП(ДокСсылка.Номер)+" от "+Формат(ДокСсылка.Дата,"ДЛФ=Д");

ТабДокумент.ИмяПринтера = "ZDesigner LP 2824 Plus (ZPL)";
    ТабДокумент.КоличествоЭкземпляров = 1;
    ТабДокумент.РазмерСтраницы="Custom";
    ТабДокумент.ВысотаСтраницы=300;
    ТабДокумент.ШиринаСтраницы=560;
ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
ТабДокумент.ПолеСлева=0;
ТабДокумент.ПолеСправа=0;
ТабДокумент.ПолеСверху=0;
ТабДокумент.ПолеСнизу=0;
ТабДокумент.АвтоМасштаб = Истина;

//ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
    //ТабДокумент.Напечатать(истина);
ТабДокумент.Вывести(ОбластьМакета);
    Возврат ТабДокумент;


КонецФункции

Kironten

Вы параметром передаете в функцию табличный документ, а не ссылку на документ.
А потом еще и по чистому табличному документу пытаетесь получить объект, а по нему еще и макет.

SkyNetYar

Да,я там накуралесил :bleh:

Вот готовый вариант!
///////////////////////////////////////////////////////////Печать этикетки
&НаКлиенте
Процедура ОбработкаКомандыПечатьЭтикетки(ТабДокумент)
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент = ПечатьЭтикетки(ТабДокумент);

ТабДокумент.ИмяПринтера = "\\DYADYA-SERVER\ZDesigner LP 2824 Plus (ZPL)";
    ТабДокумент.КоличествоЭкземпляров = 1;
    ТабДокумент.РазмерСтраницы="Custom";
    ТабДокумент.ВысотаСтраницы=30;
    ТабДокумент.ШиринаСтраницы=58;
ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
ТабДокумент.ПолеСлева=0;
ТабДокумент.ПолеСправа=0;
ТабДокумент.ПолеСверху=0;
ТабДокумент.ПолеСнизу=0;
ТабДокумент.АвтоМасштаб = Истина;

ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.Использовать);

КонецПроцедуры


&НаСервере
Функция ПечатьЭтикетки(ТабДокумент) Экспорт

Макет = Документы.пмДокументСервиса.ПолучитьМакет("ПечатьЭтикетки");
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");

ОбластьМакета.Параметры.Заголовок     = "№ "+СокрЛП(Объект.Номер)+" от "+Формат(Объект.Дата,"ДЛФ=Д");

ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;

КонецФункции


Если кому то пригодится,можно сразу без диалоговых окон ,прямиком на принтер изменить:
ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

Luzer1C

Может так попробовать?
Попытка
    ТабДокумент.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
Исключение
    Сообщить("Включите принтер");
КонецПопытки;
Халамбалам.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск