Как убрать границы этикетки и сохранить настройки принтера в 1С:УНФ 3.0?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

При создании и печати этикеток в 1С:УНФ 3.0 пользователи часто сталкиваются с двумя основными проблемами: нежелательными границами вокруг этикетки, которые появляются только при печати или предпросмотре, и несохраняющимися настройками принтера. В этой статье мы подробно разберем, как решить эти задачи, используя как программные методы, так и настройки интерфейса.

Удаление нежелательных границ вокруг этикетки

Одна из наиболее частых проблем при работе с пользовательскими шаблонами этикеток в 1С:УНФ 3.0 заключается в появлении пунктирных или сплошных границ, которые отсутствуют в режиме редактирования шаблона, но видны в предварительном просмотре или на печати — для редактирования без программирования есть визуальный редактор макетов печатных форм для 1С. Выясним причину такого поведения и предложим несколько решений.

Причина появления границ

Как показывает практика, такие границы часто добавляются программно самой системой 1С, особенно если используется тип принтера "Обычный принтер". Система автоматически "обводит" область этикетки, используя объект Линия с определенным типом, например, ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир. Это делается для визуального выделения этикетки на листе, но может быть нежелательным для специфических дизайнерских решений или термопринтеров.

Решение 1: Программное изменение кода через расширение

Наиболее эффективный способ убрать программно вставленные границы — это модифицировать код, который их добавляет — для этой задачи пригодится инструментарий разработчика для отладки кода 1С. Мы настоятельно рекомендуем вносить любые изменения в конфигурацию через расширение, чтобы сохранить возможность безболезненного обновления системы.

  1. Идентификация модуля и процедуры: Нам необходимо найти модуль, отвечающий за формирование печатных форм этикеток. В 1С:УНФ 3.0 это, как правило, Обработка.ПечатьЭтикетокИЦенниковБПО.МодульМенеджера. Внутри этого модуля мы ищем процедуру с названием СформироватьПечатныеФормы. Именно здесь происходит основная логика подготовки этикеток к печати.

  2. Поиск и удаление/комментирование строки: Внутри процедуры СформироватьПечатныеФормы мы должны обнаружить строки, отвечающие за создание объекта Линия и его применение для обводки макета. Обратим внимание на следующие конструкции:

    Строка создания линии, которая может выглядеть так:

    Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.РедкийПунктир,1);

    Эта строка создает объект Линия, определяя ее тип (в данном случае, редкий пунктир) и толщину (1 пункт). После создания объекта Линия, она применяется к определенной области макета. Ищите строку, которая использует метод Обвести для объекта МакетЭтикетки:

    
    МакетЭтикетки.Область(1,1, ДанныеЭтикетки.Высота+1, ДанныеЭтикетки.Ширина+1).Обвести(Линия, Линия, Линия, Линия);
    

    Эта строка указывает на то, что определенная область макета (начиная с ячейки 1,1 и до ячейки, определяемой высотой и шириной этикетки) должна быть обведена со всех четырех сторон с использованием ранее созданного объекта Линия.

    Для удаления границ вам следует закомментировать или удалить эту строку. Если вы работаете через расширение, вы можете переопределить эту процедуру и удалить нужную строку из кода.

  3. Важное уточнение по границам: Сообщение 16 в форуме поднимает важный нюанс: программное изменение, описанное выше, убирает линию вокруг самой этикетки. Если вы наблюдаете рамку вокруг всего листа бумаги, на котором печатается несколько этикеток, это может быть отдельная проблема, связанная с настройками принтера или макета размещения этикеток на листе. В большинстве случаев пользователи жалуются именно на рамку вокруг отдельной этикетки, которую этот метод успешно убирает.

Решение 2: Использование типовых шаблонов как обходной путь

Если программное изменение кода по каким-либо причинам неприемлемо или вызывает сложности, существует более простой обходной путь — для этого отлично подойдёт универсальный конструктор макетов и шаблонов документов для 1С. Некоторые типовые шаблоны этикеток в 1С:УНФ 3.0 не имеют этих программно добавленных границ или обрабатывают их по-другому. Например, как упоминается в сообщении 6, шаблон "Этикетка (ценник) для товара" может работать без нежелательных рамок. Рассмотрим этот вариант:

  1. Выбор типового шаблона: Вместо создания нового шаблона с нуля или попытки исправить существующий, попробуйте использовать один из предустановленных шаблонов в 1С:УНФ 3.0.

  2. Настройка типового шаблона: Выберите шаблон, который работает корректно (например, "Этикетка (ценник) для товара"), и затем настройте его под свои нужды, изменяя текст, шрифты, расположение элементов, но избегая изменений, которые могут вновь активировать появление границ.

Решение 3: Проверка настроек в самом редакторе шаблона

Хотя основная причина границ часто программная, не стоит исключать возможность их установки непосредственно в редакторе шаблона. Проверим следующие аспекты:

  1. Раздел "Рамка": В редакторе шаблонов этикеток и ценников есть раздел "Рамка". Мы должны убедиться, что для ячеек по периметру этикетки не заданы видимые границы. Выделите интересующие ячейки и проверьте свойства рамки.

  2. Раздел "Оформление": Аналогично, в разделе "Оформление" убедитесь, что не выбраны стили, которые могут автоматически добавлять рамки или фон, имитирующий рамку.

  3. Свойства ячеек: Пройдитесь по ячейкам по периметру вашей этикетки (сообщение 13). Выделите их и проверьте их индивидуальные свойства, убедившись, что никакие границы не выставлены вручную. При необходимости, объедините несколько ячеек и снимите все границы для объединенной области.

Решение 4: Использование функции "Печать без полей" (если доступно принтером)

