Имя: Пароль:
1C
1С v8
Генерация штрихкода по номеру документа и поиск документа по штрихкоду.
,
0 Mary01
 
17.05.13
14:04
В БП 8.2 задача такая - сгенерировать по номеру документа штрихкод и вывести его в печатную форму. Впоследствии, при сканировании этого ШК на распечатанном документе, в БП найти этот документ.
вопросы:
1. нашла несколько алгоритмов, в т.ч. с помощью СимволыВЦифры() - ну в цифры это понятно, а каким образом "палочки" нарисуются?
2. еще в алгоритмах предлагается вставить в макет эл-т упр-я Таблица->Рисунки->Вставить объект StrokeScribe Control, но у меня в списке объектов почему-то нет его. Также предлагают объект Barcode вставлять, подскажите пожалуйста, где его искать?
3. как обойтись без добавления в док-т реквизита ШтрихКод, и можно ли по сгенерированному коду провести обратное преобразование в номер док-та (т.е. чтобы при сканировании срабатывала эта функция преобразования, выдающая в итоге номер док-та, по которому можно его найти).
1 Mouzem
 
17.05.13
14:06
а если QR код использовать?
2 ДенисЧ
 
17.05.13
14:09
Берём barcode.ocx с итса.
код никуда не преобразуем, а устанавливаем в свойства баркода тип кода code128
и наслаждаемся...
3 drcrasher
 
17.05.13
14:11
+(2) и в качестве штриха отдаём УИД
4 ДенисЧ
 
17.05.13
14:11
(3) ну да, так лучше будет
5 drcrasher
 
17.05.13
14:13
(4) собсно в ут11 вся эта канитель и реализована так
6 Fragster
 
гуру
17.05.13
14:13
на диске ИТС есть 1cbarcode
7 Fragster
 
гуру
17.05.13
14:14
(6) только оно QR не поддерживает. хотя в QR навигационную ссылку сразу запихать можно, да
8 viktor_vv
 
17.05.13
14:16
(2)+(3) Че-то оно в таком варианте нихрена потом не сканируется.
Насколько я понял там еще начальные и стоповые символы не добавляются в самой ocx.
Может не разобрался.
9 IamAlexy
 
17.05.13
14:17
(2) главное не нае.нуть базу с русскими префиксами в номерах штрихкодов..
10 ДенисЧ
 
17.05.13
14:17
(8) Всё он добавляет нормально. У нас (и тут, и в прошлой конторе) всё работает и сканируется. Свойствами поиграйся
11 Mary01
 
17.05.13
14:18
ну и конечно модуль надо добавлять в конфу для того чтобы этот сканер подключать. да?
12 Mary01
 
17.05.13
14:19
(9) это пугает. что может случиться с базой?
13 IamAlexy
 
17.05.13
14:20
(12) долгие годы, 1Совая генерилка штрихкодов при попытке сгенерить ЕАН128 с русскими буквами нахер вешала процесс на сервере в полную загрузку..
14 viktor_vv
 
17.05.13
14:20
(10) Да вроде игрался. Правда сканера на руках не было, надо бы наверное взять тот сканер у клиента, пограться. Модет там чего отключено, хотя по умолчанию сканер поддерживает.
Спасибо.
15 IamAlexy
 
17.05.13
14:21
+(13) а у меня в одном решении генерятся штрихкода как раз по номерам документов + код вида докумета + пара цифр из документов (ну чтобы со штрихкода приходили не порсто документы а еще и количественные показатели)
16 IamAlexy
 
17.05.13
14:22
+(15) не сразу разобрались какого черта сервак стал умирать время от времени.. потом пришлось по всей базе префиксы менять с одного значения на другое :)
17 Mikeware
 
17.05.13
14:22
(13) у тебя в uid-е русские буквы?
не, мы подымали СС, используя русские - но это не сильно укорачивает.
18 Mikeware
 
17.05.13
14:23
(15) это не "решение", это "поделка"
19 Mary01
 
17.05.13
14:25
ну а обратное преобразование ШК в номер документа возможно?
20 IamAlexy
 
17.05.13
14:25
(18) конечно поделка.. кривая косая и тд и тп... писали ее дураки и пользуются ей годами имбицылы.. всех расстрелять и на корм свиньям а поделку срочно распечатать и сжечь..

да да..
21 ДенисЧ
 
17.05.13
14:26
(19) оно тебе сразу от сканера и вернётся...
22 IamAlexy
 
