Как исправить, чтобы печатал нормально?
Установил в оборудовании драйвер 1Спринтер чеков, выбрал windows-ский принтер, сначала чековый принтер Xprinter POS-80C(xp-200 китайский), подумал в дровах принтера дела, потом выбрал epson L800 цветной обычный принтер там тоже абракадабра. Залез в ReceiptPrinterNative_1_0_0_3.dll 1Спринтер чеков, там такой текст:
"Одну простую сказку,"
"А может, и не сказку,"
"А может, не простую"
"Хотим вам рассказать..."
УРА! УРА! Проблема решена!
Решение проблемы:
Если Вы купили китайский принтер чеков(хотя все принтеры китайские просто под брендами). Я купил на алиекспрессе Xprinter XP-Q200II. Очень хороший и скорость у него 200мм/сек. качество отличное. И если Вы установили 1С:Предприятие 8.3 (8.3.5.1460) Конфигурация: Розница, редакция 2.1 (2.1.7.9) как я. Достоинство этой конфигурации в том что она поддерживает почти все принтеры чеков, в том числе windows принтеры. То есть не нужно устанавливать дополнительных драйверов или обработок, или эмуляторов ФР.
И так как я решил проблему с иероглифами: нужно было настроить Chinese character: No. И страницу Default code page: Page17 с помощью переключателей DIP Switch Settings принтера. В моем принтере нету механических DIP Switch переключателей с обратной стороны принтера.
Но у производителя Xprinter.net есть утилита XP-Test. С помощью неё я и настроил. Нужно выбрать Advanced-> Set DIP и переключить Two-byte code в положение OFF. Нажать Setting, после чего принтер пикнет. Теперь принтер русифицирован! Выкладываю фото с пояснениями и программу.
Проблема может быть в:
1. Принтер (сама железяка) не умеет печатать кириллицу
2. Драйвер преобразовывает в кодировку, которую не понимает принтер.
3. Из программы уходит строка в непонятной кодировке.
Попробуй начать с тестовой страницы принтера. Потом печатай из стандартного блокнота.
(10) droji, а какую кодировку меняли? Надо подбирать две: "Кодовая таблица принтера" и "Кодировка строки". Думаю, что и там, и там должно стоять что-то вроде "Windows CP1251".
А вообще - реально какой принтер подключен? А то выбором наугад вряд ли чего-то добьешься.
И почему чеков "с обычного принтера Epson" два, причем с разными "иероглифами"?
(13) Cooler, Подключен POC-80C. Epson подключал чтобы проверить, что дело не в принтере и дровах. По этому я распечатал два чека на POC-80C и на обычный принтер epson при настройках в обоих случаях кодовой странице page07-PC866(Cyrillic) и кодировке строки CP866. Вышло два чека с иероглифами но разными.
Причем здесь дрова принтера, я же говорю принтер печатает и тестовую и в блокноте идеально и по русски. Проблем в обработке 1с передает кодировку неправильную на драйвер принтера.
Проблем в обработке 1с передает кодировку неправильную на драйвер принтера.
Именно поэтому и надо указывать в настройках, какую именно кодировку 1С должна отдавать принтеру. Меняй кодовую таблицу принтера и/или кодировку строки.
(24) droji, это называется "метод тыка". Им бесплодие можно лечить, а не с компьютерным железом воевать.
Не нравится мне последовательность "hdH" в начале чека - она "лишняя" по количеству символов для слова "Одну". Похоже, что принтер печатает ее, поскольку неправильно распознает команду выбора кодовой страницы.
Подозреваю, что она одинакова во всех вариантах "иероглифов"? Если да, то попробуйте все-таки поменять скорость обмена, что получится?
(25) Cooler, При печати Cp866 значительно иероглифы чека отличается от CP1251. Вопрос такой: а можно как то добавить в окне выбора 1с кодировку строки page59. Может быть где то в конфигураторе или dll файле?
(26) droji, то, что иероглифы отличаются - это само собой, так и должно быть. А что насчет последовательности "hdH" в начале? Она не должна печататься вообще, это неправильно понимаемая принтером команда выбора кодовой страницы. Пока она не начнет работать как надо, подбирать кодировку бесполезно.
(31) droji, понятия не имею. Но мне уже начинает казаться, что у вас вообще всё неправильно настроено. Драйвера принтера (именно принтера, а не 1С принтера чеков) у вас установлены? По аналогии с http://www.sinocan.com.cn/Manual/P06_Printer_Usermanual.pdf, с указанием номера COM-порта и его параметров (скорости, битности и т.д.), как на странице 14. А то, я смотрю, у вас в настройках 1С порт вообще не указан, а принтер чего-то печатает. Хотя, "чего-то" - самое подходящее слово.
По-моему, вы не понимаете главного - принтер чеков работает в текстовом, а не в графическом режиме, как при печати тестовой страницы или из Блокнота. А этот режим не настраивается Виндой автоматически, там все надо настраивать и указывать вручную, точно и без пропусков.
Все, я сегодня больше не могу писать тут, завтра рано вставать.
(35) droji, боюсь, придется управляющими последовательностями устанавливать нужную настройку в самом принтере. Понадобится утилита для работы с POS-принтерами и список команд для твоей модели. Посмотри, обработка, на которую я давал ссылку выше, вроде как умеет работать с управляющими последовательностями.
PS. Перевести принтер на RS-232 не получится? Будет печатать медленно, но как графику, поэтому проблема с кодировками по идее должна исчезнуть...
(38) droji,
Я посмотрел. Этот "универсальный драйвер" выводит как на обычный COM принтер, причем непонятно, какой модели. Сколько я не внедрял свою обработку - все пишут что работают под ESC/Pos, но команды разные, особенно на работу с периферией (нож, ящик) и на переключение на русские раскладки. Моя обработка поддерживает и СОМ принтеры (можно выбрать модель или самому заполнить команды), либо печатать на любой Windows принтер, хоть лазерный.
(39) ZyZer, Обработка обслуживания принтеров чеков (версия 2.60) не подходит для Розницы, редакция 2.1 (2.1.7.9)
Пишет:
Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.
(40) Конечно не подходит, я об этом вам подробно написал в письме. Эта обработка подходит только для старых конфигураций, в частности для Розницы 1.0. Но вы можете ее использовать, чтобы развернуть старую конфигурацию и попробовать своё оборудование на ней.
(42) Причины подробно вам уже объясняли выше. Если кратко - у принтера не происходит переключение на нужную кодовую страницу.
Вам надо либо использовать принтер через COM интерфейс (реальный или виртуальный), либо ставить специальный POS драйвер для принтера и использовать режим "Windows POS Printer", если я правильно помню эту систему. Но в любом случае, это не снимает проблему правильного переключения кодовой страницы принтера, и то, что принтер печатает в Блокноте, еще ни о чем не говорит - он может печатать текст как графику. У принтера может быть вообще не прошита кириллица, такое бывает у совсем китайцев. Иногда работает только 17 кодовая страница, вместо 07. Вариантов много...
(46) droji, вслепую - наверное, никто: вряд ли это возможно. Остается вариант подключиться удаленно через TeamViewer, но и он не идеальный - не видно, что напечатал принтер на бумаге. Подумайте над этим, завтра можно будет обсудить.
(47) droji,
Передавать изображением - это как раз то, что делает моя встраиваемая обработка. Но у моего способа есть как плюсы, так и минусы. Кончено отрадно, что 1С наконец-то чухнули, что не все используют фискальные регистраторы, и не все хотят покупать дорогущщие "АСПД Штрих" но реализация пока очень слабая.
По вашему принтеру могу сказать, что надо использовать 17 кодовую страницу. Кроме того, желательно работать именно через COM порт - там хоть понятно более-менее.
Печатал через com port в 1с POS драйвер(page17) настроил скорость и т.д через com port подключил. Всёравно китайские иероглифы. У xprintera есть прога xp тест дак там я выбирал 17 страницу тест выводил русский алфавит.
(51) droji, предлагаю попробовать с помощью соответствующих утилит, буде таковые найдутся, менять настройки принтера.
Например, меня лично смущают в скрине selftest'а пункты Chinese character, Default code page, а также секция Resident character.
Если получится, можно попытаться сменить эти настройки.
УРА! УРА! Проблема решена!
Решение проблемы:
Если Вы купили китайский принтер чеков(хотя все принтеры китайские просто под брендами). Я купил на алиекспрессе Xprinter XP-Q200II. Очень хороший и скорость у него 200мм/сек. качество отличное. И если Вы установили 1С:Предприятие 8.3 (8.3.5.1460) Конфигурация: Розница, редакция 2.1 (2.1.7.9) как я. Достоинство этой конфигурации в том что она поддерживает почти все принтеры чеков, в том числе windows принтеры. То есть не нужно устанавливать дополнительных драйверов или обработок, или эмуляторов ФР.
И так как я решил проблему с иероглифами: нужно было настроить Chinese character: No. И страницу Default code page: Page17 с помощью переключателей DIP Switch Settings принтера. В моем принтере нету механических DIP Switch переключателей с обратной стороны принтера.
Но у производителя Xprinter.net есть утилита XP-Test. С помощью неё я и настроил. Нужно выбрать Advanced-> Set DIP и переключить Two-byte code в положение OFF. Нажать Setting, после чего принтер пикнет. Теперь принтер русифицирован! Выкладываю фото с пояснениями и программу.