Простое штрихкодирование документов

1С Простое штрихкодирование документовБыла поставлена задача на предприятии, где ежедневно выписывается по 300-500 накладных организовать штрихкодирование документов, для более удобной работы с бумажным носителем в дальнейшем. И вот результат…

Конфигурация «Торговля и склад». Хотелось сделать как можно проще и быстрее, и в тоже время надежно. На решение задачи ушло 1,5 часа. И так приступим….

У нас будет использоваться штрихкод EAN13. Создаем общий реквизит документов

Общий реквизит документов "EAN13"

Тип — «Строка», длина — 13, отбор по реквизиту

Добавляем в глобальный модуль процедуру

//******************************************************************************
// глСформироватьШтрихкодДокумента(Конт)
//
// Параметры:
//  Конт - контекст документа для которого необходимо сформировать штрихкод
//    EAN13- реквизит документа содержащий штрихкод
// Возвращаемое значение:
//  Нет                
//
// Описание:
//  На основании номера документа и вида документа формирует штрихкод в формате
//  EAN
//
Процедура глСформироватьШтрихкодДокумента(Конт, EAN13) Экспорт

   Если ПустаяСтрока(EAN13) = 1 Тогда
   
      ПрефиксыДокументов = СоздатьОбъект("СписокЗначений");
      ПрефиксыДокументов.ДобавитьЗначение("001", "Реализация");
      ПрефиксыДокументов.ДобавитьЗначение("002", "СчетФактураВыданный");               
      // и т.д
      КодДокумента        = СокрЛП(Прав(Конт.НомерДок,7));
      КодВидаДокумента    = ПрефиксыДокументов.Получить(Конт.Вид());

      Префикс = Прав(ДатаГод(Конт.ДатаДок), 2);

      ИспКолво = 10;
      Штрихкод = СимволыВЦифры(Прав(СокрЛП(КодДокумента+КодВидаДокумента), ИспКолво));
      Штрихкод = Префикс + глДополнитьСтрокуЛ(Штрихкод, "0", ИспКолво);
      EAN13 = Штрихкод + глКонтрольныйСимволEAN(Штрихкод, 13);

   КонецЕсли;

КонецПроцедуры // глСформироватьШтрихкодДокумента()

После этого в документы, которым будут присваиваться штрихкоды добавляем вызов
вышеописанного в процедуру «ПриЗаписи()»

Процедура ПриЗаписи()
   глСформироватьШтрихкодДокумента(Контекст, EAN13);
КонецПроцедуры

В результате при первой записи документа ему будет присвоен штрихкод состоящий
из следующих блоков:

  1. год документа (2 символа);
  2. семь цифр справа от номера документа;
  3. код вида документа (3 символа);
  4. контрольный символ;

Осталось только вставить в печатную форму объект ActiveBarcode и настроить необходимые свойства у него.

А вот и результат ;-)

Штрихкод на печатной форме

12 комментариев к записи «Простое штрихкодирование документов»

  1. Делал подобное. У Вас не учтен многофирменный учет. При таком алгоритме будут получаться одинаковые штрих-коды для документов одного вида у которых различается только префикс номера.

  2. Sk0rp, да действительно, поэтому и простое, хотя учесть многофирменность здесь тоже достаточно легко

  3. чей то и не завтра и уже послезавтра, наверное нехватка времени? 🙁

  4. Жду, у самого пока не получается, документ выглядит солидно со штрихом, не бросили ли вы свое дело?.

  5. Как идея :

    Вместо кода «ПрефиксыДокументов = СоздатьОбъект(«СписокЗначений»);

    ПрефиксыДокументов.ДобавитьЗначение(«001», «Реализация»);

    ПрефиксыДокументов.ДобавитьЗначение(«002», «СчетФактураВыданный»);
    // и т.д»

    можно использовать порядок вида документа в метаданных

    • А почему бы и нет. Плюс вид документа будет из двух символов, а высвободившийся отдать под префикс собственному юр.лицу — чтобы учесть многофирменность

  6. Пингбэк: Простое штрихкодирование документов. Продолжение… | Александр Шкураев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *