Имя: Пароль:
1C
 
Команда обрезки бумаги на чековом принтере
,
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.бла.бла" По идее, должно сработать.