8.х Штрихкодирование документов для поиска

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем dimamet, 13 апр 2009.

  1. TopicStarter Overlay
    dimamet
    Offline

    dimamet

    Регистрация:
    13 янв 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Решил ввести штрих-коды на документах для быстрого поиска на складе и в бухгалтерии
    В качестве значения штрих-кода решил использовать GUIN объекта

    1. вставил в макете РТУ в шапку рисунок (скопировал из макета "Этикетка")
    в печати макета вставил код
    Код:
    //**********************
    Попытка
    КомпонентШК = Новый COMОбъект("V8.Barcod.1");
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Рисунки.Штрихкод.Объект.ТипКода = 2; //ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128;
    ОбластьМакета.Рисунки.Штрихкод.Объект.Сообщение = ЭтотОбъект.Ссылка.УникальныйИдентификатор();
    ОбластьМакета.Рисунки.Штрихкод.Объект.ОтображатьТекст = Ложь;
    Исключение
    Сообщить("Компонента 1С:Печать штрихкодов не установлена на данном компьютере!", СтатусСообщения.Важное);
    Отказ = Истина;
    КонецПопытки;
    //***********************
    //печатаю  уин   "80e6626a-e06b-11dd-a271-001b78994328"
    //любуюсь на печатную форму :)
    
    //2. теперь в модуль Формы списка РТУ добавил процедуру
    Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    
    Если Событие = "BarCodeValue"
    И глТорговоеОборудование <> Неопределено Тогда
    //Получаем штрихкод и заносим его в выбранную строку
    ШтрихКод   = глТорговоеОборудование.УдалитьПрефиксИзШтрихКода(Данные);
    ДокументДляПоиска = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(ШтрихКод));
    
    КонецЕсли;
    
    КонецПроцедуры // ВнешнееСобытие()
    
    и тут ошибка так как считывается код "110405092012"
    не пойму что сделал не так?
  2. memfree
    Offline

    memfree

    Регистрация:
    21 июн 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Считывает как EAN13
    Упс, дата..
  3. provnick
    Offline

    provnick

    Регистрация:
    10 ноя 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Простите, а что значит УПС (имхо восклицание о чем?)?, пытался произвести ситуацию и не присваевает у меня ИД документа,
    //печатаю уин "80e6626a-e06b-11dd-a271-001b78994328"????
    //любуюсь на печатную форму :)????
    печатает цифры внизу штрихкода из свойств штрихкода, а тема интересная, может кто то сможет пошагово недопонимающим разъяснить? И поэтому дальше нет возможности отследить. Прошу по возможности ответить.
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Недавно реализовывал как раз подобную задачу.

    Честно скажу - УИН объекта мне не подходил, так как Штрихкод относился к печатной форме и я генерил уникальный штрихкод по определенным правилам в EAN13 формате. Все шикарно печаталось, а вот считывание начало сбоить... Ну и я бы вам посоветовал проверить чтение штрихкода в Блокноте - он выдаст именно то, что у вас закодировано - откройте Notepad и считайте штрихкод - выведется тот текст (как с клавиатуры). Может быть EAN128 не понимает вашего штрихкода.

    Решилось просто - я использовал типовую обработку ТОСервер - посмотрите как она работает в том же РТУ и доработайте чтение. Сама обработка очень корректно считывает полностью значение штрихкода и распознает его формат :)

    Как видите сначала делал как вы, закомментировал специально:
    Код:
    Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    ПолучитьСерверТО().ОбработатьВнешнееСобытие(Событие, Данные, ЭтаФорма);    
    
    //Если Событие = "BarCodeValue" Тогда
    //    ДокСсылка = сбШтрихКодирование.ПолучитьСсылкуНаОбъект(Данные);
    //    //Если ДокСсылка  Неопределено Тогда
    //    //    ДокСсылка.ПолучитьФорму().Открыть();
    //    //КонецЕсли;
    //КонецЕсли;
    КонецПроцедуры
    
    
    
    
    
    А вот как доработал одну процедуру в ТОСервере

    Код:
    // Функция осуществляет обработку внешнего события от сканеров штрихкода.
    //
    Функция ОбработатьСобытиеСШК(Обработка, Объект, Клиент, Событие, Данные, СШК)
    
    Результат = мНетОшибки;   
    
    ШК        = Неопределено;
    ТипШК     = Неопределено;
    Результат = Обработка.ОбработатьСобытиеСШК(Объект,
    Событие,
    Данные,
    ШК,
    ТипШК);
    Если ЗначениеЗаполнено(Результат) Тогда
    Обработка.СобытиеОбработано(Объект);
    Возврат Результат;
    КонецЕсли;
    
    Если ПустаяСтрока(ШК) Тогда
    Обработка.СобытиеОбработано(Объект);
    Возврат Результат;
    КонецЕсли;
    
    // Если это моя Обработка "Регистрация документов"
    Если ТипЗнч(Клиент.ЭтотОбъект) = Тип("ОбработкаОбъект.РегистрацияДокументов") Тогда
    //
    Ответ = Клиент.СШКДокумент(ШК);
    Если Ответ Тогда
    Обработка.СобытиеОбработано(Объект);
    Возврат Результат;
    КонецЕсли;
    КонецЕсли;
    //
    
    // код дальше...
    КонецФункции 
    
    
    
    
    В самой обработке еще добавил функцию как и в типовой везде
    Код:
    Функция СШКДокумент(ШК) Экспорт
    
    Ссылка = сбШтрихКодирование.ПолучитьСсылкуНаОбъект(сбШтрихКодирование.ПреобразоватьШтрихкод(ШК));
    Если ЗначениеЗаполнено(Ссылка) Тогда
    НСтр = ТЧДокументы.Добавить();
    НСтр.Документ = Ссылка;
    Иначе
    Сообщить("Не найдено соответствия: "+сбШтрихКодирование.ПреобразоватьШтрихкод(ШК));
    КонецЕсли;
    
    Возврат Истина;
    
    КонецФункции
    
    
    
    Подумал... всю обработку прикрепил к сообщению. Там при открытии и закрытии события есть. И еще пара функций. В принципе все.

    Вложения:

  5. provnick
    Offline

    provnick

    Регистрация:
    10 ноя 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Благодарю, буду пробовать, немножко отвлекли по работе, без практики нет зарплаты, без теории и отладки, нет практики.
  6. provnick
    Offline

    provnick

    Регистрация:
    10 ноя 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1

    Вложения:

    • Штрих.JPG
      Штрих.JPG
      Размер файла:
      55,1 КБ
      Просмотров:
      371
  7. provnick
    Offline

    provnick

    Регистрация:
    10 ноя 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Либо я неправильно что то понял, либо вообще не то что то, сбШтрихКодирование это вообще откуда? Переменная не определена. Вообще, кто нибудь может сформулировать, последовательность действий : Создать штрихкод на печатной форме документа->Считать его сканером->Найти по штрихкоду и открыть в журнале документов.
  8. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Охохо...
    Ну смотрите, мои модули встроенные я не прописывал - как я распознаю текст штрихкода - это неважно в данной задаче. Я просто про то какие процедуры использовались для типовой обработки.

    Штрихкод - ваш УИН не поддерживает, вы считали значение штрихкода в блокнот? Наверняка выдавал одну и ту же строчку.

    Вот как генерировал штрихкод я (12 значащих символов - EAN13):
    Вид документа 2 символа
    Вид печатной формы 1 символ
    Год 1 символ (последняя цифра)
    Организация 2 символа (у меня около 20 юрлиц в базе)
    Номер документа 6 символов (последних)

    Первые два параметра я в специальный справочник запихнул :)

    Потом при печати я записывал этот штрихкод в регистр сведений и распечатывал на форме
    Когда считывал данные - я искал по регистру сведений нужный объект и его отрабатывал как мне нужно

    Это гораздо правильнее :)

Поделиться этой страницей