|
Команда обрезки бумаги на чековом принтере | ☑ | ||
---|---|---|---|---|
0
кассир
04.03.25
✎
13:02
|
Есть принтер чеков MITSU RP-809. Необходимо из 1с подать команду на отрез чека. В интернете пишут что можно использовать команды ESC/POS. Приводят список команд.
GS;V;0 ESC;i ESC;d;0 ESC;m Я попробовал эти команды но они не срабатывают. Подскажите правильно ли я их использую и если кто знает какая правильная команда на отрез и на открытие денежного ящика у принтера MITSU RP-809? Function Printer_Print(str) table = CreateObject("Таблица"); textString = str;//переменная в секции таблицы table.PutSection("data"); table.Print(0); endFunction //GS;V;0 Printer_Print(Chr(29) + Chr(86) + Chr(0)); //ESC;i Printer_Print(Chr(27) + Chr(105)); //ESC;d;0 Printer_Print(Chr(27) + Chr(100) + Chr(0)); //ESC;m Printer_Print(Chr(27) + Chr(109)); 1c 7/7 |
|||
1
Garykom
гуру
04.03.25
✎
13:10
|
||||
2
кассир
04.03.25
✎
14:00
|
С dll это понятно. Вопрос как пользоваться ESC/POS? Правильно ли я понимаю что можно отправить набор символов и нож должен сработать? Кто-нибудь это делал?
|
|||
3
Ёпрст
04.03.25
✎
14:41
|
(0)
Симв(27) + "!", не ? |
|||
4
Ёпрст
04.03.25
✎
14:46
|
Символ(27) + Символ(105), это ежели с 1с
|
|||
5
Ёпрст
04.03.25
✎
20:30
|
Ну или вот, готовые изделия
https://open-budget.ru/public/297037/ |
|||
6
кассир
04.03.25
✎
14:48
|
//ESC;!
Printer_Print(Chr(27) + Chr(33)); так тоже не работает... |
|||
7
кассир
04.03.25
✎
14:49
|
(4) не работает Символ(27) + Символ(105)
|
|||
8
Ёпрст
04.03.25
✎
20:13
|
(7) через copy и текстовый файлик, работает с ком строки ?
|
|||
9
кассир
04.03.25
✎
14:55
|
(8) принтер подключен по Ethernet через copy и текстовый незнаю как проверить...
|
|||
10
lEvGl
гуру
04.03.25
✎
15:04
|
(9) так а отправка других команд уже работает, вопрос только в команде? если нет, то по сети можно слать через winsock например, в прочем в сдк есть все, что нужно, но чуть муторнее, чем просто символы в хост отправить
зы. хороший принтер, вернее его sdk |
|||
11
Garykom
гуру
04.03.25
✎
15:10
|
(9) в сетевую шару тоже можно копировать
|
|||
12
lEvGl
гуру
04.03.25
✎
15:13
|
вот описание как надо отправлять
NET, IP Add (IPV4)[,Port] Specify the IP add and port of internet printer. If not specifying port, the default port is 9100. NET,192.168.0.36 NET,192.168.0.36,9100 соответственно сверьте ип и порт на принтере и через mswinsock.ocx попробуйте отправить. Но не факт, что будет работать, т к зависит от реализации взаимодействия, заложенной производителем. 99.5% будет работать по инструкции от производителя. (11) ну тоже вариант, но вероятность успеха еще меньше |
|||
13
кассир
04.03.25
✎
19:18
|
В общем с отправкой спецсимволов ничего не получилось. Буду пробовать через dll
|
|||
14
кассир
10.03.25
✎
15:17
|
Set-ExecutionPolicy RemoteSigned
# IP-адрес и порт устройства $ip = "192.168.0.158" $port = 9100 # Последовательность байт (например, команда ESC/POS) $bytes = [byte[]]@(0x1D,0x56,0x01) # ESC @ (инициализация принтера) # Создание TCP-клиента $client = New-Object System.Net.Sockets.TcpClient($ip, $port) $stream = $client.GetStream() # Отправка данных $stream.Write($bytes, 0, $bytes.Length) # Закрытие соединения $stream.Close() $client.Close() вот этот код работает в Power shell. Как можно сделать это в 1с 7.7? |
|||
15
кассир
10.03.25
✎
15:20
|
вот эта рабочая последовательность но если ее отравить через печать на принтер не срабатывает 0x1D 0x56 0x01
|
|||
16
arsik
гуру
10.03.25
✎
15:30
|
А почему печать через таблицу делаешь? Попробуй через текст. Может так отрезчик сработает.
|
|||
17
кассир
10.03.25
✎
15:40
|
у меня 1с 7.7. печать я нашел только у таблицы. Как на печать текста сделать из 1с 7.7?
|
|||
18
arsik
гуру
10.03.25
✎
15:44
|
(17) Сорян. Действительно нет такого.
Ну попробуй вариант из командной строки отправить текстовый файл с символами отрезки. Но тут нужно смотреть наверно кодировку файлов. Ну можно с разными попробовать. |
|||
19
MWWRuza
гуру
10.03.25
✎
15:51
|
Я вот так, правда на Зебру, посылаю:
ФС.КопироватьФайл(ВремФайл,СокрЛП(Принтер) + "\" + РабочаяДата() + ".txt",1); Если ФС.СуществуетФайл(ВремФайл) = 1 Тогда ФС.УдалитьФайл(ВремФайл); // Закомментировал для отладки КонецЕсли; Где "ВремФайл" - текстовик с командами, "Принтер" - сетевой путь к расшаренному принтеру, как он в системе виден. |
|||
20
кассир
10.03.25
✎
16:28
|
(19) Да работает этот вариант. Неожиданно)))
|
|||
21
кассир
10.03.25
✎
16:30
|
но получается нужно иметь расшареный принтер чеков и знать имя компа где он подключен.
А как можно послать через winsock? |
|||
22
arsik
гуру
10.03.25
✎
16:57
|
Вот что бы так не насиловать себя я советую покупать устройства с езернетом.
|
|||
23
uno-group
10.03.25
✎
16:58
|
В дровах принтера нет галочки обрезать после вывода задания на печать? Вообще без отправки чего либо у меня режет. но принтер другой
|
|||
24
кассир
10.03.25
✎
17:10
|
(22) Так устройство с ethernet
(23) Галочка есть обрезать всегда. И если включить всегда резежет, НО нужно сделать чтобы отрезало по условию. |
|||
25
uno-group
10.03.25
✎
17:19
|
Она обычно в реестре храниться можно реест по условию дергать перед печатью
|
|||
26
MWWRuza
гуру
10.03.25
✎
18:29
|
(24) Так устройство с ethernet
Ну, так IP его известен? Ну, и замените "Принтер" на "\\192.168.бла.бла" По идее, должно сработать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |