Почему при печати этикеток в 1С:УТ 11 слетают параметры печати и как это исправить?

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

Проблема с «летающими» параметрами печати этикеток и ценников — одна из самых досадных и распространенных в конфигурациях на базе 1С:Предприятие 8.3, таких как «Управление торговлей 11». Пользователи часто сталкиваются с ситуацией, когда выставленные один раз поля, масштаб и ориентация страницы сбрасываются при следующем открытии формы или вовсе ведут себя непредсказуемо: на предварительном просмотре этикетка выглядит корректно, а на печать уходит пустой лист или обрывок макета.

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

Причина 1: Дублирование идентификатора настроек в коде

Проанализируем программную сторону вопроса. В платформе 1С существует свойство ТабличныйДокумент.ИмяПараметровПечати. Именно по этому строковому идентификатору система запоминает настройки (поля, масштаб, принтер) для конкретного пользователя.

Если в конфигурации используется несколько разных шаблонов этикеток (например, 30x20 и 58x40), но для формирования табличного документа используется одно и то же ИмяПараметровПечати, происходит конфликт. Настройки одного макета «перетирают» настройки другого. Чтобы исправить это, нам необходимо обеспечить уникальность этого имени для каждого типа макета.

Рассмотрим пример доработки в обработке ПечатьЭтикетокИЦенников. В процедуре СформироватьПечатныеФормыЭтикетокИЦенниковТоваров можно добавить суффикс к имени параметров, чтобы система разделяла настройки для разных шаблонов:


// В цикле формирования печатных форм добавляем уникальный префикс
НоваяСтрока.ТабличныйДокумент.ИмяПараметровПечати = ВРег(СтрЗаменить(ПечатнаяФорма.СинонимМакета, " ", "")) + "_ДОРАБОТКА";

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

Причина 2: Засорение хранилища настроек пользователя

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

Для решения проблемы выполним следующие шаги:

  1. Зайдем в раздел Администрирование — Обслуживание.
  2. Перейдем по ссылке Управление настройками пользователей.
  3. Выберем пункт Очистка настроек.
  4. Найдем настройки, связанные с печатью этикеток для проблемного пользователя, и удалим их.

После этой процедуры при следующей печати 1С предложит настроить параметры «с чистого листа», и они будут корректно записаны в базу данных.

Причина 3: Конфликт с драйвером принтера и файлом v8printer.lst

Посмотрим на техническую сторону взаимодействия платформы и операционной системы. 1С хранит локальные параметры принтеров в файле v8printer.lst. Этот файл находится в профиле пользователя Windows (обычно в папке %AppData%\Roaming\1C\1cv8\...). Если файл поврежден или заблокирован антивирусом, изменения параметров печати не будут фиксироваться.

Рекомендуется при закрытой программе 1С полностью удалить папку кэша пользователя или найти и удалить конкретно файл v8printer.lst. При следующем запуске платформа пересоздаст его, что часто решает проблему «несохраняющихся» полей.

Причина 4: Приоритет системных настроек драйвера (Printing Preferences)

Часто системные администраторы настраивают принтер через «Свойства принтера», однако 1С обращается к разделу Настройки печати (Printing Preferences). Если там по умолчанию установлен формат бумаги A4, платформа будет пытаться вписать маленькую этикетку в этот формат, что приводит к диким масштабам или огромным полям.

Выполним правильную настройку драйвера:

  1. Перейдем в Панель управления — Устройства и принтеры.
  2. Нажмем правой кнопкой мыши на принтер этикеток и выберем Настройки печати.
  3. На вкладке параметров страницы создадим Новый размер бумаги, точно соответствующий физическому размеру вашей ленты (например, 58мм на 40мм).
  4. Установим все поля (верхнее, нижнее, левое, правое) в значение 0.
  5. Сохраним эти настройки как профиль по умолчанию.

Важный нюанс: Для принтеров марок Zebra, TSC или Xprinter стандартные драйверы Windows могут работать нестабильно. Опытные специалисты рекомендуют использовать драйверы от компании Seagull Scientific. Они гораздо корректнее передают метрические данные в 1С и позволяют жестко фиксировать макет.

Причина 5: Региональные стандарты и единицы измерения

Проанализируем ситуацию, когда масштаб «улетает» из-за разницы в единицах измерения. Если в региональных настройках Windows (Панель управления — Региональные стандарты) установлены США или другая страна, использующая дюймовую систему, 1С может некорректно интерпретировать размеры полей, передаваемые драйвером в миллиметрах.

Убедимся, что в системе установлена Россия и Метрическая система мер. Это гарантирует, что 1 мм в макете 1С будет равен 1 мм в драйвере принтера.

Причина 6: Особенности работы через RDP

Если печать этикеток ведется в терминальной сессии, проблема может быть вызвана «пробросом» принтеров (redirected printers). При каждом новом входе в систему принтер получает новый номер сессии в названии, например Xprinter (redirected 2). Платформа 1С воспринимает его как абсолютно новое устройство и не находит для него ранее сохраненных настроек.

Для стабилизации печати в RDP рекомендуется:

Подведение итогов

Для гарантированного решения проблемы «слетающих» параметров печати в УТ 11 мы рекомендуем комбинированный подход:

  1. Программный: Добавить уникальные префиксы к свойству ИмяПараметровПечати в коде или через расширение.
  2. Административный: Очистить настройки пользователя в базе и удалить файл v8printer.lst на локальном ПК.
  3. Настроечный: Выставить корректный размер бумаги и нулевые поля непосредственно в Настройках печати драйвера принтера (желательно от Seagull Scientific).

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

← На главную