|
Штрихкоды, БП - как сделать автоматическую генерацию штрихкодов для 1С Злопчинский, Михаил Козлов, Garykom, runuts, , lEvGl, Шурик71, elka302, ANDRU48, arsik, Александр111, U4Me2, troyka
| ☑ | ||
---|---|---|---|---|
0
AlexLAV
05.03.25
✎
01:08
|
Hi All! Ни разу ни делал. Есть Бухгалтерия предприятия 3.0.170.19 Нужно сделать автоматическую генерацию штрихкодов, чтобы распечатывать и наклеивать на оприходаванные материалы и инструменты штрих-код и, соответственно, при выдаче со склада просто сканером штихкодов проводить и вводить в документ. Подскажите, пожалуйста, ключевые моменты. Пока тренируюсь на кошечках. Установка внешней компоненты:Для продолжения работы требуется установка внешней
компоненты 1С:Сканеры штрихкода (Native Api) Настройка драйвера "1С:Сканеры штрихкода" :: Инструкции по работе с торговым оборудованием :: Методическая поддержка 1С:Предприятия Подскажите, пожалуста, основные тезисы. |
|||
1
Злопчинский
05.03.25
✎
01:39
|
Присобачить к документу оприходования (поступление, перемещение, да к любому где в ТЧ есть "номенклатура") обработку-генерацию ШК к тем позициям где нет ШК. Генерация ШК по формату ЕАН13 стопудово должна быть в БСП, если нет - код найти нетрудно. Ну и + печатную форму вывода этикеток.
Какие основные тезисы еще нужны? технические? как подключиать и выводить на принтера этикеток? |
|||
2
Kigo_Kigo
05.03.25
✎
11:18
|
В БП В номенклатуре есть ШК, в расширении накинуть туда на форму - кнопку - сформировать, по нажатии событие генерации, вам скорее всего нужен "еан 13", берем статью https://infostart.ru/1c/articles/1928785/ и от туда берем код.
как формировать ШК первые 2 или 3 цифры любые начинающиеся на "2" - этот диапозон "2хххххххххх"(12 чисел) отведен для внутреннего использования и не используется в международном классификаторе ЕАН 13, там уже по шаблону, надо заполнить 3 первых и 9 остальных цифр, я бы туда тиснул бы код товара и код единицы измерения(или вес если он есть и товар весовой), 13- символ заполнять не надо, он генерится автоматом, удачи |
|||
3
arsik
гуру
05.03.25
✎
10:50
|
(0)
1) Определяетесь с префиксом внутреннего ШК 2) При записи номенклатуры, если у номенклатуры отсутствует ШК с внутренним префиксом - создаете 3) Пере запуском обработкой создаете для существующей номенклатуры ШК с внутренним префиксом. Пример для какой то конфы, для БП может чуть отличаться//Модуль объекта Номенклатуры Процедура ПередЗаписью(Отказ) Если не ЭтоГруппа Тогда Если Ссылка.Пустая() Тогда ДополнительныеСвойства.Вставить("ВнутреннийШтрихКодОтсутствует", Истина); иначе ДополнительныеСвойства.Вставить("ВнутреннийШтрихКодОтсутствует", НЕ Справочники.Номенклатура.ЕстьВнутреннийШтрихКод(Ссылка)); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПриЗаписи(Отказ) Если не Отказ и ПолучитьЗначениеПараметраСтруктуры(ДополнительныеСвойства, "ВнутреннийШтрихКодОтсутствует", Ложь) Тогда Справочники.Номенклатура.СоздатьВнутреннийШтрихКод(Ссылка); КонецЕсли; КонецПроцедуры //Модуль менеджера номенклатуры Функция СоздатьВнутреннийШтрихКод(Ссылка) Экспорт УстановитьПривилегированныйРежим(Истина); МенеджерЗаписи = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Объект = Ссылка; МенеджерЗаписи.Штрихкод = СформироватьШтрихкодEAN13Внутренний(Ссылка); МенеджерЗаписи.Записать(); УстановитьПривилегированныйРежим(Ложь); КонецФункции Функция ЕстьВнутреннийШтрихКод(Ссылка) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ | Штрихкоды.Штрихкод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | Штрихкоды.Объект = &Ссылка | И Штрихкоды.ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) | И (ВЫРАЗИТЬ(Штрихкоды.Штрихкод КАК СТРОКА(2))) = ""20"" | И ДЛИНАСТРОКИ(Штрихкоды.Штрихкод) = 13"; Возврат НЕ Запрос.Выполнить().Пустой(); КонецФункции Функция СформироватьШтрихкодEAN13Внутренний(Товар) Экспорт ДлинаКода = 10; НовыйКод = EAN13("20" + СформироватьПроизвольныйКод(10)); Пока НЕ ПроверкаНовогоШтрихкода(НовыйКод) Цикл НовыйКод = EAN13("20" + СформироватьПроизвольныйКод(10)); КонецЦикла; Возврат НовыйКод; КонецФункции // СформироватьШтрихкод() Функция EAN13(Код) ШтрКод = Формат(Число(Код),"ЧН=; ЧВН=; ЧГ=0; ЧЦ="+?(СтрДлина(Код)<8,"7","12")); Четн = 0; Нечетн = 0; Если СтрДлина(Код)=7 Тогда Итераций = 4; Иначе Итераций = 6; КонецЕсли; Для Индекс=1 По Итераций Цикл Четн=Четн+Сред(ШтрКод,2*Индекс,1); Нечетн=Нечетн+Сред(ШтрКод,2*Индекс-1,1); КонецЦикла; Если СтрДлина(Код)=7 Тогда Нечетн=Нечетн*3; Иначе Четн=Четн*3; КонецЕсли; КонтЦифра=10-(Четн+Нечетн)%10; Если КонтЦифра=10 Тогда КонтЦифра=0; КонецЕсли; Рез=ШтрКод+Строка(КонтЦифра); Возврат Рез; КонецФункции // EAN13() Функция СформироватьПроизвольныйКод(КоличествоЗнаков = 22) Возврат Формат(СлучайноеЧисло(КоличествоЗнаков),"ЧЦ=10; ЧН=; ЧВН=; ЧГ=0"); КонецФункции // СформироватьПроизвольныйКод() Функция ПроверкаНовогоШтрихкода(Штрихкод) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Штрихкод",Штрихкод); Запрос.Текст = "ВЫБРАТЬ | Штрихкоды.Штрихкод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | Штрихкоды.Штрихкод = &Штрихкод"; Возврат Запрос.Выполнить().Пустой(); КонецФункции // ПроверкаНовогоШтрихкода() Функция СлучайноеЧисло(Порядок) Мин = 0; //минимальное допустимое значение произвольного кода Макс = 1; //максимальное допустимое значение произвольного кода Для х = 0 По Порядок - 1 Цикл Макс = Макс * 10; КонецЦикла; Макс = Макс-1; // генерируем GUID и оставляем только цифры НовыйУИ = СокрЛП(Новый УникальныйИдентификатор); НовыйУИ = СтрЗаменить(НовыйУИ,"-",""); НовыйУИ = СтрЗаменить(НовыйУИ,"a",""); НовыйУИ = СтрЗаменить(НовыйУИ,"b",""); НовыйУИ = СтрЗаменить(НовыйУИ,"c",""); НовыйУИ = СтрЗаменить(НовыйУИ,"d",""); НовыйУИ = СтрЗаменить(НовыйУИ,"e",""); НовыйУИ = СтрЗаменить(НовыйУИ,"f",""); // знаменатель должен иметь такое же количество нулей + 1 Знаменатель = 10; Для н = 2 По (СтрДлина(СтрЗаменить(НовыйУИ,Символы.НПП,""))) Цикл Знаменатель = Знаменатель * 10; КонецЦикла; // получим дробное случайное число в диапазоне от 0 до 1 Случ = Число(НовыйУИ) / Знаменатель; // Преобразуем его в случайное число из заданного интервала, округляем до целого. ЧислоИзИнтервала = Мин(Макс(Окр(Мин + (Макс-Мин)*Случ),Мин),Макс); Возврат ЧислоИзИнтервала; КонецФункции // СлучайноеЧисло() |
|||
4
lEvGl
гуру
05.03.25
✎
11:05
|
(0) если позиций номенклатуры хотя бы тысячи 2 (даже) и объем оборота через склад более менее существенный, то либо не взлетит либо объем подготовительный работы по расклейке будет во много раз превышать выхлоп от "аутоматического создания документа" при выдаче. Для чего это надо?
зы. а сканер и печать шк прилепить не проблема |
|||
5
AlexLAV
05.03.25
✎
12:15
|
(1) Спасибо - примерно себе представляю что делать, ну как 1С, который никогда не разворачивал ни одной сети на CISCO, представляет себе, как создать сегменты Ethernet (VLANs) и как порезать на подсети для того, чтобы и сейчас грамотно организовать и потом была возможность роста. Одно дело пользоваться решением, которое кто тто спроектировал и запустил и другое - представлять как оно примерно делется но не разу не создавать самому. Не разу не внедрял я ШК - только настраивал рабочие места, подключая и настраивая ККТ, принтеры ШК, сканеры ШК. Но создать логику и автоматизацию в базе где ее нет - это уровень повыше, но в данной задаче не кровень бох) Но вот тут много откликов - дай бог смогу сделать)) Очень приятно, что многие отликнулись и указали на ключевые моменты. 1 000 мерси!
|
|||
6
AlexLAV
05.03.25
✎
12:19
|
(4) Желание бухгалтерии - закон. Я ж хочу добиться чтобы ШК создавался при создании каждой позции автоматом.
|
|||
7
AlexLAV
05.03.25
✎
12:47
|
(3) Спасибо! Внутренние префиксы для разных складов - это правильный подход? Или они для другого?
|
|||
9
Kigo_Kigo
05.03.25
✎
16:04
|
(6) "Я ж хочу добиться чтобы ШК создавался при создании каждой позции автоматом"
Ну тогда тебе в расширение в процедуру приЗаписи с дерективой - после |
|||
10
Garykom
гуру
05.03.25
✎
13:01
|
(0) (5) Не твой уровень
Наймите специалиста |
|||
11
Garykom
гуру
05.03.25
✎
13:06
|
(10)+ Точнее если цель "мучать кошек" - можешь дальше развлекаться
Если цель быстро и безболезненно внедрить - надо звать спецов В задаче внедрения ШК (полный этап от генерации и принтеров этикеток и далее сканеры ШК и возможно даже ТСД) - слишком много подводных камней и тонких, неочевидных моментов Без опыта (который нарабатывается реально долго) постоянно будет хрень и сбор всех грабель |
|||
12
lEvGl
гуру
05.03.25
✎
13:36
|
(6) создался ок, потом
не напечатался не наклеился не отсканировался при выдаче самый объем в этой затее - клеить. причем, я так понимаю, вы хотите на входе, то есть клеить придется все подряд. потом оно постояло, где то нерадиво приклееная этикетка отпала, другая отсохла, третья еще что то, причины у всех этих следствий разные, но результат один - этикетки в момент забора со склада на таре может не быть.. аа ладно палить контору, в (1) тебе все правильно сказали зы. и да, зря думаете, что 1С не умеет домен организовать, на подсети разбить и интернет раздать |
|||
13
Garykom
гуру
05.03.25
✎
13:35
|
(12) >не отсканировался при выдаче
вот эту последнюю надо решать практически первой, правильно выбирать : 1. прямая термопечать (специальная термобумага/этикетки)? - недолгое хранение в щадящих условиях (без яркого света и температуры) с быстрой оборачиваемостью 2. или термотрансферная (обычная бумага/этикетки с красящей лентой-риббоном)? - долгое хранение, тяжелые условия 3. или изврат на обычных лазерках с этикетками-самоклейками A4? - вариант только для очень малого объема |
|||
14
lEvGl
гуру
05.03.25
✎
13:44
|
(13)
3. или изврат на обычных лазерках с этикетками-самоклейками A4? - вариант только для очень малого объема был и такой изврат с обычными лазерными (даже покупали готовые разрезанные на 8 частей А4, подложка целая, клейкий слой разрезан "с завода") и другой изврат - А4 целиком висит под потолком на стеллаже уровня 3-этажного дома, чтобы видно было шрифт 48, а в базе же вести ячейку лень, легче заставить карщика с грузчиком бумагу прикрутить. Это частные случаи конечно, но забывать и о таком не стоит. Забывать поржать. |
|||
15
arsik
гуру
05.03.25
✎
13:47
|
(13) Вот еще вариант к 3). Но точная рука нужна.
|
|||
16
Garykom
гуру
05.03.25
✎
13:50
|
(15) это не 3 это 4
маркировщики - которые наносят "ШК" сразу на "изделие" бывают разных типов и термотрансферные и струйные и лазерные выжигалки |
|||
17
ANDRU48
05.03.25
✎
14:12
|
Забрать из ЕРП для регистра сведений "ШтрихкодыНоменклатуры", справочник "ШаблоныЭтикетокИЦенников", обработка "ПечатьЭтикетокИЦенников2_5"
|
|||
18
AlexLAV
05.03.25
✎
14:30
|
(12) Далеко не все подряд. Только определенную номенклатуру. И еще раз - все не так сложно. Особенно, если есть где посмотреть в продакшене рабочие решение, которое работает годами и в Х 1 000 больших тиражах.
|
|||
19
AlexLAV
05.03.25
✎
14:37
|
В другой конторе из нескольких десятков тысяч едениц на складах ничего не отваливается и все работает. Но внедрял не я. Несколько Зебр пулеметами печатают. А учиться всегда полезно - особенно, когда уже скучно ходить вдоль моря под пальмами.
|
|||
22
lEvGl
гуру
05.03.25
✎
16:04
|
(18) в продакшене ПО не будет написан ответ ни на один предметный вопрос из (13) например, а в этом проекте задач такого масштаба ну около.. 100 пусть будет
|
|||
23
Злопчинский
05.03.25
✎
20:15
|
(7) не надо в ШК вкладывать смыслы, а тем более принадлежности товара к какому-то складу. Префикс это значит что ШК (в формате еан13), начинающийся с символа "2" - это ШК для использования внутри фирмы.
|
|||
24
mikecool
05.03.25
✎
20:23
|
а чем артикул, код, да что угодно уникальное не подошло? зачем генерировать что-то еще?
|
|||
25
Злопчинский
05.03.25
✎
20:24
|
(13) "3. или изврат на обычных лазерках с этикетками-самоклейками A4? - вариант только для очень малого объема"
- на А4 есть стандартные самоклейки разных размеров, у меня на складе использовались для маркировки А; с нарезкой/просечкой на 65 этикеток (13 строк по 5 этикеток). Основная проблема - КОГДА ЭТИКЕТКИ МАЛЕНЬКИЕ, а куроводятелы хотят туда впихнуть много - точное позиционирование и затяжка принтером. Смещение даже на полмиллиметра к концу страницы дает напрочь уползающую этикетку за границы насечки этикеток. Плюс к этому - такая печать при большом количестве этикеток - весьма требовательна к качеству тонера и качеству бумаги. При определенных условиях может использоваться (у меня майстрячилось тоннами, по 100 листов на маркировку - только так, но только потому что другие варианты печати этикеток на ленточках - крайне неудобны маркировщицам при наклейке на тысячи штук товаров...) Вот на слайде можно посмотреть, блок "маркировка" https://infostart.ru/pm/338893/
|
|||
26
Злопчинский
05.03.25
✎
20:27
|
(19) Устойчивую термотрансферную печать стоит применять там где это действительно надо. Обычная термопечать без всяких риббонов вполне себе нормально служат этикетки. Если конечно не брать совсем уж дешманское оборудование и этикетки.
|
|||
27
Злопчинский
05.03.25
✎
20:28
|
При генерации ШК, отталкиваясь от кода или артикула товара, следует учесть что на один товар запросто может понадобиться несколько штрихкодов.
|
|||
28
Злопчинский
05.03.25
✎
20:37
|
(0) "при выдаче со склада просто сканером штихкодов проводить и вводить в документ."
- а это зависит от того КАК СДЕЛАНО. возможно на сами предметы вообще нет необходимости наносить ШК, достаточно промаркировать ШК товара "коробки", где лежат материалы/инструмент. И ошибки надо отлавливать не "при выдаче со склада" когда притащил сборщик совсем не то что надо, а во время сборки: адресное хранение (и, мля, не надо сверла 6мм и сверла 8мм класть рядышком!), ТСД в руки, на ТСД выдался заказ на сборку, "иди к ячейке #23, сканируй 5шт <сверло 6мм>" - подошел к ячейке, жмакнул по ШК коробки со сверлами, взял 5шт, пошел дальше собирать. Завершил сборку. Все отсканированное - уже в нужном документе. Если такая "однопроходная" схема устроит - то и товар может не понадобиться сканировать (ни на сборке, ни на приемке). Если после сборки нужен контроль по ШК - тут уже, конечно, нужно чтобы тмц изначально были со штрихкодами, это конечно лучше чем только штрихкодированная коробочка хранения. Опять же - сильно все зависит от вида товаров. |
|||
29
lEvGl
гуру
05.03.25
✎
23:13
|
зачем нужны шк без партий совсем не понятно, для БУ что ли? лучше в БП сделать подсистему заказов со склада, тогда ничего ни сканировать ни клеить не нужно будет и Перемещение одним кликом заполняться будет - все что и нужно для БУ. Это же явно не торговый склад, раз из БП ноги растут
вобще конечно от организации зависит - если типа супермаркет, все кто хочет приходит и берет что хочет, на выходе только контролер со сканером стоит, ну может.. |
|||
30
Злопчинский
05.03.25
✎
23:50
|
(29) ШК без партий - тупо для быстрой идентификации товара и все. ну и как в (0) - сканированием заносить в доки.
|
|||
31
Александр111
06.03.25
✎
09:51
|
Проще штрих код создавать при печати этикетки номенклатуры, чтоб сразу можно было наклеить.
|
|||
32
Злопчинский
06.03.25
✎
14:35
|
(31) ты не поверишь, но ШК запросто может понадобиться еще до того как его проклеивать начнут...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |