Имя: Пароль:
1C
1C 7.7
v7: Печать на матричный принтер.
0 bizon2008
 
16.07.11
00:32
День добрый. Стал вопрос о печати на матричный принтер. Нужна большая скорость. Я знаю только один вариант, создать текстовый файл, и отправить его на притер. еще варианты есть. Заранее спасибо.
1 Kookish
 
16.07.11
05:26
Еще варианты есть. Печатать прямо в порт LPT, если найдешь.
2 Kookish
 
16.07.11
05:33
Постой, я что, отстал от жизни? И уже появились матричники, печатающие по 10-20 страниц в минуту? Или жаба душит лазерник купить? Kyocera, например, в последнее время неплохие принтеры делает, и экономные. 10 тыс. листов на одной заправке (в экономном режиме).
3 skunk
 
16.07.11
05:42
(2)попробуй на лазарнеки ввести протоклирование действий пользователя в системе
4 andrewks
 
16.07.11
07:35
(3) сопсна вопрос - а нафига?
5 Mikeware
 
16.07.11
08:12
(2)ты не только "отстал", ты ее, похоже, и не догонял...
допустим, тот же DFX-9000 имеет скорость печати 1500 символов в секунду. 15 страниц в минуту... причем при этом может печатать сразу на рулонной самокопирке (считай, еще умножить на 2). я уж не говорю про  крутые матричники...
(4) например, протоколировать события в ОПС... Чтоб не было возможности "подкорректировать".
6 andrewks
 
16.07.11
08:19
(5) 2. а чё, лить логи в стороннюю защищённую базу (можно даже на другой компе) не проще?
7 skunk
 
16.07.11
08:29
(6)логи ... в отличии от бумажных носителей, заверенных подписями и печатями, не являються в доказательством в суде ... тем более логи легко подделать ...
8 andrewks
 
16.07.11
08:30
(7) банки?
9 skunk
 
16.07.11
11:37
(8)ну да ... идея была закоммуниздина у банков ... но использовалась в оптво-розничной торговле ... дабы управляющие не могли навариваться на скидках
10 Злопчинский
 
16.07.11
13:14
(9) каким образом протоколирование противодействует навариванию управляющими на скидках?
11 Torquader
 
16.07.11
13:53
Во-первых, цена матричного отпечатка получается дешевле все (правда сейчас ей конкуренцию составляют термопринтеры, но у них свои недостатки).
Во-вторых, матричный принтер позволяет напечатать сразу несколько экземпляров, что позволяет сохранить журнал операций на рулоне (который сложно подделать).
В-третьих, печать на матричном принтере идёт построчно, что исключает потерю информации в процессе накопления страницы (этой особенностью обладают ещё и струйные принтеры, но там расплывающиеся чернила).
В четвёртых, матричные принтеры абсолютно не требовательны к качеству бумаги, тогда как для других типов принтеров требуется специальная бумага.
в пятых, отпечаток матричного принтера невозможно стереть с бумаги так, чтобы это было невозможно определить (для струйных и лазерных существуют способы).
Быстрее матричного принтера оказывалось только барабанное АЦПУ, но там ограниченный набор символов (современные лазерные принтеры, конечно печатают быстрее, в расчёте на лист, но они совершенно не умеют печатать на рулонах - точнее сказать - недопустима остановка рулона в момент печати).
12 skunk
 
16.07.11
15:42
(10)тупо и банально позволяет определить что покупал клиент в момент первоначального проведения документа ...
13 Сияющий Асинхраль
 
16.07.11
15:49
(11) У хороших матричников только один недостаток, с которым я имел несчастье познакомиться, хорошие (подчеркиваю действительно хорошие) матричные принтеры с убойной скоростью печати 15-20 страниц в минуту очень мало кто умеет ремонтировать, особенно на периферии, где такого добра днем с огнем не сыщешь. Пару месяцев решал вопрос с принтером который жевал ленту, штук пять контор обошел, все бестолку. Может в нерезиновой с этим попроще...
14 Джинн
 
