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

как "подогнать" ценники под принтер атол

Автор albus, 18 окт 2017, 20:05

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

albus

Здравствуйте!
Огромная просьба помочь разобраться с одной проблемкой. Уверен почему-то, что решение там простое, но никак не могу до него добраться.
Конфигурация Управление розничной торговлей склад (2.0.1.7), доработанная. Имеется внешняя обработка "печать ценников", где присутствует такой код:

Отказ = Ложь;
т = 1;
Макет = ПолучитьОбщийМакет("Ценник");
МакетСкидка = ПолучитьОбщийМакет("ЦенникСоСкидкой");
ТабДок = Новый ТабличныйДокумент();
Уровень = 0;
ВсегоСтрок = 1;

Для Каждого Товар ИЗ товары Цикл

Колво = Товар.Количество;

Если ЗначениеЗаполнено(Товар.Скидка) Тогда
Заполнение = МакетСкидка.ПолучитьОбласть("Заполнение");
Заполнение.Параметры.НоваяЦена = Строка(Товар.Цена*(100-Товар.Скидка)/100) + " р.";
Иначе
Заполнение = Макет.ПолучитьОбласть("Заполнение");
КонецЕсли;

ПрефиксНаименования = СокрЛП(Товар.Номенклатура.НоменклатурнаяГруппа.НаименованиеДляЦенника);
Если ЗначениеЗаполнено(ПрефиксНаименования) Тогда
ПрефиксНаименования = ПрефиксНаименования + Символы.ПС;
КонецЕсли;

СтранаПроизводитель = Товар.Номенклатура.Родитель.СтранаПроизводитель;
Если Не ЗначениеЗаполнено(СтранаПроизводитель) И ЗначениеЗаполнено(Товар.Номенклатура.Родитель.Родитель) Тогда
СтранаПроизводитель = Товар.Номенклатура.Родитель.Родитель.СтранаПроизводитель;
КонецЕсли;

Заполнение.Параметры.Организация                = "ООО """ + Организация.Наименование + """";
Заполнение.Параметры.Дата                 = Формат(ТекущаяДата(), "ДЛФ=D");
Заполнение.Параметры.Модель = ПрефиксНаименования + Товар.Номенклатура.Наименование;
Заполнение.Параметры.Цена                       = Строка(Товар.Цена) + " р.";
Заполнение.Параметры.Страна = СтранаПроизводитель.Наименование;

Для ИС = 1 ПО Колво Цикл    

ТабДок.Присоединить(Заполнение); 
Уровень  = Уровень      + 1;

Если Уровень = 5 тогда
ТабДок.Вывести(Заполнение);
Уровень = 1;
ВсегоСтрок = ВсегоСтрок + 1;
КонецЕсли;  

Если ВсегоСтрок = 5 Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
ВсегоСтрок = 0;
КонецЕсли;

КонецЦикла;

КонецЦикла;  

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



При его выполнении в программе получается, как на приложенной картинке. При этом при выводе на печать через стандартный принтер никаких проблем нет, все распечатывается как надо.
Задача моя состоит в том, чтобы эти ценники можно было напечатать на ленте через принтер атол (размер ценника 40х20).
Что для этого нужно сделать?
Подшаманить макет? Внести определенные изменения в код?

Буду очень признателен за помощь!! И даже заплатить готов за грамотное решение ;)



oleg-x

Увидеть бы еще сам макет.
Добавлено: 19 окт 2017, 15:15


И пытались просто распечатать на принтер атол, как вывел?
Есть несколько вариантов:
1) отправлять на принтер чеков по отдельности каждую этикетку.
2) Поиграться с маштабом по ширине
3) Вывод сделать не горизонтальный, а вертикальный. То есть не присоединять в начале цикла, а выводить в таб документ в конце цикла.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

albus

Цитата: oleg-x от 19 окт 2017, 14:43
Увидеть бы еще сам макет.
Добавлено: 19 окт 2017, 15:15


И пытались просто распечатать на принтер атол, как вывел?
Есть несколько вариантов:
1) отправлять на принтер чеков по отдельности каждую этикетку.
2) Поиграться с маштабом по ширине
3) Вывод сделать не горизонтальный, а вертикальный. То есть не присоединять в начале цикла, а выводить в таб документ в конце цикла.
В макете задаю область печати с размерами 40мм Х 20мм (в настройках принтера тоже), в табдоке на экране все выводится вроде бы как надо, с вертикальным расположением (как на картинке во вложении). Однако когда отправляю на атол, то 3 несчастных ценника превращаются в 12 страниц, в итоге на ленте получается черт знает что: название модели на одной наклейке, цена к ней появляется через десять пустых наклеек. Никак не пойму, почему такая ерунда

oleg-x

Попробуй задать автомаштаб
ТабДок.АвтоМасштаб = Истина;
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

albus

Цитата: oleg-x от 19 окт 2017, 17:31
Попробуй задать автомаштаб
ТабДок.АвтоМасштаб = Истина;
ты мегамозг, дружище!!!

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск