Хало всем. Сегодня я хотел бы немного рассказать и совсем чуть-чуть показать. Совсем недавно, возникла необходимость написать небольшую обработку, которая бы формировала из определенных данных номенклатуры (штрихкод EAN 13, масса нетто, серия, дата производства, срок годности, серийный номер) — штрихкод формата GS1.
Проблема еще и в том, что стандартными средствами 1С сформировать такой штрихкод невозможно (на данный момент). Поэтому на просторах инфостарта, была найдена соответствующая библиотека с расширением (*.dll), в которой находились все необходимые процедуры и функции, позволяющие сделать невозможное.
Если очень кратко, то суть задачи состояла в следующем — из этого [01]02420000106065[11]170118[17]170218[10]12345[21]12 получить вот это
Используя имеющуюся dll-библиотеку и функционал 1С. Как это сделать? Вам понадобится :
1. Платформа версии 8.3.10.2699 или выше (х86 это важно).
2. Конфигурация Бухгалтерия 2.0 версии 2.0.16.2 (можно другие пробовать, но я тестировал только на указанной).
3. Архив, который Вы можете купить за стартмани. В нем будет dll-библиотека, файл обработки, сопутствующая документация, в которой описаны требования к формированию штрихкодов GS1.
4. И наверное, время чтобы дочитать эту статью до конца, дабы потом не было недоразумений вроде: "А шо она не работает?".
Дальше будет кратко описан алгоритм работы обработки, а также условия, необходимые для ее безошибочной работы.
1. Штрихкод номенклатуры находится в справочнике Номенклатура и имеет формат EAN-13. Штрихкод содержит только цифры, также допускается содержание спец.символа в виде знака вопроса "?".
2. Масса нетто находится в справочнике номенклатуры и имеет формат ХХХ.ХХХ , что соответствует формату 3103 в документации.
3. В базе ведется учет по сериям.
4. Серия является также датой производства.
5. Серия доступна в ТЧ документа Реализация товаров и услуг и заполнена.
6. Срок хранения товара содержится в регистре сведений СоставУсловияХраненияНоменклатуры.
7. Вроде все основные моменты описал. Если что — остальное допишу позже. В любом случае, если есть несоответствия по пунктам, думаю труда не составит поправить (например пункт 7, формат массы). В архиве, есть инструкция, где описаны все требования и стандарты, если Вы разработчик 1С — то без труда допишите пару строк под Ваш формат массы. В обработке каждая строка прокомментирована, чтобы было сподручнее тем, кто надумает что-то там изменять. Ну а если что-то кардинально разнится с Вашей конфигурацией — можно просто взять эту обработку за основу, для разработки своего варианта, т.к большая часть функционала уже в ней есть.
Важно понимать! Эта обработка не панацея, и подойти может не всем. Убедительная просьба, внимательно прочитать эту статью! Это я говорю тем, кто любит скачивать, нажимать одну кнопочку и "что бы оно само все делалось".
Ниже представлена выдержка из документа, который будет в архиве. Собственно по нему и создавалась логика работы обработки.
Здесь описаны основные (обязательные) идентификаторы, из которых формируется штрихкод GS1.
Вот еще одна табличка, с описанием этих же идентификаторов, но в более упрощенной форме.
Проведу соответствие по идентификаторам в моей обработке:
01 — штрихкод EAN-13
3102 или 3103 — масса нетто. 3102 (ХХХХ.ХХ), 3103 (ХХХ.ХХХ). У меня использовался последний.
11,17,10 — формировались из серии. До этого момента, я и не знал, что возможен вариант и/или с идентификаторами 11, 17. У меня используется и дата изготовления, и дата окончания срока годности. Но т.к дата окончания срока годности формируется из даты производства, а дата производства — это серия, то Вам необходимо лишь, чтобы велся учет по сериям и серия представляла собой подобие даты. Обработка берет серию, не из карточки номенклатуры, а из документа реализации.
21 — серийный номер короба в производственной партии. У меня этот идентификатор не используется в обработке.
Теперь небольшой гид по работе с обработкой. Открывается обработка через меню Файл — Открыть. Зарегистрировать обработку в базе, не получилось. Ругается на отсутствие метода печати, хотя все методы есть.
Открыли, увидели окно, изображенное на картинке ниже.
Теперь пробежимся по полям:
Высота картинки — каждый сформированный штрихкод будет выводиться в виде картинки. Этот параметр задает высоту каждого изображения.
Ширина картинки — ширина изображения штрихкода соответственно.
Отображать текст — включает/выключает показ составляющих штрихкода (цифр и индентификаторов). Т.е показ к примеру такого кода под картинкой [01]02420000106065[11]170118[17]170218[10]12345[21]12.
Количество штрихкодов в строке — определяет количество колонок с картинками на странице.
Путь к внешней компоненте — указываете папку, в которой лежит библиотека GAP1CBarcode.dll идущая в архиве с обработкой. Путь представляет собой обычную строку, которая не должна заканчиваться на .
Документ РТиУ — указываете документ реализации по позициям которого необходимо сформировать штрихкоды.
Показывать дополнительные области макета — включает/выключает отображение области на макете с параметрами, введенными на форме.
Часть полей деактивирована, чтобы избежать возникновения ошибок.
Ввели данные, нажали кнопку выполнить. Получаем макет с картинками штрихкодов и названием к ним.
На этом, думаю, можно закончить. Если у Вас есть вопросы — оставляйте здесь в комментариях.
А реально двумерный штрихкод формирует? Например ШК GS1 DataBar Expanded Stacked, на примере не видно. И как с управляемыми формами, будет работать?
Чем от этой публикации отличается?https://infostart.ru/public/824109/
(2) Разрабатывалась обработка на тойже компоненте, что и по ссылке.
(2)Но только по ссылке — обработка выводит один штрихкод, по УЖЕ СФОРМИРОВАННОМУ коду, который Вы должны ввести в соответствующее поле. Моя обработка формирует штрихкоды без ввода дополнительной информации, для позиций из табличной части документа реализации. Вы лишь указываете документ реализации, и вам выводится список штрихкодов для каждой позиции.
Здравствуйте, а контрольный символ формируется?