Имя: Пароль:
1C
 
Штрих код в документе 1С
0 pers200590
 
02.06.10
04:55
ЗДравствуйте подскажите как реализовать пожелание
Вставить штрих код в печатную форму документа Реализация
Поиск по штрих коду документа в журнале по покупателям
1 lamme
 
02.06.10
04:58
для документа делаешь новый реквизит - ШК
по нему - возможность поиска.
при создании нового документа - генерируешь ШК.
При печати - вставляешь.
Для печати - посмотри шрифт -который в формах отчетности идет. Там реализована печать ШК без всяких компонент.
2 lamme
 
02.06.10
04:58
задача не сложная
и интересная
3 lamme
 
02.06.10
04:58
дальневосточникам привет
4 lamme
 
02.06.10
05:00
потом - для того чтобы шел поиск по документу по событию от сканера
в глобальном модуле есть процедура

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)

которая ловит событие от внешних данных и .. короче тут уже плясать надо :)
5 Бусидо
 
02.06.10
06:37
Почему дети в детском саду не переводятся, реквизиты придумывают?:))))
6 pers200590
 
02.06.10
06:42
(1) меня интересует обработка поиска по штрихкоду
генерация штрихкода получилась EAN13 вставка в документ - ок
7 pers200590
 
02.06.10
06:42
Дальний Восток forever
8 lamme
 
02.06.10
06:43
(5)
а че - больше сказать нечего было?
своего мнения - ты так и не высказал, значит - ничего нового предложить не можешь.
9 VoditelKobyly
 
02.06.10
06:43
(0) Тогда уж заводи сразу общий реквизит для всех документов. Иначе потом всё равно будешь переделывать. Им понравится и будут все документы так искать.
10 KTO
 
02.06.10
06:45
Всем привет, В ТиСе вроде был поиск по ШК в номенклатуре? Там можно глянуть, а может это моя ложная память)
11 VoditelKobyly
 
02.06.10
06:46
(6) А что там военного? Там всё просто. Ищешь документ в обработке внешнего события и позиционируешь в журнале на найденном.
Обработку внешнего события можешь для журнала написать свою. Я так понимаю
сканер у тебя уже есть и используется он для подбора товаров.
12 VoditelKobyly
 
02.06.10
06:47
Я надеюсь ШК для документов сгенерировал такой, чтобы с ШК товаров он не пересекался?
13 pers200590
 
02.06.10
06:49
(12) в ШК заложил номер документа число и порядкой номер автора документа вместилось в 13 цифр реквизит в табличной части создавать да или нет
14 pers200590
 
02.06.10
06:50
(11) да сканер есть и используется для подбора товара сканер с COM портом
15 lamme
 
02.06.10
06:50
16 lamme
 
02.06.10
06:51
17 pers200590
 
02.06.10
06:52
(15) шк вроде же должен формировать при открытии документа мне кажется а не при записи или я ошибаюсь
18 VoditelKobyly
 
02.06.10
06:53
(13) А в курсе, что бывают и другие типы ШК, например EAN-128?
19 lamme
 
02.06.10
06:53
(17)
ну да. я бы сказал - что при ВводНового()
тогда генерировать новый ШК
20 VoditelKobyly
 
02.06.10
06:54
(13) Зачем тебе в табличной? См. (9) Сделай общий реквизит, сразу легче искать будет. Используй EAN-128 и можешь заложить больше информации.
21 lamme
 
02.06.10
06:55
но в (15) там идет проверка - а вообще есть ли у данного дока ШК или нет
и если нет - то формируется даже уже для созданных ранее документов
22 lamme
 
02.06.10
06:55
(13)
и эта .. по табличной части будет ой как долго искаться ...

смотри (9)
сделай общий реквизит
23 VoditelKobyly
 
02.06.10
06:56
А зачем тебе автора то закладывать? Найдешь документ, из него уже любой другой реквизит вытащешь.
24 VoditelKobyly
 
02.06.10
06:57
Лучер тип документа заложи.
25 VoditelKobyly
 
02.06.10
06:57
Лучше тип документа заложи в ШК
26 pers200590
 
02.06.10
06:57
(18) вкурсе
27 PaulBC
 
02.06.10
06:57
Зачем вообще реквизит, уже ж есть номер? ШК генерить при печати документа, в обработке внешнего события его разбирать, искать документ по номеру.
28 pers200590
 
02.06.10
06:58
(20) подскажи насчет создания общего реквизита
29 VoditelKobyly
 
02.06.10
06:59
(27) Согласен, можно и так.
30 lamme
 
02.06.10
06:59
28
документы -общие реквизиты (там еще Автор есть реквизит такой)
создаешь новый.

все. больше нигде ничего прописывать не надо
это реквизит есть у всех документов.
31 lamme
 
02.06.10
07:00
(27) тоже вариант
не подумал
32 pers200590
 
02.06.10
07:00
(15) При вставке кода в процеду при записи написал переменная не определена EAN13
33 VoditelKobyly
 
02.06.10
07:00
(27) Только тогда генерить и раскручивать придется каждый раз.
34 pers200590
 
02.06.10
07:01
(33) вон даже как
35 VoditelKobyly
 
02.06.10
07:01
(27) А если номер документа ручками поменяют, или другой реквизит, который заложен в генерацию ШК, что тогда делать.
Вывод: нужен новый общий реквизит.
36 pers200590
 
02.06.10
07:02
(35) создал общий реквизит ШК
37 lamme
 
02.06.10
07:03
(35)
а если еще нумерация - в пределах года ... то вообще не поймешь
38 pers200590
 
02.06.10
07:03
В (15) че то мне не нравится а если поробюовать генерировать при печати документа тогда че получится
39 lamme
 
02.06.10
07:04
(27)
и по времени выполнения что быстрее будет
- искать по готовому ШК
- разобрать ШК на состявляющий, найти документ
40 VoditelKobyly
 
02.06.10
07:04
А лучше в ШК закладыать внутренний IDDoc документа при первой записи.
41 VoditelKobyly
 
02.06.10
07:05
(40)+ Гарантия уникальности.
42 lamme
 
02.06.10
07:05
(27)
это будет верно - если номер документа строка , а не число ?
43 lamme
 
02.06.10
07:06
(38)
так ты ж вроде сделал уже ..
я так понял  - тебе щас надо поймать событие от сканера и найти по штрих-коду документ
44 pers200590
 
02.06.10
07:08
(42) номер документа строка так че по номеру проще и быстрее будет точно (а если в код загнать номер и дату и все)
45 pers200590
 
02.06.10
07:10
Да я уже много вариантов перепробовал но стабильный сейчас вот этот
ОБщий реквизит ШК
процедура по генерации ШК
вставка в печатную форму
Вопросы как поймать событие по сканеру и найти по штрих коду и где вызвать выполнение генерации штрих кода лучше при записи или при вводеНового
46 pers200590
 
02.06.10
07:11
(43)Да я уже много вариантов перепробовал но стабильный сейчас вот этот
ОБщий реквизит ШК
процедура по генерации ШК
вставка в печатную форму
Вопросы как поймать событие по сканеру и найти по штрих коду и где вызвать выполнение генерации штрих кода лучше при записи или при вводеНового
47 VoditelKobyly
 
02.06.10
07:15
(45),(46) Событие надо ловить или в глобальном модуле, или в форме списка журнала.
48 VoditelKobyly
 
02.06.10
07:17
Если ловишь в глобальном, тогда, ищешь документ, находишь, открываешь журнал и позиционируешься на найденном. Если ловишь в журнале, то после нахождения просто позиционируешься. Правда надо учесть, что могут стоять отборы, и выбран другой период.
49 VoditelKobyly
 
02.06.10
07:18
Дай пример сгенерированного ШК.
50 pers200590
 
02.06.10
07:18
(47) это понятно вроде как в глобальном модлуе в коммнентарии к обработке ОБработка Внешенего события написано что ловит данные в закрытом состоянии помоему
51 Бусидо
 
02.06.10
07:18
ШК бывает куча, ну точнее их несколько. Только матросы с тепловоза делают реквизит. Чем мешает дата+Номер+контрольный символ?
52 pers200590
 
02.06.10
07:18
(49) щас кину
53 VoditelKobyly
 
02.06.10
07:20
(51) А для матросов советую перечитать (35)
54 pers200590
 
02.06.10
07:21
нашел много вариантов

Первый
Функция СозданиеШК(Док) Экспорт

   Перем СодержСтр[7];
   Перем ШК;
   ЗначениеДок = ЗначениеВСтрокуВнутр(Док);

   ЗначениеДок=СтрЗаменить(ЗначениеДок,"}",",");
   ЗначениеДок=СтрЗаменить(ЗначениеДок,"{","");
   ЗначениеДок=СтрЗаменить(ЗначениеДок,"""","");
   Длина=СтрДлина(ЗначениеДок);
   Для ш=1 По 8 Цикл
       Поз=Найти(ЗначениеДок,",");
       Если Поз>0 Тогда
           ШК=ШК+Лев(ЗначениеДок,Поз-1);
           СодержСтр[ш]=Лев(ЗначениеДок,Поз-1);
           ЗначениеДок=Прав(ЗначениеДок,Длина-Поз);
           Длина=СтрДлина(ЗначениеДок);
       КонецЕсли;
   КонецЦикла;
   ШК=Строка(СокрЛП(СодержСтр[4]))+"*"+Строка(СокрЛП(СодержСтр[7]))+"*";
   Возврат ШК;
   
КонецФункции

Второй
Функция глГенерацияШК(Конт) Экспорт

   ШК = Строка(ДатаГод(Конт.ДатаДок)) + Строка(Конт.НомерДок);

   ДлинаШК = СтрДлина(ШК);      
   Пока (12 - ДлинаШК) > 0 Цикл  
       ДлинаШК = ДлинаШК + 1;
       ШК = Строка("1") + ШК;
   КонецЦикла;
   
   Если СтрДлина(ШК) > 12 Тогда
       ШК = Прав(ШК, 12);        
   КонецЕсли;
   
   ШтрКод = ШК;
   ШтрКод = СокрЛП(ШтрКод);
   ШтрКод = Лев(ШтрКод,12);
   ШтрКод = Число(ШтрКод);
   Четн   = 0;
   Нечетн = 0;
   Для Индекс = 1 По 6 Цикл
       Четн = Четн + Сред(ШтрКод,2 * Индекс,1);
   КонецЦикла;
   Четн = Четн * 3;
   
   Для Индекс = 1 По 6 Цикл
       Нечетн = Нечетн + Сред(ШтрКод,2 * Индекс - 1,1);
   КонецЦикла;
   
   КонтЦифра = (Четн + Нечетн) / 10 - Цел((Четн + Нечетн) / 10);
   КонтЦифра = 10 - Цел(КонтЦифра * 10);
   Если КонтЦифра = 10 Тогда
       КонтЦифра  = 0;
   КонецЕсли;
   Возврат Число(Строка(ШтрКод) + Строка(КонтЦифра));
КонецФункции   // ГенерацияШК()

Третий
Процедура глСформироватьШтрихкодДокумента(Конт, ШК) Экспорт
   
   Если ПустаяСтрока(ШК) = 1 Тогда
   
       ПрефиксыДокументов = СоздатьОбъект("СписокЗначений");
       ПрефиксыДокументов.ДобавитьЗначение("001", "Реализация");
       ПрефиксыДокументов.ДобавитьЗначение("002", "СчетФактураВыданный");                
       // и т.д
       КодДокумента        = СокрЛП(Прав(Конт.НомерДок,7));
       КодВидаДокумента    = Строка(Константа.ПрефиксВидаДокумента) + ПрефиксыДокументов.Получить(Конт.Вид());
   
       
       Префикс = Прав(ДатаГод(Конт.ДатаДок), 2);
   
       ИспКолво = 10;
       
       Штрихкод = СимволыВЦифры(Прав(СокрЛП(КодДокумента+КодВидаДокумента), ИспКолво));
       Штрихкод = Префикс + глДополнитьСтрокуЛ(Штрихкод, "0", ИспКолво);
               
       ШК = Штрихкод + глКонтрольныйСимволEAN(Штрихкод, 13);
   КонецЕсли;
                   
КонецПроцедуры // глСформироватьШтрихкодДокумента()
55 pers200590
 
02.06.10
07:22
(53) реквизит общий создал а номер документа заблокировал продавцам чтобы не химичили
56 VoditelKobyly
 
02.06.10
07:23
(54) Пока не хочу вникать в код, покажи просто результат: 13 цифр что получилось от любого документа.
57 VoditelKobyly
 
02.06.10
07:28
(55) А сколько продавцов одновременно работают с программой? В программе есть механизмы позволяющие избежать присвоения одного номера при одновременной работе нескольких продавцов?
58 pers200590
 
02.06.10
07:28
(56) 1120100000010
документ 1 от 02.06.2010
59 pers200590
 
02.06.10
07:28
(57)10 человек одновременно
60 lamme
 
02.06.10
07:28
(15) что мешает быть у 2 различных видов документов 2 одинаковых номера в пределах дня ?
например
Реализация № 123 от 01 03 2010
Счф № 123 от 01 03 2010
и что тогда будет с ШК ?

перечитай (35)
61 VoditelKobyly
 
02.06.10
07:29
(58) Не пойдет. Есть вероятность что будет товар с таким ШК
62 pers200590
 
02.06.10
07:30
(61) вероятность маленькая
63 VoditelKobyly
 
02.06.10
07:30
(58) Или надо будет разруливать ситуации подбора товаров и поиска документов сканером.
64 pers200590
 
02.06.10
07:31
(60)так я же говорю номер поменять ни кто не может
65 lamme
 
02.06.10
07:31
11 - это вроде как бы код страны, где произвелся товар
кто значет - что за страна с кодом 11.
?
66 VoditelKobyly
 
02.06.10
07:31
(62) Используй префиксы с 22 по 28
67 pers200590
 
02.06.10
07:32
(66)у меня на дисконках префикс 25 на товаре 20 и 23 наши штрихи
68 VoditelKobyly
 
02.06.10
07:33
Скажи себе: все штрих коды документов у меня будут начинаться на 26 и это используй. Некоторые (ниболее правильные люди)заводят это в настройку или константу.
69 pers200590
 
02.06.10
07:33
(65) можешь перечитать (46)
70 lamme
 
02.06.10
07:34
перечитал.
и что ?

генерировать -научился.
печать -научился.
осталось - поймать от сканера и найти
71 VoditelKobyly
 
02.06.10
07:34
(67) И это правильно с 22 по 28 используются для внутренних нужд.
72 pers200590
 
02.06.10
07:35
(70) куда мне вставить процедуру генерации лучше???
73 VoditelKobyly
 
02.06.10
07:35
(72) Ответь на 57 и я тебе отвечу на (72)
74 pers200590
 
02.06.10
07:36
В программе работают 10 чел одновременно механизмы нарверно есть Стоит ТИС
75 lamme
 
02.06.10
07:37
Вопросы как поймать событие по сканеру и найти по штрих коду и где вызвать выполнение генерации штрих кода лучше при записи или при вводеНового

событие по сканеру ловиться в глобальном модуле предопределн\енная процедура
ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
осюда уже делаешь - как тебе надо

генерацию - лучше в ПриЗаписи() - тут надо проверку включить -чтоб не гененировать ШК для уже существующего.
хотя можно и в ВводНового()
76 pers200590
 
02.06.10
07:37
(73)В программе работают 10 чел одновременно механизмы нарверно есть Стоит ТИС
77 lamme
 
02.06.10
07:38
я бы в ПриЗаписи вставил.
так будет формироваться ШК - для уже созданных товаров

а в ВводНового() = только для новых ...
хотя обсуждаемо конечно
78 lamme
 
02.06.10
07:38
уже созданных товаров = уже созданных документов
79 pers200590
 
02.06.10
07:39
(78)твой совет понял а ты часто на этом форуме сидищь
80 lamme
 
02.06.10
07:39
(79)
интим не предлагать !
81 lamme
 
02.06.10
07:40
(79)
иногда бываю.
когда работы нет или лень работать
82 VoditelKobyly
 
02.06.10
07:40
(76) Если используешь 1-й алгоритм, то можно об этом не заботиться и вставить ПриЗаписи().
Иначе надо смотреть эти механизмы.
83 pers200590
 
02.06.10
07:41
(81)понятно просьба можешь перечитать мой темы и дать советы по некоторым
84 lamme
 
02.06.10
07:42
83
у тебя тем - 18
что - на все давать ?
стучись в аську тогда ... че тут полемику разводить
85 pers200590
 
02.06.10
07:43
(84)Поиск дублей справочника Контрагенты »  
ПолучитьОстаток() »  
ТиС Остаток в формеСписка Номенклатуры »
86 lamme
 
02.06.10
07:46
Поиск дублей справочника Контрагенты

там же ответили везде.

что не так ?
87 pers200590
 
02.06.10
07:47
там толком ничего не ясно
88 lamme
 
02.06.10
07:48
и эта ..

ПолучитьОстаток()  - тут пишешь что не работает
Виснет код;- тут, что рабоатет, но виснет ...
89 lamme
 
02.06.10
07:48
давай в аську
90 lamme
 
02.06.10
07:48
темы (0) - это не касается
91 pers200590
 
02.06.10
07:49
у меня длин она не установлена ща установлю
92 VoditelKobyly
 
02.06.10
07:54
(91) Ну вот, начал прыгать с одной темы на другую и убежал не попращавшись.
93 lamme
 
02.06.10
08:08
(92)
судя по всему - он везде так
94 VoditelKobyly
 
02.06.10
08:12
(93) Понял, больше не помогаем, пусть сам в своей каше варится.
95 Dm81
 
02.06.10
08:12
(0) я сделал штрих-код, который формируется по номеру документа. Так же в нем закодирован и тип документа. Печатается с помощью barcode.ocx. Поиск взлетает на "ура".
96 VoditelKobyly
 
02.06.10
08:13
(95) Пиши заяку на получение Нобелевской :)
97 Это_mike
 
02.06.10
08:18
А поиском воспользоваться уже предлагали?
98 pers200590
 
02.06.10
08:42
(95) может поделишся кодом
99 pers200590
 
02.06.10
08:42
(93) я никого не кидаю и не прыгаю с темы на тему
100 Это_mike
 
02.06.10
08:43
(98) Чем тебе вариант скунки не угодил?
102 Это_mike
 
02.06.10
08:44
(95) Ничего, что даже номера [могут быть] не уникальны?
103 VoditelKobyly
 
02.06.10
08:47
(99) Тогда ты просто сильно шустрый и я за тобой не успел и отстал.
104 pers200590
 
02.06.10
08:52
Сейчас добавлял в базу общий реквизит ШК и у меня вывалилось предупреждение  Нарушены правила уникальности номеров документов что это может быть из-за чего
105 ДенисЧ
 
02.06.10
08:56
(104) У тебя они нарушены были до добавления. УРБД есть?
106 pers200590
 
02.06.10
08:57
неа нету
107 ДенисЧ
 
02.06.10
08:58
(106) Возьми архив (который ты сделал перед добавлением реквизита) и запусти на нём ТИИ
108 pers200590
 
02.06.10
09:01
(107) щас попробую