17.05.13
14:26
(17) никто про УИДы не говорил - в штриходе несколько более другая инфа лежит..
23 Mary01
 
17.05.13
14:39
(21) мне нужно чтобы, когда сканер пикнул на этот шк, то в 1С этот документ попал бы в табличную часть обработки. предполагала, что какую-то процедуру надо писать...
24 Mikeware
 
17.05.13
14:40
(20) "распечатать и сжечь" - оригинально...
в идентификационном коде хранить информационные данные... не айс.
хотя тесно смыкается, конечно, но лучше все-таки разделять...
а что касается имбецилов, то многие имбецилы живут очень долго. не вижк повода не пользоваться им при этом какой-нибудь самописной поделкой....
-------------
зы. встретил тут имбецилов, идентифицирующих документы в своей поделке по "дате-времени"... :-) у нас даже помощник админа от их кода прифигел....
25 IamAlexy
 
17.05.13
14:41
(23) да.. процедура называется обработка внешнего события..
в нее будет передан результат сканирования и дале ты сам решишь что делать и куда что добавлять
26 Mikeware
 
17.05.13
14:41
(21) не плюй в колодец: вылетит - не поймаешь!©
27 ДенисЧ
 
17.05.13
14:45
(23) правильно. Придётся. А что ты думала - в сказку попала? :-)
28 Mikeware
 
17.05.13
14:49
(27) ога,  в сказку со страшным _концом_...
29 Mary01
 
17.05.13
14:50
(25) результат внешнего события - это и будет номер документа?
30 Mikeware
 
17.05.13
14:53
(29) результатом внешнего события должна быть его обработка...
а уж что в этой обработке сделаешь - то и будет.
Диапазон широкий - от "ничего" до, допустим, смс автору документа - "ваш локумент хотят отредактировать!"
31 viktor_vv
 
17.05.13
14:56
Самое прикольное, если у нее сканер в разрыв клавиатуры или usb в эмуляции клавиатуры :).
Долго же она ловить это внешнее событие будет :).
32 Mary01
 
17.05.13
14:58
на users.v8 нашла это:
1С: сканер штрихкода
и
1С: печать штрихкода
это оно?
33 IamAlexy
 
17.05.13
14:58
(31) да ладно, она же догадается с users.v8.1c.ru скачать бесплатную библиотеку внешнего оборудования и оттуда подсмотреть механизмы подключения и использования сканеров штрих-кодов...
34 viktor_vv
 
17.05.13
15:00
(33) Ну судя по (32), она на правильном пути, может все и получится.
35 ДенисЧ
 
17.05.13
15:01
(32) для начала пойдёт. Бери и приступай :-)
36 Mary01
 
17.05.13
15:01
(32) скачала уже)) пока непонятно только, что дальше с ней делать?
37 ДенисЧ
 
17.05.13
15:03
(36) а там документация ещё есть... Или на итс пошукай...
38 viktor_vv
 
17.05.13
15:07
(36) Ставишь "1С: печать штрихкода" , после этого при вставке объекта в списке элементов управления появится "1С: печать штрихкодов".
39 Mary01
 
17.05.13
16:12
а можно как-то обойтись без дополнительных справочников, вроде справочника подключаемого оборудования?
40 YF
 
17.05.13
16:16
(0) Блин, это же для всех печ. форм менять и модуль формирования и вывода или делать внешние - писец там работы ...

А потом при каждом обновлении актуализировать все свои изменения
41 Mary01
 
17.05.13
16:25
(40) не совсем. это нужно только для док-та "счет на опл. покупателю", а он и так дописанный, т.е. так или  иначе актуализирую изменения при обновлении (благо, в этот документ изменения вносятся очень редко). кроме того, для него использую внешнюю печатную форму.
42 Mary01
 
17.05.13
16:30
у меня почему-то вот это вот не работает:
barcode=Область.Рисунки.ОбъектШтрихкод.Объект;
     barcode.Text=Формат(код,"ЧГ=0");
     barcode.Alphabet=1;
     Если barcode.Error>0 Тогда
        сообщить(barcode.ErrorDescription);
     КонецЕсли;
ругается на Text и Alphabet. все, что после "barcode." идет на русском языке. а когда присваиваю
barcode.текстКода =СсылкаНаОбъект.Номер;
, то в печатной форме штрих код все равно появляется с цифрами по умолчанию - "1234567890128"
43 Mary01
 
17.05.13
16:33
помогите!
44 Mikeware
 
17.05.13
16:37
(43) позовите программиста.
45 Mary01
 
17.05.13
16:41
(44)я и сама программист, сижу и разбираюсь. но мож кто-то уже сталкивался с таким и скажет как надо, чтоб я время не тратила
46 Конфигуратор1с
 
17.05.13
17:04
(45) чего вы мучаетесь? есть типовая обработка Печать этикетки. Берете оттуда пример и усе.
47 Конфигуратор1с
 
17.05.13
17:07
код типовой

   ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.ТипКода   = ТипКода;
           ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение = ?(ПустаяСтрока(СтрокаИзСписка.ПредставлениеШтрихкода),
                                                                 СтрокаИзСписка.Штрихкод,
                                                                 СтрокаИзСписка.ПредставлениеШтрихкода);
48 Конфигуратор1с
 
17.05.13
17:09
/ Возвращает значение типа штрихкода для использования в ЭУ
// "1С:Печать штрихкодов"
//
// Параметры
//    ТипКода -    ПланыВидовХарактеристик.ТипыШтрихкодов - тип, значение для которого
//                нужно получить
//
// Возвращаемое значение:
//   Число, которое может быть присвоено свойству ЭУ "ТипКода"
//
Функция ПолучитьЗначениеТипаШтрихкодаДляЭУ(ТипКода)
   Перем Значение;
   
   Если ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8 Тогда
       Значение = 0;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
       Значение = 1;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128 Тогда
       Значение = 2;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code39 Тогда
       Значение = 3;
   ИначеЕсли ТипКода = ПланыВидовХарактеристик.ТипыШтрихкодов.Code128 Тогда
       Значение = 4;
   Иначе
       Значение = -1;
   КонецЕсли;
   
   Возврат Значение;
КонецФункции // ПолучитьЗначениеТипаШтрихкодаДляЭУ()
49 Mary01
 
17.05.13
17:17
(46) Спасибо! попробую!
50 Mary01
 
17.05.13
17:41
(47) в типовой УТ я не нашла этого кода. есть там обр-ка ПечатьЭтикетокИЦенников. она на управляемых формах, а у меня не управляемые. попытка присвоить вот этому:
ЭтикеткаОбласть.Рисунки.Штрихкод.Объект.Сообщение =
номер документа ни к ччему не привела, так и выводит цифры по умолчанию.
51 Конфигуратор1с
 
17.05.13
22:11
(50) а какой тип штрихкода задаете? обработка в типовой КА
52 Mary01
 
22.05.13
17:44
(51) ean-8.
53 Mary01
 
22.05.13
17:46
всем спасибо, штрихкод на печатную форму вывести получилось! Но! возник такой вопрос - как убрать контрольную цифру? пробую в свойствах штрихкода отключить ее, а она все равно есть. программно тоже никак (barcode.ВидимостьКС =  Ложь; не помогает).
54 uncknow
 
22.05.13
17:48
Делали универсальный механизм по генереации и учету штрихкодов для УТ 10.3. Работает для любого объекта базы данных. Могу скинуть, алгоритмы можно оттуда вытянуть
55 uncknow
 
22.05.13
17:48
Вставляется в любую печатную форму пользовательскими методами :)
56 Mary01
 
22.05.13
18:02
(54) скиньте, пожалуйста
57 uncknow
 
28.05.13
15:16
(53) Лежит в свободном доступе здесь:

http://1c.exxp.ru/sites/default/files/Modul_shtrikhkodirovaniia_obiektov_0.rar
58 Mary01
 
29.05.13
13:17
(57) Большое спасибо!
59 Mary01
 
29.05.13
15:33
(57) попробовала сделать ШК как в вашем примере, не через специальный объект Штрихкод 1С, а с помощью рисунка. Проблема та же: ШК генерируется, но вместе с ним эта контрольная цифра ненужная! надо как-то ее отсечь. чтобы она не выводилась вовсе. Потому что потом, когда мы сканируем этот ШК, то сканер выдает нам номер док-та и эту цифру, и из-за этого мы не переходим на нужный документ в списке
60 Mary01
 
29.05.13
15:50
что, никто не знает?
61 Mikeware
 
29.05.13
15:52
(60) знаем.
62 cw014
 
29.05.13
15:54
Делал я когда то такую хрень на семерке...
63 Mary01
 
29.05.13
16:03
(61) если не сложно, расскажите пожалуйста как это сделать
64 Mary01
 
29.05.13
16:04
(62) и как вы убирали цифру?
65 CepeLLlka
 
29.05.13
16:25
Делал такое в том году для Платежек... помимо БиПринта генерю свой ШК и помещаю на форму в 8.2 УФ, а потом сканю и ищу в базе, тем самым проверяю, те ли платёжки несу в банк и верные ли там реквизиты и т.д.. в ШК передаётся штук 10 реквизитов и номер с префиксом в 6 что-ли символов..
Русские символы префикса передавал цифрами используя свой Аналог КодСимвола() и так же разбирал его при получении,
А для вывода ШК на печатную форму использовал прогу с которой можно работать из командной строки, которая генерит рисунок ШК  различного размера и типа КШ кода.. я взял Aztec и его уже помещал на форму.. вот.. прога называется - Zint
*nate*
66 CepeLLlka
 
29.05.13
17:07
Могу скинуть участки кода если надо..
67 Mary01
 
30.05.13
10:25
(65) так все-таки ваш ШК с контрольной цифрой генерировался или нет?
68 probably
 
30.05.13
10:38
(67) Леди, контрольную цифру в штрих-коде нельзя убирать, она на то и контрольная.
Просто при получении штрих-кода обрабатывайте всё, кро е неё
69 Mary01
 
30.05.13
10:43
(68) наконец-то кто-то объяснил, и чего я мучилась с ней. Хорошо. Другой вопрос - Какая процедура нужна и где?
Когда мы сканируем ШК с листа, в это время у нас в 1С открыт список счетов. В этом списке есть обычная возможность спозиционироваться на счете, набрав с клавиатуры его номер (при этом, набирая, мы видим его в небольшом окошечке). Так вот, при сканировании в этом окошечке появляется номер и вот эта цифра, которая и не дает спозиционироватья. Где я должна написать процедуру для убирания этой цифры?
70 Mary01
 
30.05.13
11:32
*
71 Mikeware
 
30.05.13
11:39
(69) Наймите уж программиста.... Ну или хотя бы того, кто способен читать и понимать прочитанное.
и дайте ему почитать инструкцию на сканер ШК.
72 Mary01
 
30.05.13
11:50
(71) по-вашему, я не понимаю написанное?! Я сама способна во всем разобраться, если мне подскажут как. Даже если не подскажут, тоже могу, но это дольше.
73 ДенисЧ
 
30.05.13
11:51
(69) "при сканировании в этом окошечке появляется номер"

сканер в разрыв клавиатуры включён?
Надо переключить на COM и ловить внешнее событие. Его и обрабатывать
74 Mary01
 
30.05.13
11:58
(73) да, в разрыв. а так мы не сможем поймать это событие?
75 ДенисЧ
 
30.05.13
11:59
(74) Неа.
76 Mary01
 
30.05.13
12:02
(75) а переключение сканера на другой порт может еще на что-то влиять? Просто он еще и в других программах у нас используется, всё настроено и работает.
77 Лефмихалыч
 
30.05.13
12:05
(0) Книга знаний: Штрихкодирование объектов ИБ
правда в результате длинный ШК получится, зато универсально. Еще можно в документообороте пошукать идей
78 Mary01
 
30.05.13
12:05
(77) спасибо
79 Mary01
 
04.06.13
14:34
(75) а внешнее событие можно поймать, если сканер подключен через USB?
80 vi0
 
04.06.13
15:50
(79) Сканер может работать либо в режиме клавиатуры либо как сканер. Т.е. все программы (включая 1с) увидят его либо как клавиатуру либо как сканер (и в 1с можно будет обрабатывать события). Как подключить ваш сканер в первом или втором режиме можно прочитать в документации к сканеру.
81 Mary01
 
11.06.13
18:40
(80) сканер подключила через USB (это единственный разъем, который с ним поставлялся). когда сканирую штрихкод, например "0000062" (где  000006 - это номер док., 2 - контр. цифра), то 1С пытается найти документ В0000000062. хочу обработать событие, убрать В, лишние нули и 2). в форме выбора этих документов написала процедуру ОбработкаВнешнегоСобытия, но при сканировании в нее не попадаю. что я делаю не так?
где должна быть эта процедура? если в глоб. модуле, то в каком именно? нужно ли ее навесить на элемент формы?
82 foxruby
 
09.07.13
08:40
ОбработкаВнешнегоСобытия - предопределенная. Нужно нажать правую кнопку мыши и выбрать.
83 kuromanlich
 
09.07.13
08:51
штрихкод по документы + запись в журнал регистрации
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший