Необходимо растянуть штрихкод

1. Gendalf_beliy 07.10.14 17:23 Сейчас в теме
Есть конфа "1с ювелирный магазин" (та же Розница). Обработкой хочу напечатать ценники (бирки) стандартной обработкой.
В шаблоне ценника штрихкод отображается нормально. При выводе на печать тоже нормально. Но уже в предварительном просмотре видно, что он сужен по горизонтали. Как исправить?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexey_ 27 07.10.14 17:25 Сейчас в теме
(1) Gendalf_beliy, а масштаб какой у табдока?
9. Xershi 1486 08.10.14 10:34 Сейчас в теме
(1) Gendalf_beliy, это известный баг. Не скажу толи 1С, толи вашего драйвера. Нажмите плюсик должно увеличить и нормально показать. Если печатает нормально, то это всего лишь проблема предварительного просмотра...
10. user950027 28.06.18 15:33 Сейчас в теме
(1) Как я решил проблему, потратив 6 часов... Самое главное, что я заметил: штрихкод не растягивается по ширине, если вы выставили ему ширину меньше какого-то значения. Просто увеличивайте размер штрихкода, пока его свойство "растягивать" не начнет работать. Только придется подогнать весь остальной макет под новые размеры штрихкода, увеличить область печати. Если 1С не хочет сохранять увеличенный макет, пишет "количество [ценников] на странице по горизонтали должно быть 0", значит макет не влезает в размеры листа, настройте там же в макете параметры страницы, обнулите отступы от караев листа, поставьте масштаб "по ширине", и временно увеличьте в настройках дравера принтера размеры листа, например, с 58х40 до 580х400, лишь бы макет сохранился. После сохранения макета верните размеры обратно. Эксперементируйте.
user1964743; transt; +2 Ответить
13. user1964743 21.03.24 11:53 Сейчас в теме
(10) Спасибо большое тебе, умный человек!!!
3. Gendalf_beliy 07.10.14 17:25 Сейчас в теме
Пробовал скопировать рисунок штрихкода из УТП не помогло, вместо рисунка закрашенная красными диагональными линиями область. При редактирование свойства "Элемент управления 1с: Печать штрихкодов" изменения не сохраняются (ни выравнивание текста, ни размер шрифта для размера цифр).
4. Gendalf_beliy 07.10.14 17:27 Сейчас в теме
Этот странный шаблон вообще редактируется в режиме предприятия. При печати выбираю масштаб по ширине страницы.
5. Gendalf_beliy 07.10.14 17:28 Сейчас в теме
Если табличный документ отредактировать перед самой печатью печатается нормально. Но перед печатью редактировать табличный документ с сотней ценников не вариант :(
user1030760; +1 Ответить
6. Alexey_ 27 07.10.14 17:29 Сейчас в теме
(5) Gendalf_beliy, каким образом отредактировать?
7. Gendalf_beliy 07.10.14 17:37 Сейчас в теме
(6) Alexey_, щелкнув по изображению штрихкода правой кнопкой мыши и выбраав пункты меню "Элемент управления 1с: Печать штрихкодов" - Свойства - Оформление - Выравнивание текста устанавливаю "растянуть". При таком редактировании даже размер шрифта цифр менять не надо они корректно отображаются. Если таким же образом отредактировать шаблон, то эти изменения не сохраняются :( Почему не могу понять.
8. Gendalf_beliy 08.10.14 10:25 Сейчас в теме
Способ указанный тут http://forum.infostart.ru/forum26/topic53463/ не помогает.
Ставите указатель на штрихкод, правой кнопкой мыши, свойства и в самом верху окошка свойств выбираете элемент управления 1с:печать штрихкодов вместо "рисунок". Снимаете галочку напротив "Из стиля" и ставите нужный вам размер шрифта, затем все сохраняете и вуаля! все работает как надо!

Все равно изменения растягивания картинки штрихкода не сохраняются в макете
11. fixin 4253 21.04.22 15:14 Сейчас в теме
Я добавил умножение ширины на коэффициент в
Обработки.ПечатьЭтикетокИЦенников.СформироватьПечатныеФормыЭтикетокИЦенников

#Вставка
  ПараметрыШтрихкода.Ширина = ПараметрыШтрихкода.Ширина * 1.4;
#КонецВставки


Так пробовал, не помогает:
&Вместо("ИзображениеШтрихкода")
Функция дор_ИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода)
	Если ПараметрыШтрихкода.Свойство("УбратьЛишнийФон") Тогда
		Сообщить("Удалить лишний фон: " + ПараметрыШтрихкода.УбратьЛишнийФон);
	КонецЕсли;
	ПараметрыШтрихкода.Вставить("УбратьЛишнийФон", истина);
	Результат = ПродолжитьВызов(ВнешняяКомпонента, ПараметрыШтрихкода);
	Возврат Результат;
КонецФункции

Показать


Хотя нет, окончательное решение - делать в свойствах картинки растягивать, а в самой картинке задавать убирать лишний фон, так растягивает (в коде видите гипотезу, что размер пикселей по ширине другой, но это не так):

#Вставка
								//КоличествоМиллиметровВПикселеПоШирине = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
								//ПараметрыШтрихкода.Ширина = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеПоШирине);
								ПараметрыШтрихкода.Вставить("УбратьЛишнийФон", Истина);
#КонецВставки


Т.е. картинка генерируется на всю ширину и потом еще растягивается.
12. fixin 4253 21.04.22 16:00 Сейчас в теме
Хотя нет, не помогло, в итоге сделал так:
							Если ЗначениеЗаполнено(ЗначениеШтрихкода) Тогда

								ПараметрыШтрихкода = Новый Структура;
								ПараметрыШтрихкода.Вставить("Ширина",	Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселе));
