Хало всем. Сегодня я хотел бы немного рассказать и совсем чуть-чуть показать. Совсем недавно, возникла необходимость написать небольшую обработку, которая бы формировала из определенных данных номенклатуры (штрихкод 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 идущая в архиве с обработкой. Путь представляет собой обычную строку, которая не должна заканчиваться на \.
Документ РТиУ - указываете документ реализации по позициям которого необходимо сформировать штрихкоды.
Показывать дополнительные области макета - включает/выключает отображение области на макете с параметрами, введенными на форме.
Часть полей деактивирована, чтобы избежать возникновения ошибок.
Ввели данные, нажали кнопку выполнить. Получаем макет с картинками штрихкодов и названием к ним.
На этом, думаю, можно закончить. Если у Вас есть вопросы - оставляйте здесь в комментариях.