При работе с устаревшими версиями платформы 1С:Предприятие 7.7 в современных операционных системах Windows Server 2016 системные администраторы часто сталкиваются с нестабильной работой подсистемы печати. Типичная ситуация: тестовая страница из Windows печатается корректно, однако при отправке этикетки или штрихкода из 1С на принтер (например, Godex EZ-DT2) возникает сообщение «Ошибка печати» или «Ошибка принтера». При этом после переустановки устройства печать временно возобновляется, а затем снова прекращается.
Разберем подробнее причины возникновения этого сбоя и рассмотрим пошаговые методы его устранения.
Проанализируем технические факторы, вызывающие ошибку печати:
Godex EZ-DT2 (перенаправлено 3)). Платформа 1С 7.7 сохраняет жесткую привязку к исходному имени принтера в реестре, из-за чего печать перестает работать при следующем входе.Наиболее надежным решением проблемы сетевой печати в среде Windows Server является добавление принтера как локального устройства с указанием прямого сетевого пути в качестве имени порта. Это исключает зависимость от виртуальных перенаправлений RDP и сохраняет постоянное имя устройства в системе.
Разберем по шагам порядок настройки:
Local Port.\\Имя_Компьютера_Или_IP\Имя_Принтера (например, \\COMPILLATOR\GodexEZ) и нажмем «ОК».После такой настройки сервер обращается к принтеру напрямую через локальный порт, не сбрасывая параметры печати внутри сеансов 1С.
Если принтеры подключаются через перенаправление клиентских сеансов RDP, необходимо заставить сервер использовать «родной» нативный драйвер устройства вместо универсального драйвера Easy Print.
Выполним следующие действия:
Win + R, введем gpedit.msc и нажмем Enter.gpupdate /force в командной строке.Печать этикеток и штрихкодов через стандартные табличные документы 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С, гарантируя мгновенную печать штрихкодов без искажений и сбоев драйвера.
Нередко на новом сервере пользователи замечают общую медлительность работы 1С 7.7, хотя процессор загружен всего на 15–20%. Выясним причину: платформа 1С 7.7 является строго однопоточным приложением. При выполнении тяжелой операции одно ядро процессора нагружается на 100%, что на многоядерном процессоре отображается как низкая общая загрузка.
Для ускорения работы базы данных выполним следующие оптимизации:
.dbf и .cdx. Добавим в исключения антивируса процессы 1cv7s.exe, 1cv7.exe, каталог с базой данных и каталог временных файлов %TEMP%.1cv7s.exe настроим запуск в режиме совместимости с Windows XP (пакет обновления 3) или Windows Server 2008 и проверим корректность регистрации шрифтов штрихкодов в системных каталогах.