16.07.11
15:53
Да, только теплый ламповый звук является кошерным...
Кто этого не понимает - просто лохи.
15 bizon2008
 
16.07.11
16:54
(1)У меня 300 епосоны. Они универсалы. У них есть COM и LPT. И то и то у меня есть. COM предпочтительней.
Печать чеков, логов. Преимущество рулонная подача, построчная печать, высокая скорость, если встроенные шрифты использовать.
16 Torquader
 
16.07.11
21:24
(13) Если жевал - то иголочка в головке не возвращается на место и просто протыкает ленту - стандартная неисправность - обычно меняют головку целиком - конечно - можно разбирать и ремонтировать - но вспоминается, как страшный сон, так как работа ювелирная, а результат далёк от стопроцентного.
P.S. обычно новая головка от пятидесяти до ста баксов.
17 bizon2008
 
16.07.11
22:12
Да нехрена. Я этих головок перебрал. В свое время кучу. Самое фиговое когда катушка горит. Но я даже их умудрялся перематывать. Не со всеми фишка проходила, но довольно часто успешно. А принтеры эти, б\у у мне тут по 15-20 баксов. Валом.
18 VoditelKobyly
 
18.07.11
05:48
(0) Скорее всего варианты есть только для создания такого текстового файла.
19 Escander
 
18.07.11
07:28
(0) ну типа привет из далёкого прошлого:

   ТПрн=СоздатьОбъект("Текст");
   ТПрн.Очистить();
   ТПрн.КодоваяСтраница(0);

...................................