#Вставка
								ИскОбласть = СтруктураШаблона.МакетЭтикетки.НайтиТекст("$ШиринаКартинкиШК*",,,,ложь,,ложь); //ищем не целиком, с учетом регистра
								Если ИскОбласть <> Неопределено Тогда
									ТекКоэффициент = Число(СокрЛП(Сред(ИскОбласть.Текст, 19)));
									Сообщить("Умножаем ширину картинки ШК на:" + ТекКоэффициент);
									ПараметрыШтрихкода.Ширина = Окр(ПараметрыШтрихкода.Ширина * ТекКоэффициент);
								КонецЕсли;
								//КоличествоМиллиметровВПикселеПоШирине = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
								//ПараметрыШтрихкода.Ширина = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеПоШирине);
								//ПараметрыШтрихкода.Вставить("УбратьЛишнийФон", Истина);
#КонецВставки
								ПараметрыШтрихкода.Вставить("Высота",	Окр(Рисунок.Высота / КоличествоМиллиметровВПикселе));

								Если СтруктураШаблона.ТипКода = 16 Тогда
									МинСторона = Мин(ПараметрыШтрихкода.Ширина, ПараметрыШтрихкода.Высота);
									ПараметрыШтрихкода.Ширина = МинСторона;
									ПараметрыШтрихкода.Высота = МинСторона;
								КонецЕсли;

								Если СтруктураШаблона.Свойство("УровеньКоррекцииQR") Тогда
									ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", СтруктураШаблона.УровеньКоррекцииQR);
								Иначе
									ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", 0);
								КонецЕсли;

								ПараметрыШтрихкода.Вставить("Штрихкод",				ЗначениеШтрихкода);
								ПараметрыШтрихкода.Вставить("ТипКода",				СтруктураШаблона.ТипКода);
								ПараметрыШтрихкода.Вставить("ОтображатьТекст",		СтруктураШаблона.ОтображатьТекст);
								ПараметрыШтрихкода.Вставить("РазмерШрифта",			СтруктураШаблона.РазмерШрифта);

								Если СтруктураШаблона.Свойство("УголПоворота") Тогда
									ПараметрыШтрихкода.Вставить("УголПоворота", СтруктураШаблона.УголПоворота);
								КонецЕсли;

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

#Вставка
								ИскОбласть = СтруктураШаблона.МакетЭтикетки.НайтиТекст("$ШиринаРисункаШК*",,,,ложь,,ложь); //ищем не целиком, с учетом регистра
								Если ИскОбласть <> Неопределено Тогда
									ТекКоэффициент = Число(СокрЛП(Сред(ИскОбласть.Текст, 18)));
									Сообщить("Умножаем ширину рисунка ШК на:" + ТекКоэффициент);
									Рисунок.Ширина = Окр(Рисунок.Ширина * ТекКоэффициент);
								КонецЕсли;
								//КоличествоМиллиметровВПикселеПоШирине = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 100;
								//ПараметрыШтрихкода.Ширина = Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеПоШирине);
								//ПараметрыШтрихкода.Вставить("УбратьЛишнийФон", Истина);
#КонецВставки
							КонецЕсли;
Показать


И в самом макете подобрал:
$ШиринаКартинкиШК*1.5
$ШиринаРисункаШК*1.3
Night_Trap; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот