Проблема с «летающими» параметрами печати этикеток и ценников — одна из самых досадных и распространенных в конфигурациях на базе 1С:Предприятие 8.3, таких как «Управление торговлей 11». Пользователи часто сталкиваются с ситуацией, когда выставленные один раз поля, масштаб и ориентация страницы сбрасываются при следующем открытии формы или вовсе ведут себя непредсказуемо: на предварительном просмотре этикетка выглядит корректно, а на печать уходит пустой лист или обрывок макета.
Разберем подробно причины этого поведения и рассмотрим комплексное решение проблемы, охватывающее как программную правку конфигурации, так и настройку системных параметров драйверов.
Проанализируем программную сторону вопроса. В платформе 1С существует свойство ТабличныйДокумент.ИмяПараметровПечати. Именно по этому строковому идентификатору система запоминает настройки (поля, масштаб, принтер) для конкретного пользователя.
Если в конфигурации используется несколько разных шаблонов этикеток (например, 30x20 и 58x40), но для формирования табличного документа используется одно и то же ИмяПараметровПечати, происходит конфликт. Настройки одного макета «перетирают» настройки другого. Чтобы исправить это, нам необходимо обеспечить уникальность этого имени для каждого типа макета.
Рассмотрим пример доработки в обработке ПечатьЭтикетокИЦенников. В процедуре СформироватьПечатныеФормыЭтикетокИЦенниковТоваров можно добавить суффикс к имени параметров, чтобы система разделяла настройки для разных шаблонов:
// В цикле формирования печатных форм добавляем уникальный префикс
НоваяСтрока.ТабличныйДокумент.ИмяПараметровПечати = ВРег(СтрЗаменить(ПечатнаяФорма.СинонимМакета, " ", "")) + "_ДОРАБОТКА";
Этот подход заставит 1С сохранять индивидуальный набор параметров для каждого синонима макета, что исключит влияние настроек одной этикетки на другую.
Выясним, где хранятся эти настройки внутри самой информационной базы. 1С сохраняет пользовательские предпочтения в специальном системном хранилище. Со временем там могут накопиться некорректные или конфликтующие записи.
Для решения проблемы выполним следующие шаги:
После этой процедуры при следующей печати 1С предложит настроить параметры «с чистого листа», и они будут корректно записаны в базу данных.
Посмотрим на техническую сторону взаимодействия платформы и операционной системы. 1С хранит локальные параметры принтеров в файле v8printer.lst. Этот файл находится в профиле пользователя Windows (обычно в папке %AppData%\Roaming\1C\1cv8\...). Если файл поврежден или заблокирован антивирусом, изменения параметров печати не будут фиксироваться.
Рекомендуется при закрытой программе 1С полностью удалить папку кэша пользователя или найти и удалить конкретно файл v8printer.lst. При следующем запуске платформа пересоздаст его, что часто решает проблему «несохраняющихся» полей.
Часто системные администраторы настраивают принтер через «Свойства принтера», однако 1С обращается к разделу Настройки печати (Printing Preferences). Если там по умолчанию установлен формат бумаги A4, платформа будет пытаться вписать маленькую этикетку в этот формат, что приводит к диким масштабам или огромным полям.
Выполним правильную настройку драйвера:
Важный нюанс: Для принтеров марок Zebra, TSC или Xprinter стандартные драйверы Windows могут работать нестабильно. Опытные специалисты рекомендуют использовать драйверы от компании Seagull Scientific. Они гораздо корректнее передают метрические данные в 1С и позволяют жестко фиксировать макет.
Проанализируем ситуацию, когда масштаб «улетает» из-за разницы в единицах измерения. Если в региональных настройках Windows (Панель управления — Региональные стандарты) установлены США или другая страна, использующая дюймовую систему, 1С может некорректно интерпретировать размеры полей, передаваемые драйвером в миллиметрах.
Убедимся, что в системе установлена Россия и Метрическая система мер. Это гарантирует, что 1 мм в макете 1С будет равен 1 мм в драйвере принтера.
Если печать этикеток ведется в терминальной сессии, проблема может быть вызвана «пробросом» принтеров (redirected printers). При каждом новом входе в систему принтер получает новый номер сессии в названии, например Xprinter (redirected 2). Платформа 1С воспринимает его как абсолютно новое устройство и не находит для него ранее сохраненных настроек.
Для стабилизации печати в RDP рекомендуется:
Для гарантированного решения проблемы «слетающих» параметров печати в УТ 11 мы рекомендуем комбинированный подход:
ИмяПараметровПечати в коде или через расширение.v8printer.lst на локальном ПК.Соблюдение этих шагов позволит навсегда забыть о ручной корректировке масштаба и полей при каждой печати ценников.