Если ваш принтер поддерживает функцию печати без полей, это также может помочь предотвратить появление некоторых видов границ или нежелательных отступов:

  1. Настройки "Параметры страницы": Перед печатью, в окне предварительного просмотра или через меню "Файл" -> "Параметры страницы", найдите опции, касающиеся полей.

  2. Очистка полей: Мы должны установить все поля (верхнее, нижнее, левое, правое) в значение "0". Если 1С предложит автоматически рассчитать поля, выберите "Нет".

Сохранение настроек принтера для печати этикеток

Вторая распространенная проблема заключается в том, что настройки принтера (например, размер бумаги, ориентация, поля) не сохраняются после закрытия окна печати или перезапуска 1С, и приходится каждый раз устанавливать их заново (сообщение 8, 10). Рассмотрим, как добиться сохранения этих настроек.

Причина несохранения настроек

Проблема может быть связана с несколькими факторами: отсутствием явного указания 1С на сохранение этих параметров для конкретного макета, особенностями драйверов принтера или спецификой настроек пользователя.

Решение 1: Программное сохранение параметров через общий модуль

Это наиболее надежный способ обеспечить сохранение настроек принтера для конкретного макета этикетки, так как он связывает параметры печати непосредственно с печатной формой.

  1. Идентификация модуля и функции: Нам потребуется общий модуль УправлениеПечатью и функция СформироватьПечатныеФормы. Эта функция отвечает за окончательное формирование печатных документов в системе.

  2. Добавление кода для сохранения параметров: Внутри последнего цикла формирования печатных форм (там, где происходит создание объекта ПечатнаяФорма) необходимо добавить следующую строку (сообщение 12):

    
    ПечатнаяФорма.ТабличныйДокумент.ИмяПараметровПечати = "ПЕЧАТЬ_ЭТИКЕТОК_" + ПечатнаяФорма.СинонимМакета;
    

    Разберем, что делает эта строка:

    • ПечатнаяФорма.ТабличныйДокумент: Это ссылка на табличный документ, который будет распечатан.
    • ИмяПараметровПечати: Это свойство табличного документа, которое позволяет присвоить уникальное имя набору параметров печати. Если для данного имени параметры были сохранены ранее, 1С будет использовать их при следующей печати документа с этим именем.
    • "ПЕЧАТЬ_ЭТИКЕТОК_" + ПечатнаяФорма.СинонимМакета: Мы формируем уникальное имя для параметров печати, используя префикс "ПЕЧАТЬ_ЭТИКЕТОК_" и добавляя синоним текущего макета. Это гарантирует, что настройки для каждого макета будут сохраняться отдельно, что важно для печати этикеток с остатками.
  3. Добавление условия: Критически важно добавить условие, чтобы этот код применялся только к нужным макетам этикеток, а не ко всем печатным формам в системе. Мы можем проверить ПечатнаяФорма.СинонимМакета или ПечатнаяФорма.ИмяМакета на соответствие имени вашего шаблона этикетки.

  4. Использование расширения: Как и в случае с удалением границ, все изменения в коде следует вносить через расширение.

Решение 2: Настройки в самом шаблоне этикетки

В редакторе шаблонов этикеток предусмотрена возможность сохранения параметров печати непосредственно в шаблоне. Мы должны проверить и настроить эти параметры:

  1. Открытие "Параметров печати": В редакторе шаблона этикетки найдите кнопку "Параметры печати" (сообщение 9). Откройте это диалоговое окно.

  2. Указание принтера и его настроек: Мы должны указать нужный принтер, размер бумаги (например, "бумага/размер", как упоминается в сообщении 11), ориентацию, поля и масштаб. После настройки обязательно сохраните шаблон. Эти параметры должны автоматически применяться при печати этикеток, созданных по этому макету.

Решение 3: Проверка драйвера принтера

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

  1. Совместимость драйверов: Некоторые драйверы, например, универсальные драйверы типа Seagull, могут некорректно взаимодействовать с 1С и не сохранять параметры страницы. В то время как драйверы, специально разработанные производителем принтера (например, GodexWindowsPrinterDrivers), часто работают без проблем.

  2. Использование официальных драйверов: Мы рекомендуем всегда использовать драйверы, поставляемые производителем вашего принтера. Если принтер не сертифицирован 1С, то параметры печати следует устанавливать непосредственно в свойствах принтера в операционной системе, а не пытаться сохранить их через 1С.

  3. Обновление драйвера: Убедитесь, что у вас установлена самая актуальная версия драйвера принтера.

Решение 4: Настройки пользователя и "Параметры страницы"

Также стоит рассмотреть общие настройки печати в 1С и операционной системе:

  1. Настройки пользователя в 1С: В редких случаях настройки могут быть специфичными для профиля пользователя 1С. Мы должны проверить общие настройки пользователя, связанные с печатью.

  2. Настройки "Параметры страницы" в окне предпросмотра: В окне предварительного просмотра перед печатью (обычно через кнопку "Еще" -> "Параметры страницы") можно настроить ориентацию, масштаб (например, "По ширине страницы") и поля. Эти настройки могут помочь корректно разместить этикетку на листе, но они могут не сохраняться автоматически, если не привязаны программно или к шаблону.

  3. Настройки принтера в ОС: В "Настройках" компьютера -> "Устройства" -> "Принтеры и сканеры" -> "Свойствах принтера" также есть раздел с масштабированием и размером бумаги. Мы должны проверить, что эти настройки соответствуют нашим требованиям.

Решение проблем с шаблонами этикеток и сохранением настроек принтера в 1С:УНФ 3.0 требует комплексного подхода. Мы рассмотрели как визуальные настройки в редакторе шаблонов, так и глубокие программные модификации, а также влияние драйверов принтера. Используя предложенные методы, вы сможете настроить печать этикеток максимально эффективно и добиться желаемого результата.

← На главную