|
v7: Как напечатать штрихкод Code-128 | ☑ | ||
---|---|---|---|---|
0
borisbelov
21.09.13
✎
13:50
|
Используем штрих код для печати на квитанциях об оплате абонентами. В штрих коде закодирован лицевой счет, период оплаты, сумма оплаты, поэтому длина штрих кода большая. EAN13 не позволяет закодировать все необходимое. Используем Code-128.
По исходной строке вида 0301652.08.14000-105A получаем штрих код M0301652.08.14000-105AxO. Как напечатать этот штрих код средствами 1С 7.7? Перерыл интернет, ничего нужного не нашел! Помогите, пожалуйста! |
|||
1
Armando
21.09.13
✎
14:33
|
||||
2
Mikeware
21.09.13
✎
14:55
|
у вас какой-то отдельный, обособленный ото всех интернет?
|
|||
3
Mashinist
21.09.13
✎
15:23
|
Входящая в комплект ТиСа barcode.ocx
|
|||
4
КонецЦикла
21.09.13
✎
15:27
|
Можно шрифтом barcode.ttf правда не будет циферок
|
|||
5
Aleksey
21.09.13
✎
15:30
|
Я тупу шрифтом печатаю без всяких barcode.ocx
|
|||
6
Aleksey
21.09.13
✎
15:31
|
типа c39hrp36dltt.ttf http://weblast.ru/sort-c-44.html
|
|||
7
borisbelov
22.09.13
✎
00:05
|
Напечатать штрихкод используя c39hrp36dltt.ttf или другой не проблема! Сканер что-то не читает этот текст, он же запрограммирован на EAN13. Перепрограммировать его каждый раз при переходе от EAN13 к нашим произвольным штрихкодам?
|
|||
8
Стрелок
22.09.13
✎
00:15
|
(7) сканер не может быть запрограммирован на определённый код т.к. передаёт данные в виде символов (цифр и букв). настраивать надо драйвер, который обрабатывает данные от сканера
|
|||
9
Aleksey
22.09.13
✎
00:15
|
(7) а что по твоему у кода ean-13 палочки волнистые?
|
|||
10
Rie
22.09.13
✎
02:55
|
(8) Может сканер быть запрограммирован на определённый код. Обычно есть такая возможность в настройках сканера.
(7) Ну так возьмите книжку с картинками - и перепрограммируйте сканер. Например, просто сбросьте настройки на заводские - обычно в таком режиме сканер понимает все коды. |
|||
11
Стрелок
22.09.13
✎
07:44
|
(10) модель сканера озвучь
|
|||
12
Стрелок
22.09.13
✎
07:45
|
сколько работал со сканерами (метролоджик, симбол, откровенный китай) все читали и EAN-8 и EAN-13 и EAN-128.
|
|||
13
Стрелок
22.09.13
✎
07:49
|
Мало того, такие же сканера без перенастройки прекрасно читают штрих-код например мобильного телефона (EAN-13) и его же телефона IMEI.
вот примеры обычного IMEI-кода 447402-51-543765-0 35-209900-176148-23 35-209900-176148-1 прекрасно читается подряд - штрих-код и тут же IMEI так что.... |
|||
14
Стрелок
22.09.13
✎
07:51
|
повторюсь - сканер передаёт ТОЛЬКО символы закодированные в полосках штрих-кода. никаких проверок контрольной цифры или соответствия штрихкода какому то стандарту НЕ происходит в момент сканирования. Все эти действия выполняются ПРИ обработке данных от сканера
|
|||
15
Rie
модератор
22.09.13
✎
07:59
|
(12) Ты не понял. По умолчанию - сканер действительно читает всё. Но! Некто берёт книжечку с управляющими кодами. И, руководствуясь заявлением руководящего лица "А у нас - только EAN-13", настраивает сканер.
|
|||
16
Rie
22.09.13
✎
07:59
|
(14) Сканер первым байтом передаёт тип штрих-кода :-)
|
|||
17
Стрелок
22.09.13
✎
08:11
|
(16) источник информации дай
|
|||
18
Rie
22.09.13
✎
08:44
|
(17) Если у тебя есть сканер - то есть и книжечка. Вот в неё и глянь. Там, в зависимости от настроек и.
Для примера у Metrologic - запусти стандартный тест. В нём тип штрих-кода указывается. |
|||
19
borisbelov
22.09.13
✎
08:44
|
(14) Конечно, сканер передает символы записанные в штрих коде. Однако для того, чтоб штрих код читался и "вверх номами" перед печатью приходтся делать это:
Функция СформироватьКодEAN13(код) ПервыйФлаг = Число(Сред(код,1,1)); левстр = Сред(код,2,6); правстр = Сред(код,8,6); правкод = ""; Для Поз=1 По 6 Цикл правкод = правкод + ЦифрыВБуквыНижнегоРегистра(Сред(правстр,Поз,1)); КонецЦикла; // Формируем левую часть кода в зависимости от значениа ПервыйФлаг Если ПервыйФлаг = 0 Тогда // ••• AAAAA ••• левкод = "#!"+Лев(левстр,1)+Сред(левстр,2,1)+Сред(левстр,3,1)+Сред(левстр,4,1)+Сред(левстр,5,1)+Сред(левстр,6,1); ИначеЕсли ПервыйФлаг = 1 Тогда // ••• AABABB ••• левкод = "$!"+Лев(левстр,1)+Сред(левстр,2,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+Сред(левстр,4,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,5,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,6,1)); ИначеЕсли ПервыйФлаг = 2 Тогда // ••• AABBAB ••• левкод = "%!"+Лев(левстр,1)+Сред(левстр,2,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,4,1))+Сред(левстр,5,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,6,1)); ИначеЕсли ПервыйФлаг = 3 Тогда // ••• AABBBA ••• левкод = "&!"+Лев(левстр,1)+Сред(левстр,2,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,4,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,5,1))+Сред(левстр,6,1); ИначеЕсли ПервыйФлаг = 4 Тогда // ••• ABAABB ••• левкод = "'!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+Сред(левстр,3,1)+Сред(левстр,4,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,5,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,6,1)); ИначеЕсли ПервыйФлаг = 5 Тогда // ••• ABBAAB ••• левкод = "(!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+Сред(левстр,4,1)+Сред(левстр,5,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,6,1)); ИначеЕсли ПервыйФлаг = 6 Тогда // ••• ABBBAA ••• левкод = ")!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,4,1))+Сред(левстр,5,1)+Сред(левстр,6,1); ИначеЕсли ПервыйФлаг = 7 Тогда // ••• ABABAB ••• левкод = "*!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+Сред(левстр,3,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,4,1))+Сред(левстр,5,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,6,1)); ИначеЕсли ПервыйФлаг = 8 Тогда // ••• ABABBA ••• левкод = "+!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+Сред(левстр,3,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,4,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,5,1))+Сред(левстр,6,1); ИначеЕсли ПервыйФлаг = 9 Тогда // ••• ABBABA ••• левкод = ",!"+Лев(левстр,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,2,1))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,3,1))+Сред(левстр,4,1)+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр,5,1))+Сред(левстр,6,1); КонецЕсли; // Возвращаем результат кодстр = левкод + "-" + правкод + "!"; Сообщить(""+КодСтр); Возврат кодстр; КонецФункции //СформироватьКодEAN13 Полагаю, что подобные процедуры делать надо и для Code 128 |
|||
20
Rie
22.09.13
✎
08:48
|
(19) Выкинь бяку.
Ты как раз и пытаешься определить тип кода. Вот только потом какую-то хню несёшь. |
|||
21
borisbelov
22.09.13
✎
09:00
|
(19) "Бяку" можно выбросить!
Запись набора символов (цифр и других,воспринимаемых в Code 128) в документ как штрих код (шрифт Code 128 (Западный) прекрасно удается! Попытка прочитать этот штрих код не дает результата: сканер игнорирует этот штрих код. |
|||
22
Rie
22.09.13
✎
09:01
|
(21) Настрой сканер. Книжечка ж есть!
|
|||
23
borisbelov
22.09.13
✎
09:27
|
(21) Сканер Honeywell Voyager MS9540. "Книжечки" нет, приложили диск, где никаких кодов настроек нет. Есть "книжечка" от предыдущего сканера 9540.
Сканер читает коды 303668.3500-64 2900000996373 Непонятно, как записать мой код 30156.08.148933 (или другие) |
|||
24
Стрелок
22.09.13
✎
09:58
|
(23) покажи как ты формируешь EAN-128
|
|||
25
Стрелок
22.09.13
✎
09:59
|
и процедуру печати этикеток со штрих-кодами
|
|||
26
borisbelov
22.09.13
✎
10:04
|
(21) Кстати, если записать 13-разрядный штрих код EAN13 в документ с полем "Шрифт" EanBwrP36tT без "бяки" этот штрих код сканером не читается. С использованием "бяки" перед записью штрих кода в документ (функция обрабатываем символы кода и модифицирует их) - штрих код читается.
Для Code 128 используется другая "бяка"! Простая печать символов кода в поле со "Шрифтом" Code 128 (Западный)не читается сканером. |
|||
27
borisbelov
22.09.13
✎
10:08
|
(24) размер текста двух функций (самописные по "мотивам" Интернет-поиска!) довольно большой. Как его компактно поместить в сообщение - непонятно. Могу скинуть письмом. Куда?
|
|||
28
borisbelov
22.09.13
✎
10:13
|
(24) Кстати, недавно выложил "причесанную" обработку в Инфостарте. Найти ее просто http://infostart.ru/public/201295/
|
|||
29
Стрелок
22.09.13
✎
10:34
|
капец. стандартная обработка формирующая EAN-13 максимум один экран. 128 код формируется аналогично - читаем вики и сами пишем алгоритм расчёта контрольки. зачем изобретать непонятно что?
|
|||
30
Стрелок
22.09.13
✎
10:35
|
||||
31
Стрелок
22.09.13
✎
10:35
|
там есть ВСЁ. пять секунд поиска (при условии если знаешь что искать)
|
|||
32
Стрелок
22.09.13
✎
10:38
|
||||
33
borisbelov
22.09.13
✎
10:42
|
(29) Обработка, формирующая EAN13 занимает действительно около "экрана". Это в (14)!
Трудности с обработкой для Code 128: //******************************************* //Строка штрих-кода в кодировке Code 128 Функция Code_128(ШК) Перем Бар[1024]; //Собираем строку кодов Режим=""; Инд=1; Сч=1; ДлинаШК=СтрДлина(ШК); Пока Сч<=ДлинаШК Цикл //текущий символ в строке Код=КодСимв(Сред(ШК,Сч,1)); Сч=Сч+1; //разбираем симовлы от 0 до 127 Если Код<=127 Тогда //следующий символ Если Сч<=ДлинаШК Тогда Код2=КодСимв(Сред(ШК,Сч,1)); Иначе Код2=0; КонецЕсли; //пара цифр - режим C Если (48<=Код) и (Код<=57) и (48<=Код2) и (Код2<=57) Тогда Сч=Сч+1; Если Инд=1 Тогда //начало с режима C Режим="C"; Бар[Инд]=106; //105 Инд=Инд + 1; ИначеЕсли Режим<>"C" Тогда //переключиться на режим C Режим="C"; Бар[Инд]=100; //99 Инд=Инд+1; КонецЕсли; //добавить символ режима C Бар[Инд]=Код+Код2; //Бар[Инд]=strtoint(CHR(Ch)+CHR(Ch2)); //=CInt(Симв(Код) & Симв(Код2)); Инд=Инд+1; Иначе Если Инд=1 Тогда Если Код<32 Тогда //начало с режима A Режим="A"; Бар[Инд]=104; Инд=Инд+1; Иначе //начало с режима B Режим="B"; Бар[Инд]=105; //104 Инд=Инд+1; КонецЕсли; КонецЕсли; Если (Код<32) и (Режим<>"A") Тогда //переключение по надобности в режим A Режим="A"; Бар[Инд]=102; //101 Инд=Инд+1; ИначеЕсли ((64<=Код) и (Режим<>"B")) или (Режим="C") Тогда //переключение по надобности в режим B Режим="B"; Бар[Инд]=101; //100 Инд=Инд+1; КонецЕсли; Если Код<32 Тогда //служебные символы Бар[Инд]=Код+64; Инд=Инд+1; Иначе //все другие символы Бар[Инд]=Код-32; Инд=Инд+1; КонецЕсли; КонецЕсли; КонецЕсли; Сч=Сч+1; КонецЦикла; //подсчитываем контрольную цифру КонтЦифра=Бар[1]%103; Для Сч=2 По Инд-1 Цикл КонтЦифра=(КонтЦифра+Бар[Сч]*(Сч-1))%103; Сообщить("Бар[Сч]="+Бар[Сч]); КонецЦикла; Бар[Инд]=КонтЦифра; Инд=Инд+1; //завершающий символ Бар[Инд]=107; Инд=Инд+1; //собираем строки символов и штрихов шрифта К128=""; Ш128=""; Для Сч=1 По Инд-1 Цикл К128=К128+Строка(Бар[Сч]); Ш128=Ш128+BarArray[Бар[Сч]]; КонецЦикла; Код128=К128; Сообщить("К128="+К128); Сообщить("Ш128="+Ш128); Возврат Ш128; КонецФункции //Code_128 Если у Вас есть обработка (алгоритм), скиньте или выложите, буду весьма благодарен! |
|||
34
Стрелок
22.09.13
✎
10:48
|
в (32) не только алгоритм а кусок кода из 1С. смотрите и просвещайтесь
|
|||
35
borisbelov
22.09.13
✎
12:23
|
(34) Спасибо! Посмотрел. Все хорошо, за маленьким минусом:
StrokeScribe платная! |
|||
36
КонецЦикла
22.09.13
✎
15:31
|
Тебе чего надо?
Текст функции, формирующей последовательность для 128? В инете забанили? |
|||
37
mishaPH
модератор
22.09.13
✎
15:46
|
я одного не понял. а что. баркоде осх кто-то отменил??? я на нем печатаю и не такие коды еан 128. да там их 500 видов
|
|||
38
borisbelov
22.09.13
✎
17:39
|
(36) Конечно, искал. По результатам нарисовал обработку. Но она не формирует штрих код 128. То-ли в исходных файлах что-то не так, то-ли я перевел на 1С что-то не так...
|
|||
39
borisbelov
22.09.13
✎
17:40
|
(37) Не хочется использовать внешние библиотеки.
|
|||
40
mishaPH
модератор
22.09.13
✎
17:56
|
(39) религия не позволяет??? а потом другим прогам в ваших перлах разбираться и материться, если заказчик захочет другой тип кода??
баркоде это штатная хрень к 1с. входит в состав ТиСа. |
|||
41
Стрелок
22.09.13
✎
18:05
|
(40) а чего ты удивляешься? у меня был клиент (правда недолго). взял нового админа на работу. тот начал с того что написал докладную что "при работе 1С активно используются сторонние библиотеки, что грозит безопасности фирмы". Директор махнул шашкой и через пару дней получил страйк почти всего персонала.
пропали такие любимые плюшки : 1. автоотправка почты прямо из 1С 2. фильтры по справочникам 3. быстрые отчёты 4. нормальная работа сканера ШК отматали всё взад, админа шуганули, но он падлюка подставил меня по другому (на бекапе) и с фирмой я расстался |
|||
42
borisbelov
22.09.13
✎
20:16
|
Возможно, не совсем точное название темы сбивает с содержания обсуждения.
Мне надо СФОРМИРОВАТЬ код 128 по строке данных, а затем напечатать его. Когда код готов, он и читается и печатается! |
|||
43
Стрелок
22.09.13
✎
20:18
|
(42) тебе уже всё рассказали и ссылки дали. что то ещё не хватает?
|
|||
44
borisbelov
22.09.13
✎
20:22
|
(43) Не хватает "внутренними ресурсами 1С"... Без внешних компонентов... Как-то так!
|
|||
45
Стрелок
22.09.13
✎
20:25
|
(44) ты вменяемый? без внешних компонент невозможно сделать то что ты хочешь. компонента формирования штрих-кодов по цифрам и буквам входит в стандартную поставку 1С и соответственно ей (1С) одобрена. что ещё?
|
|||
46
Злопчинский
22.09.13
✎
20:29
|
хз... сод39 и код128 тупо формирую строку - подсовываю без всяких спецсимволов в баркодеосх читается в любых направлениях.
|
|||
47
Стрелок
22.09.13
✎
20:36
|
(46) ну не хочет он использовать баркодеосх.
|
|||
48
jbond
22.09.13
✎
20:48
|
FastReports
|
|||
49
mishaPH
модератор
22.09.13
✎
20:51
|
Автор. я тоже ког-да то на заре своей деятельности страдал фигней и используя ТТФ шрифт генерил еан-13 с контрольным числом и коде 128.
бери ттф шрифт. далее тебе надо вывести M0301652.08.14000-105AxO. тогда на печать строку ты должен вывести *M0301652.08.14000-105AxO.* * * является стоп символами для него |
|||
50
mishaPH
модератор
22.09.13
✎
20:51
|
ттф шрифт надо фотмата 128А помоему там 256 символов все цифры, буквы. знаки
|
|||
51
mishaPH
модератор
22.09.13
✎
20:58
|
да но, автор. идеология без баркоде со шрифтами тоже нарушает твою религию. Мало того, что надо устанавливать шрифт !внешнюю хрень, ее еще и надо ставить на каждый комп, где будут печататься эти коды.
|
|||
52
borisbelov
22.09.13
✎
20:59
|
(44) Вменяемый!
Более того, код EAN13 формирую своей обработкой, а потом печатаю его! Пока не понятно, почему не получается с EAN128... Причем здесь "принципиальная невозможность"? |
|||
53
Стрелок
22.09.13
✎
21:02
|
(52) покажи как ты печатаешь EAN-13? шрифтом TTF?
|
|||
54
borisbelov
22.09.13
✎
21:04
|
(46) А контрольная сумма? Считает сканер не так (штрих затерт и пр.) и получат в организации оплату 30040608 рублей!
|
|||
55
Стрелок
22.09.13
✎
21:06
|
(54) а при чём тут контрольная сумма? ты скажи ты вообще что нибудь по штри-кодированию читал из теории?
|
|||
56
borisbelov
22.09.13
✎
21:07
|
(49) Не... не фигней! Если генерировали код, то можете и помочь!
|
|||
57
borisbelov
22.09.13
✎
21:08
|
(50) Шрифты - это фантики в работе не компьютере!
|
|||
58
Стрелок
22.09.13
✎
21:12
|
так мне надоело. чел уже заговаривается... ТС - удачи. совет почитай для чего нужна контролька и как работает сканер - должзно многое понятным стать. нет - значит не твоё это - пригласите специалиста
|
|||
59
Злопчинский
22.09.13
✎
21:16
|
(49) я вообще никаких стопсимволов не пихал в код
|
|||
60
Злопчинский
22.09.13
✎
21:17
|
Кстсти ест вариант печати ШК вообще без внешних компонент и шрифтом - простым формированием закрашенных секций нужнйо толщины в нужном порядке
|
|||
61
borisbelov
22.09.13
✎
21:23
|
(53) Показывал ссылку на публикацию в Инфостарте. Там подробный код.
Здесь схема по Вашей просьбе. ... БарКод = СформироватьКодEAN13(СимволыСтрокиВШтрихКод)); Таб.ВывестиСекцию("Строка"); ... В выводимой строке таблицы есть ячейка со свойствами: тип выражение, имя БарКод, Шрифт EanBwrP36Tt. |
|||
62
borisbelov
22.09.13
✎
21:28
|
(52) Штрихкод 128 Состоит из последовательности
СтартСимвол&СимволыКода&КонтрольнаяЦифра&СтопСимвол |
|||
63
borisbelov
22.09.13
✎
21:33
|
(60) Вот! Результат этого варианта и достигается внешними компонентами, которые формируют символы для подходящего шрифта...
|
|||
64
borisbelov
22.09.13
✎
21:37
|
(46) Пропустил: Символы Вы "кидали" в BarCode и он формировал все необходимое! И стартсимвол и контрольную цифру и стоп символ!
|
|||
65
borisbelov
22.09.13
✎
21:46
|
(58) Я и обращаюсь к специалистам. Выложил в(19) пока не работающую функцию получения кода EAN128.
Спасибо за обсуждение |
|||
66
mishaPH
модератор
23.09.13
✎
07:58
|
Автор. будь ты моим прогом - я бы тебя уволил.
|
|||
67
borisbelov
23.09.13
✎
08:22
|
(66) Прояви великодушие, объясни "За что?"
|
|||
68
mishaPH
модератор
23.09.13
✎
08:23
|
(67) Скажу прямо - за идиотизм и желание сделать через жопу то, что даже не внешние компоненты - а штатно. А также за гемор в дальнейшем обслуживании данной системы и трату времени и бабла решая как продеть слона через игольное ушко.
|
|||
69
Rie
23.09.13
✎
08:39
|
(68) Тут ты не прав. Через игольное ушко продевать надлежит не слона, а верблюда. (Я отнюдь не сравниваю ТС со слоном, нет... Даже с верблюдом... Тут скорее ассоциации с некоторыми птицами уместны :-)
|
|||
70
Rie
23.09.13
✎
08:40
|
(63) У тебя проблема в чём? Контрольную цифру сформировать - или на печать вывести?
|
|||
71
mishaPH
модератор
23.09.13
✎
09:05
|
(69) намекаешь на победителя номинации стальной клюв 2013 года?
|
|||
72
borisbelov
23.09.13
✎
09:05
|
(63) Пример. Символы кода "0301652.08.14000-105A" (англ A).
Контрольная цифра "x" (англ x). Вывожу на печать строку Симв(104)+"0301652.08.14000-105A"+"x"+Симв(106) Шрифт Code 128 (Западный) В принтере длинный штрих код! Сканером не читается |
|||
73
mishaPH
модератор
23.09.13
✎
09:06
|
(72) с чего ты решил, что контрольная х? ты выше читал что я написал про * *
|
|||
74
borisbelov
23.09.13
✎
09:30
|
(73)Пример. Символы кода "0301652.08.14000-105A" (англ A).
Контрольная цифра "x" (англ "x", так у меня сейчас считается). Вывожу на печать строку "*"+Симв(104)+"0301652.08.14000-105A"+"x"+Симв(106)+"*" Шрифт Code 128 (Западный) В принтере длинный штрих код! Сканером не читается |
|||
75
Mikeware
23.09.13
✎
09:37
|
(74) естественно, длинный. Ты ожидал чего-то другого?
Сгенерируй, например, тут - http://barcode.tec-it.com/ = и сравни |
|||
76
Rie
23.09.13
✎
09:40
|
(74) Насчёт "сканером не читается" - я б посоветовал на всякий случай проверить-таки настройки сканера. А то приходилось видеть такие чудеса...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |