Печать этикеток на специализированных термопринтерах (например, Godex, Zebra, TSC) через табличные документы 1С нередко сопровождается типичными ошибками: макет разбивается на множество пустых страниц, выводятся стандартные листы формата А4, текст печатается чересчур мелким или платформа игнорирует заданные программно поля и масштаб. Разберем по шагам, почему возникают подобные сложности и как правильно настроить вывод этикетки на печать как интерактивно, так и на уровне встроенного языка 1С.
Когда мы сталкиваемся с тем, что одна этикетка разбивается на 10–15 страниц или отображается нечитаемым микрошрифтом, причиной обычно выступает комплекс факторов:
КлючПараметровПечати): платформа 1С автоматически сохраняет и восстанавливает настройки печати (поля, ориентацию, масштаб) для каждого зарегистрированного ключа. Если однажды пользователь открыл форму с полями по 10 мм и масштабом 100%, эти сохраненные настройки будут перетирать любые программные установки свойств ПолеСлева, ПолеСверху или АвтоМасштаб.АвтоМасштаб = Истина, 1С пытается уместить абсолютно всю рабочую область на крошечный размер этикетки, что приводит к экстремальному уменьшению масштаба.ТабличныйДок.РазмерСтраницы = "Custom" в среде Windows поддерживается драйверами не всегда предсказуемо. Термопринтеры требуют выбора строго зарегистрированного формата этикетки.Рассмотрим самый быстрый способ настройки, который отлично подходит для пользователей и администраторов без масштабного изменения программного кода. Выполним следующие шаги:
Показать() вместо прямой отправки на печать. В окне предварительного просмотра 1С перейдем в параметры страницы, выберем целевой принтер этикеток, укажем созданный нами формат бумаги (например, «Этикетка 24х44»), обнулим поля (поставим 0 мм) и выберем масштаб «По ширине страницы» или 100%.Разберем, как программно гарантировать корректный вывод этикетки, исключив конфликт с кэшированными настройками и принтером А4. Главное правило — назначать имя принтера и сбрасывать сохраненные параметры ДО установки полей и размеров страницы.
Посмотрим на пример правильного формирования параметров табличного документа:
// Инициализируем табличный документ
ТабличныйДок = Новый ТабличныйДокумент;
// 1. Очищаем ключ параметров печати, чтобы платформа не тянула старые настройки из кэша
ТабличныйДок.КлючПараметровПечати = "";
// 2. Явно назначаем имя целевого принтера в Windows
ТабличныйДок.ИмяПринтера = "Godex G500";
// 3. Указываем точное системное наименование формата бумаги из драйвера
ТабличныйДок.РазмерСтраницы = "Этикетка_24х44";
// 4. Обнуляем непечатные поля
ТабличныйДок.ПолеСверху = 0;
ТабличныйДок.ПолеСнизу = 0;
ТабличныйДок.ПолеСлева = 0;
ТабличныйДок.ПолеСправа = 0;
// 5. Управляем масштабом: отключаем автоужатие и задаем точный 100% масштаб
ТабличныйДок.АвтоМасштаб = Ложь;
ТабличныйДок.МасштабПечати = 100;
// Выводим секции макета и отправляем на печать
ТабличныйДок.Вывести(ОбластьЭтикетка);
ТабличныйДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
Проанализируем ключевые моменты этого кода:
КлючПараметровПечати = "" гарантирует, что 1С выполнит инструкции из кода, а не подставит пользовательские поля по 10 мм из памяти предыдущих сеансов.ИмяПринтера переключает внутренние алгоритмы верстки 1С на метрики термопринтера еще до того, как таблица будет выведена.АвтоМасштаб = Истина в пользу МасштабПечати = 100 исключает сжатие шрифта из-за случайных пустых пикселей или широких границ ячеек.Если печать через табличный документ 1С продолжает вызывать сложности со смещением линий или нечеткостью мелких штрихкодов, рассмотрим альтернативные механизмы: