Как исправить ошибку печати штрихкодов из 1С 7.7 на принтер Godex в Windows Server 2016

Системный администратор 1С v7.7 IT и автоматизация бизнеса
← На главную

При работе с устаревшими версиями платформы 1С:Предприятие 7.7 в современных операционных системах Windows Server 2016 системные администраторы часто сталкиваются с нестабильной работой подсистемы печати. Типичная ситуация: тестовая страница из Windows печатается корректно, однако при отправке этикетки или штрихкода из 1С на принтер (например, Godex EZ-DT2) возникает сообщение «Ошибка печати» или «Ошибка принтера». При этом после переустановки устройства печать временно возобновляется, а затем снова прекращается.

Разберем подробнее причины возникновения этого сбоя и рассмотрим пошаговые методы его устранения.

Причины сбоев печати из 1С 7.7 на Windows Server 2016

Проанализируем технические факторы, вызывающие ошибку печати:

  1. Разрыв сетевой сессии Windows (SMB Session Drop): при обычном подключении расшаренного принтера с клиентского компьютера операционная система сервера со временем сбрасывает неактивную сессию аутентификации. Тестовая страница Windows может кратковременно возобновить авторизацию, но 32-битная платформа 1С 7.7 при попытке вывода на печать сразу генерирует ошибку.
  2. Несовместимость с технологией Remote Desktop Easy Print: механизм перенаправления Easy Print передает документы в формате XPS. Устаревший GDI-движок 1С 7.7 некорректно транслирует пользовательские размеры этикеток через виртуальные драйверы XPS, что приводит к отказу в печати.
  3. Динамическая смена имени принтера в RDP: при каждом подключении пользователя к терминальной сессии перенаправленному принтеру присваивается новый номер сессии (например, Godex EZ-DT2 (перенаправлено 3)). Платформа 1С 7.7 сохраняет жесткую привязку к исходному имени принтера в реестре, из-за чего печать перестает работать при следующем входе.

Способ 1. Подключение принтера через локальный порт с сетевым адресом (UNC)

Наиболее надежным решением проблемы сетевой печати в среде Windows Server является добавление принтера как локального устройства с указанием прямого сетевого пути в качестве имени порта. Это исключает зависимость от виртуальных перенаправлений RDP и сохраняет постоянное имя устройства в системе.

Разберем по шагам порядок настройки:

  1. Откроем оснастку «Устройства и принтеры» на сервере и выберем пункт «Добавить принтер» (или «Необходимый принтер отсутствует в списке»).
  2. Выберем вариант «Добавить локальный или сетевой принтер с параметрами, заданными вручную» и нажмем кнопку «Далее».
  3. В окне выбора порта установим переключатель в положение «Создать новый порт», а в выпадающем списке выберем тип Local Port.
  4. В появившемся окне ввода имени порта укажем сетевой путь к общему принтеру в формате UNC: \\Имя_Компьютера_Или_IP\Имя_Принтера (например, \\COMPILLATOR\GodexEZ) и нажмем «ОК».
  5. В окне выбора драйвера выберем соответствующий драйвер для принтера (рекомендуется использовать классические драйверы V3 от производителя или Seagull Scientific) и завершим установку.

После такой настройки сервер обращается к принтеру напрямую через локальный порт, не сбрасывая параметры печати внутри сеансов 1С.

Способ 2. Отключение Easy Print в групповых политиках сервера

Если принтеры подключаются через перенаправление клиентских сеансов RDP, необходимо заставить сервер использовать «родной» нативный драйвер устройства вместо универсального драйвера Easy Print.

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

  1. Запустим редактор локальной групповой политики: нажмем сочетание клавиш Win + R, введем gpedit.msc и нажмем Enter.
  2. Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов перенаправления -> Перенаправление принтеров.
  3. Найдем политику «Использовать в первую очередь драйвер принтера Easy Print для удаленных рабочих столов», откроем ее свойства и переведем в состояние «Отключено».
  4. Установим на сервере тот же самый драйвер принтера, который установлен на клиентском компьютере.
  5. Обновим групповые политики командой gpupdate /force в командной строке.

Способ 3. Прямая печать командами языка разметки EZPL

Печать этикеток и штрихкодов через стандартные табличные документы 1С 7.7 часто работает медленно и зависит от настроек масштабирования Windows. Для термопринтеров Godex наиболее эффективным подходом является формирование текстового задания на специализированном командном языке EZPL с прямой отправкой в порт принтера.

Посмотрим на пример отправки текстовых команд на принтер средствами Scripting.FileSystemObject:


Процедура ПечатьЭтикетки(Штрихкод, Наименование, Цена)
    ФСО = СоздатьОбъект("Scripting.FileSystemObject");
    
    // Формируем файл с командами языка EZPL
    ИмяФайла = "C:\Temp\label.txt";
    Файл = ФСО.CreateTextFile(ИмяФайла, -1);
    
    Файл.WriteLine("^Q25,3"); // Высота этикетки 25 мм, зазор 3 мм
    Файл.WriteLine("^W50");   // Ширина этикетки 50 мм
    Файл.WriteLine("^L");     // Начало макета
    Файл.WriteLine("AC,10,10,1,1,0,0," + СокрЛП(Наименование));
    Файл.WriteLine("BA,10,40,2,5,50,0,1," + СокрЛП(Штрихкод));
    Файл.WriteLine("AE,10,100,1,1,0,0,Цена: " + СокрЛП(Цена) + " руб.");
    Файл.WriteLine("E");      // Конец макета и печать 1 копии
    Файл.Close();
    
    // Отправка файла напрямую в сетевой порт принтера
    Команда = "cmd.exe /c copy /b """ + ИмяФайла + """ ""\\COMPILLATOR\GodexEZ""";
    КомандаСистемы(Команда);
КонецПроцедуры

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

Способ 4. Устранение замедлений 1С 7.7 на Windows Server 2016

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

Для ускорения работы базы данных выполним следующие оптимизации:

  1. Переключение плана электропитания: в панели управления сервера переключим схему питания на «Высокая производительность» (High Performance), чтобы процессор не сбрасывал тактовую частоту ядер в простое.
  2. Настройка исключений Защитника Windows (Windows Defender): 1С 7.7 производит постоянные дисковые операции с файлами .dbf и .cdx. Добавим в исключения антивируса процессы 1cv7s.exe, 1cv7.exe, каталог с базой данных и каталог временных файлов %TEMP%.
  3. Режим совместимости: для исполняемого файла 1cv7s.exe настроим запуск в режиме совместимости с Windows XP (пакет обновления 3) или Windows Server 2008 и проверим корректность регистрации шрифтов штрихкодов в системных каталогах.
← На главную