Почему в 1С не сохраняются параметры печати этикеток и как это исправить?

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

Многие пользователи 1С при работе с торговым оборудованием сталкиваются с досадной ситуацией: настроенный принтер этикеток (например, Argox 203, Godex или Zebra) внезапно «забывает» размеры макета. Вместо корректной этикетки принтер начинает выдавать пустые листы или печатать одну этикетку на нескольких страницах, а в настройках 1С самопроизвольно устанавливается странный размер label 1.0-1.0, который невозможно изменить обычным способом. Давайте вместе разберем эту проблему и найдем пути её решения.

Причина 1: Некорректные или устаревшие драйверы принтера

Проанализируем программную часть. Часто стандартные драйверы, идущие в комплекте с принтером, конфликтуют с платформой 1С. Это приводит к тому, что параметры страницы не передаются корректно из приложения в спулер печати Windows. Как показывает практика, установка альтернативных драйверов решает проблему в 80% случаев.

Рассмотрим по шагам, что нужно сделать:

  1. Удалим текущий драйвер принтера через «Панель управления».
  2. Скачаем драйверы от компании Seagull Scientific. Это универсальные и наиболее стабильные драйверы для специализированных принтеров этикеток, которые оптимизированы для работы с учетными системами.
  3. При установке выберем нашу модель (например, Argox 203).
  4. После установки обязательно перезагрузим компьютер и проверим настройки в 1С.

Причина 2: Установка параметров через «Предварительный просмотр» в 1С

Рассмотрим интересный нюанс работы интерфейса 1С:Розница (и других конфигураций на обычных формах). Изменение настроек принтера непосредственно в момент печати часто носит временный характер. Чтобы настройки «закрепились» за конкретным шаблоном, нужно использовать скрытый механизм сохранения.

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

  1. Зайдем в справочник «Хранилище шаблонов» (или откроем окно редактирования ценников и этикеток).
  2. Откроем нужный нам макет для редактирования.
  3. В окне редактирования найдем кнопку «Предварительный просмотр».
  4. В открывшемся окне просмотра перейдем в меню «Файл» -> «Параметры страницы».
  5. Установим здесь нужный размер этикетки, выберем принтер и зададим поля (обычно для этикеток все поля должны быть равны 0).
  6. Нажмем «ОК» и закроем окно просмотра.

Важно: именно сохранение через предпросмотр внутри редактора шаблона заставляет 1С записать параметры в системное хранилище настроек (SystemSettings).

Причина 3: Настройки на уровне операционной системы (Printing Defaults)

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

Проанализируем, как задать жесткие параметры в ОС:

  1. Откроем «Устройства и принтеры».
  2. Нажмем правой кнопкой мыши на наш Argox и выберем пункт «Свойства принтера» (не путать с «Настройка печати»).
  3. Перейдем на вкладку «Дополнительно».
  4. Нажмем кнопку «Настройка печати» (она же Printing Defaults).
  5. Здесь создадим новый размер этикетки, соответствующий вашим физическим размерам ленты. Укажите его как основной.
  6. Перейдем на вкладку «Параметры устройства» и убедитесь, что там выбран этот же размер.

Причина 4: Специфика работы через RDP (удаленный рабочий стол)

Рассмотрим ситуацию, когда 1С запущена на сервере, а принтер подключен к локальному компьютеру. При использовании стандартного проброса портов Windows принтер в сессии получает имя вида Argox (перенаправлено сеанс 5). При каждом новом входе номер сессии меняется. 1С воспринимает это как появление нового принтера и сбрасывает настройки в label 1.0-1.0.

Решить эту проблему можно следующими способами:

Причина 5: Права доступа и кэш 1С

Посмотрим на техническую сторону хранения настроек. 1С сохраняет параметры печати в локальном кэше пользователя (папка %AppData%\1C\1Cv8...) и в базе данных. Если у пользователя недостаточно прав на запись настроек или файл .pfl поврежден, параметры не сохранятся.

Проанализируем решение через очистку настроек:

  1. Попробуем временно дать пользователю полные права в 1С. Если настройки начали сохраняться — проблема в ролях.
  2. Если права в порядке, попробуем очистить кэш настроек печати в реестре Windows. Нам нужна ветка: HKEY_CURRENT_USER\Software\1C\1Cv8\2.0\Common\PrinterSettings.
  3. Удаление подразделов в этой ветке сбросит все привязки принтеров в 1С, после чего можно будет задать их заново корректно.

Радикальное решение: Редактирование макета в Конфигураторе

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

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


ТабДок = Новый ТабличныйДокумент;
// Указываем имя принтера явно, если это необходимо
ТабДок.ИмяПринтера = "Argox OS-214 plus series PPLA";
// Устанавливаем параметры страницы
ТабДок.РазмерСтраницы = "Custom"; // Или предопределенный размер
ТабДок.ШиринаСтраницы = 58; // Размер в мм
ТабДок.ВысотаСтраницы = 40; // Размер в мм
ТабДок.АвтоМасштаб = Ложь;
ТабДок.МасштабПечати = 100;
// Убираем все поля
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСправа = 0;

Использование свойства ТабДок.ИмяПринтера позволяет системе «узнать» устройство и применить к нему сохраненные ранее настройки, а явное указание размеров страницы в коде предотвратит появление ошибки label 1.0-1.0.

Подведем итог: для стабильной печати этикеток в 1С рекомендуется использовать драйверы Seagull Scientific, настраивать параметры через «Предварительный просмотр» в макете и следить за тем, чтобы имена принтеров в системе (особенно при RDP) оставались неизменными. Совместное применение этих методов позволит вам раз и навсегда забыть о проблемах с некорректным масштабом при печати.

← На главную