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

Штрихкод документа на печать

Автор SkyNetYar, 27 авг 2015, 17:00

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

SkyNetYar

Добрый день!
Пытаюсь вывести штрихкод документа во внешнюю печатную форму,что не получается,подскажите.
Выдрал картинку из стандартной формы,вставил ее на свой макет

ОбластьЗаголовокШК = Макет.ПолучитьОбласть("ОбластьШтрихкода");
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовокШК, ВыборкаПоДокументам.Ссылка);
ТабличныйДокумент.Вывести(ОбластьЗаголовокШК);


Это код оригинала,там выводит нормально
ОбластьЗаголовок.Параметры.ТекстЗаголовка = Заголовок; 
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовок, ВыборкаПоДокументам.Ссылка);
ТабличныйДокумент.Вывести(ОбластьЗаголовок);


Сама картинка штрихкода на печатной форме находится в секции "ОбластьШтрихкода"

Дмитрий@

Текст процедуры ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовок, ВыборкаПоДокументам.Ссылка);
скиньте

SkyNetYar

ОбщийМодуль.ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент

Процедура ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Знач ОбластьМакета, Ссылка) Экспорт

УстановитьПривилегированныйРежим(Истина);

ВыводитьШтрихкодВОтдельнуюОбласть = Ложь;
Если Не ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакета) Тогда
// Картинки штрихкода в этой области макета нет.

Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда

// Проверить картинку штрихкода в области "Штрихкод"
ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода");
Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда
ОбластьМакета = ОбластьМакетаШтрихкод;
ВыводитьШтрихкодВОтдельнуюОбласть = Истина;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;

КонецЕсли;

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьШтрихкодированиеПечатныхФормОбъектов") Тогда
ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.КартинкаШтрихкода);
Возврат;
КонецЕсли;

Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;

ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Штрихкод",        СокрЛП(ЧисловойКодПоСсылке(Ссылка)));
ПараметрыШтрихкода.Вставить("ТипКода",         4); // Code128
ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь);
ПараметрыШтрихкода.Вставить("РазмерШрифта",    6);

ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);

Если ВыводитьШтрихкодВОтдельнуюОбласть Тогда
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;

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


Может надо как то через ПолучитьФункциональнуюОпцию("ИспользоватьШтрихкодированиеПечатныхФормОбъектов") надо?
На подобии этого

Если ПолучитьФункциональнуюОпцию("ИспользоватьШтрихкодированиеПечатныхФормОбъектов") Тогда
            ОбластьЗаголовокШК = Макет.ПолучитьОбласть("ОбластьШтрихкода");
            ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьЗаголовокШК, ВыборкаПоДокументам.Ссылка);
        Иначе
            ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        КонецЕсли;


В общем запутался я что то..


Дмитрий@

Первое что бросается в глаза, это то что вы вызове процедуры задаете одну область, а ищете картинку в другой.

Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда
           
            // Проверить картинку штрихкода в области "Штрихкод"
            ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода");
            Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда
                ОбластьМакета = ОбластьМакетаШтрихкод;
                ВыводитьШтрихкодВОтдельнуюОбласть = Истина;
            Иначе
                Возврат;
            КонецЕсли;
        Иначе
            Возврат;
        КонецЕсли;
       
    КонецЕсли;

Теги:

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

Рейтинг@Mail.ru

Поиск