ТПрн.ДобавитьСтроку(AnsiToOem(chr(15)+"                  ОПЛАТА ПРОИЗВОДИТСЯ В ТЕЧЕНИИ 3-х ДНЕЙ СО ДНЯ ВРУЧЕНИЯ                            Приложение №1
       |                                       к Правилам ведения журналов учета полученных и выставленных счетов-фактур,
       |                                      книг покупок и книг продаж при расчетах по налогу на добавленную стоимость,
       |                        утвержденным постановлением Правительства РоссийскойФедерации  от 2 декабря 2000 г. N 914
       |                          (в редакции постановлений Правительства Российской Федерации от 15 марта 2001 г. N 189,
       |                                                             от 27 июля 2002 г. N 575, от 16 февраля 2004г. №84)"));    
   
ТПрн.ДобавитьСтроку(AnsiToOem("                  СЧЕТ-ФАКТУРА "+СокрЛ(НомерДок)+" от "+Формат(ДатаДок ,"Д (0)ДДММММГГГГ") ));

ТПрн.ДобавитьСтроку(AnsiToOem(ПечПоставщик));
ТПрн.ДобавитьСтроку(AnsiToOem(ПечАдресПоставщика));

........................................

ТПрн.ДобавитьСтроку(AnsiToOem("Директор филиала 'Бла-Бла-Бла'                                  "+ПадежП(Клиент.ДолжностьРуководителя,2) ));
ТПрн.ДобавитьСтроку(AnsiToOem(" "));
ТПрн.Записать("c:\1sensf.txt");
ФС.КопироватьФайл("c:\1sensf.txt","lpt1:",0);
ФС.УдалитьФайл("c:\1sensf.txt");
20 Mikeware
 
18.07.11
07:31
(19) да можно и таблицу в текст конвертить. не проблема. вплоть до отрисовки рамок псевдографикой.
сложности там только во флаге выравнивания в ячейке.
21 Escander
 
18.07.11
07:31
(2) а разве их не стало? Лет 15 назад, когда работал в банке там стоял DECовский матричник, работал тихо как пулемёт вулкан (поэтому стоял в коридоре а не в кабинете), но скорость... не то что какие-то отстойные лазерники!
22 Mikeware
 
18.07.11
07:34
(21) DEC, насколько помн, принтеров не выпускал...
23 Escander
 
18.07.11
07:34
(20) не, ну не приводить-же мне весь код!
вот типа ещё кусок даже без псевдографики (чёрточки и воскл. знаки, но на любом печатало однохренственно):

ТПрн.ДобавитьСтроку(AnsiToOem("                  АКТ ПРИЕМКИ-ПЕРЕДАЧИ ВЫПОЛНЕННЫХ РАБОТ" ));
ТПрн.ДобавитьСтроку(AnsiToOem("                            от "+Формат(ДатаДок ,"Д (0)ДДММММГГГГ") ));
ТПрн.ДобавитьСтроку(AnsiToOem(" Продавец: "+Фирма.Грузоотправитель+"
       | именуемое в дальнейщем Исполнитель, в лице директора Ивано В.В.,с одной стороны и
       | Покупатель "+Клиент.ПолнНаименование+"
       | именуемое в дальнейшем Заказчик, в лице "+?(ПустаяСтрока(Клиент.ДолжностьРуководителя)=0,ПадежП(Клиент.ДолжностьРуководителя,2)+" "+Падеж(Клиент.ФИОДиректора,2),"_____________________")+", с другой стороны        
       | составили настоящий акт о том, что Исполнитель оказал услуги за "+ПериодСтр(НачМесяца(ДатаДок),КонМесяца(ДатаДок))+" по договору № "+Строка(Клиент.Код)+" в объеме:"));
ТПрн.ДобавитьСтроку(AnsiToOem("___________________________________ ____ __________ ____________________________"));
ТПрн.ДобавитьСтроку(AnsiToOem("         Наименование              !Стоимость услуг! Сумма    ! Стоимость услуг
                             |        оказанных услуг            !  без налога   ! налога   !всего с налогом"));
ТПрн.ДобавитьСтроку(AnsiToOem("___________________________________!_______________!__________!_________________"));
24 Escander
 
18.07.11
07:36
(22)но продавал под своей маркой, за года 3 эксплуатации у него кроме расходников была только 1 поломка - шестерёнка, 150$ что-ли...
25 Mikeware
 
18.07.11
07:40
(23) Я не о малом количестве кода.
я о том, что можно разбирать сформированную таблицу через ПолучитьОбласть(), и на основе этого формировать текстовый файл.
26 Escander
 
18.07.11
07:42
(25) в клюшках?
27 Escander
 
18.07.11
07:42
(22)кста, получается выпускал до 1997 http://www.osp.ru/cw/1997/31/22820/
28 Mikeware
 
18.07.11
07:56
(27) Не знал, что это их подразделение и торговая марка...
29 bizon2008
 
18.07.11
10:53
Но это все опять через создание файла. Это я умею.
ТПрн.Записать("c:\1sensf.txt");
ФС.КопироватьФайл("c:\1sensf.txt","lpt1:",0);
ФС.УдалитьФайл("c:\1sensf.txt");

Напрямую можно как-то отправить?
30 bizon2008
 
18.07.11
12:06
Народ не спать. Гоните варианты.
31 Mikeware
 
18.07.11
12:08
(30) ну, компоненту напиши :-)
32 skunk
 
18.07.11
12:13
внематочно читать про метод печать объекта таблица
33 Ork
 
18.07.11
12:15
(30) Можно леХко сделать в VBS через FileSystemObject. Открывать файл на устройстве PRN: COM: LPT1: или LPT2: и писать внего напрямую.
Есть правда одна фишка (относится к Epson-ам FX и LX) начинают непосредственно вывод на бумагу либо при заполнении на сколько-то процентов памяти либо при получении символа ВК-ПС либо Контрол-Зет(всмысле конец файла).
34 skunk
 
18.07.11
12:16
(33)нах
35 Ork
 
18.07.11
12:17
(34) А обосновать?
36 skunk
 
18.07.11
12:18
что
37 Ork
 
18.07.11
12:18
(36) мысль из (34)
38 skunk
 
18.07.11
12:19
(37)прочти (29) и хорошо подумай
39 Ork
 
18.07.11
12:21
(38) Ему хочется напрямую в порт. Без создания файла на ХаДеДе.
И что не так?
40 Ork
 
18.07.11
12:27
+(39) Или базар за то, что предлагается работать с устройством, как с файлом? Так это же не совсем одно и тоже, что писать в файл, а потом его отправлять на устройство. И даже сильно наоборот.
41 bizon2008
 
18.07.11
12:49
(40)Наоборот это как? Отправить на устройство, а потом записать в файл?
42 skunk
 
18.07.11
12:55
а записать("prn") что дает ...
43 bizon2008
 
18.07.11
15:00
Добыл принтер. Ща буду его насиловать.
44 bizon2008
 
18.07.11
16:10
То ли меня память подводить. То ли я его не так настроил. Но что-то печатает он не быстро.
45 Escander
 
19.07.11
06:31
(44) исходники не помогли? ну тогда справочник по управляющим кодам в руки и вперёд на ускорение!
46 smaharbA
 
19.07.11
06:35
(44) отправляешь текст или как ?
47 Mikeware
 
19.07.11
07:29
(44) режим печати скорее всего стоит LQ. ставь draft, и будет щастье...
плс управляющими кодами, или свичами, или настройкой через меню - установить печать в двух направлениях, и т.д и т.п.
48 Chum
 
19.07.11
07:32
copy filename.txt prn

Управляющие коды тоже покурить не мешает. Коды вставляют в начало файла или перед печатью файла отправляют отдельный файл с кодами на принтер
49 Mikeware
 
19.07.11
07:36
(48) Коды вставляют и непосредственно в текст...
например, "включить удвоенную ширину" или "удвоенную высоту", и ли отключить их...
50 Chum
 
19.07.11
07:41
(49) да-да
51 bizon2008
 
04.08.11
14:26
Так все победил. Осталось одно проблема. Сто силе в управляющих кодах?
Нужно бумагу подавать немного назад. А то много свободного места, перед началом чека.
52 andrewks
 
04.08.11
14:29
53 bizon2008
 
04.08.11
14:50
Матричный принтер печатаю через файл. Все зашибись, но что конец чека подъехал к обрыву надо добавить несколько пустых строк, и получается перед каждым следующим чеком полоса пустой бумаги
Надо ее как-то назад ее откатить
54 bizon2008
 
04.08.11
15:54
ау
55 bizon2008
 
04.08.11
22:46
уа
56 Креатив
 
04.08.11
23:02
(55)Печатай в файл с именем lpt. А так матричный принтер видит конец файла и делает прогон. Можешь, конечно почитать про управляющие символы в инструкции по принтеру. И их всунуть в начало файла.
57 bizon2008
 
04.08.11
23:13
Он не делает прогон бумаги. Прогон бумаги делаю я напихав в конец файла пустых строк.
58 Креатив
 
04.08.11
23:14
(57)Тогда не понял проблемы.
59 bizon2008
 
04.08.11
23:21
Проблема в том, в начале следующего чека появляется пустая область. Хотелось бы откатит назад этот кусочек.
60 Креатив
 
04.08.11
23:23
брррр
Если ты его специально создаёшь, тогда зачем откатывать?
Кстати, печатаешь-то на рулонной бумаге?
61 bizon2008
 
04.08.11
23:25
Бумагу жалко. Да и не красиво выглядит. Я эстет.
Печатаю я на рулоне.
62 Креатив
 
04.08.11
23:28
(61)Я так и не понял, для чего тебе нужны пустые строки?
63 дущ
 
04.08.11
23:32
(59) А ты просто печатай там шапку следующего чека (она, как правило статична), затем команда "отрез", в результате в принтере остается кусочек с шапкой, а следующий чек уже без шапки. Т.е. шапку чека всегда в конце печатай.
64 bizon2008
 
04.08.11
23:35
(63)Опа. А это идея.Спасибо.
(62)Чтоб низ чека подполз к линии обрыва.
65 bizon2008
 
04.08.11
23:56
Притер Epson 300
66 lals
 
05.08.11
00:33
Вот тут есть описалово с системой команд.
http://support.epson.ru/manual_list.asp?product=115
67 lals
 
05.08.11
00:43
68 lals
 
05.08.11
01:08
А еще я когдато на бейсике чтобы узнать какой код что делает с принтером юзал цикл с выводом на принтер
ну в нашем случае это бы выглядело гдето так:
Процедура Сформировать()
   Текст = СоздатьОбъект("Текст");
   ИмяФайла = КаталогИБ()+"Проверка.txt";  
   Для а = 1 По 30  Цикл
       Стр =Симв(а);
       Текст.ДобавитьСтроку(Стр);  
       Стр = "Съешь этих мягких французских булок " + а
       Текст.ДобавитьСтроку(Стр);  
   КонецЦикла;
   Текст.Записать(ИмяФайла);    
   ФС.Копироватьфайл(ИмяФайла,"prn",1);
КонецПроцедуры
посмотришь какая "а" что делает.
69 lals
 
05.08.11
01:11
Стр = "Съешь этих мягких французских булок " + а;
точку с запятой пропустил
70 bizon2008
 
05.08.11
11:21
Спасибо за идеи. Но это я все знаю.
71 syktyk
 
05.08.11
11:30
Смотри в сторону LinePrinter типо таких: http://www.genicom.com/Pages/Products/line_matrix_2-col_dyn.aspx?id=7352

1500 - 2000 строк в минуту. Скока будет в страницах? И драйверы под все винды есть :)
72 bizon2008
 
05.08.11
14:58
Притер Epson 300 у мнея их десяток.
73 Kreont
 
05.08.11
15:19
(72) Есть парочка мануалов по командам (5 МБ), сбросить на почту?
74 bizon2008
 
05.08.11
15:56
На русском? По аглийси есть на сайте епсон.
75 Kreont
 
05.08.11
16:10
(74) + на ангельском :) я по нему и настраивал сначала через тест файл: (Far + hiew32)
76 bizon2008
 
05.08.11
16:12
(75)Такого добра валом. Вот от пример бы не отказался.
77 Kreont
 
05.08.11
16:28
(76) Упр. коды для EPSON 890FX (под 7-ку писал), что делают:
инициализация + уставнока CP1251 + ультра турбо режим :) (USD)
       Массив[1] = 27;
       Массив[2] = 64;
       Массив[3] = 27;
       Массив[4] = 40;
       Массив[5] = 116;
       Массив[6] = 03;
       Массив[7] = 00;
       Массив[8] = 00;
       
       Массив[9] = 49;
       Массив[10] = 00;
       Массив[11] = 27;
       Массив[12] = 116;
       Массив[13] = 00;
       Массив[14] = 27;
       Массив[15] = 121;
       Массив[16] = 02;
       
       Массив[17] = 27;
       Массив[18] = 80;
       Массив[19] = 27;
       Массив[20] = 120;
       Массив[21] = 00;
       Массив[22] = 27;
       Массив[23] = 70;
       Массив[24] = 18;
       
       Массив[25] = 27;
       Массив[26] = 84;
       Массив[27] = 27;
       Массив[28] = 53;
       Массив[29] = 27;
       Массив[30] = 72;
       Массив[31] = 27;
       Массив[32] = 119;
       
       Массив[33] = 00;
       Массив[34] = 27;
       Массив[35] = 119;
       Массив[36] = 00;
       Массив[37] = 27;
       Массив[38] = 97;
       Массив[39] = 00;
       Массив[40] = 13;
       Массив[41] = 10;
78 Kreont
 
05.08.11
16:29
+(77) Отдельно печать штрих кода:

       МассивШК[1] = 27;
       МассивШК[2] = 40;
       МассивШК[3] = 66;
       МассивШК[4] = 18;
       МассивШК[5] = 0;
       МассивШК[6] = 0;
       МассивШК[7] = 2;
       МассивШК[8] = 0;
       МассивШК[9] = 32;//125
       МассивШК[10] = 0;
       МассивШК[11] = 3;

Потом сам код