Загрузку и печать кодов маркировки рассмотрим на примере кодов на молочную продукцию сгенерированных и выгруженных из системы «Честный знак» в виде PDF файла.
В программе «SimplePacking» возможны 4 сценария работы с кодами, загруженными из внешних систем:
- один файл с кодами на всю номенклатуру (одно рабочее место);
- индивидуальный файл с кодами для каждой номенклатуры (одно рабочее место);
- один файл с кодами на всю номенклатуру (несколько рабочих мест);
- индивидуальный файл с кодами для каждой номенклатуры (несколько рабочих мест);
Рассмотрим каждый сценарий.
1. Один файл с кодами на всю номенклатуру (одно рабочее место).
Самый простой сценарий. У нас имеется одна или несколько номенклатур в справочнике, одно рабочее место и файл с кодами маркировки один на всю номенклатуру.
1.1 Загрузка PDF файла с кодами маркировки.
В редакторе проектов переходим на вкладку «База данных» и нажимаем кнопку «Коды из внешних источников».
Копия видео «Вставка печати и подписей»
В появившейся таблице нажимаем кнопку с изображением желтого крестика и в появившемся диалоговом окне выбираем PDF файл с выгруженными из системы «Честный знак» кодами маркировки и нажимаем кнопку «Открыть».
Произойдет процесс загрузки кодов маркировки из файла в проект. После успешной загрузки в таблице появится новая запись, которая будет содержать следующую информацию: уникальный идентификатор таблицы с загруженными кодами маркировки, наименование (его можно изменить в любой момент, по умолчанию оно соответствует имени файла), путь к файлу, количество загруженных кодов, а также дату и время загрузки.
1.2 Создание счетчика по запросу.
Переходим на вкладку «Переменные и счетчики» и создаем новый счетчик по запросу. Называем его например, «СчетчикЧестныйЗнак». В свойстве счетчика «Формула» введем 1.
1.3 Добавляем штрих-код на этикетку.
Переходим на вкладку «Дизайнер этикеток» и добавляем штрих-код на этикетку. В рассматриваемом примере мы добавим штрих-код DataMatrix.
Через свойство штрих-кода «Формула» переходим в редактор формул и вводим или создаем с помощью выбора из списка формул следующую формулу:
CRPTGET(1, COUNTER(‘UserRequest‘,’СчетчикЧестныйЗнак’))
где CRPTGET функция, возвращающая код из таблицы с загруженными кодами, первый параметр 1 – уникальный идентификатор таблицы, второй параметр, созданный нами в пункте 1.2 счетчик по запросу.
Счет, акт, счет-фактура для клиента с помощью Бизнес Пак 7. На примере транспортных услуг.
Первый сценарий готов. Сохраняем, делаем развёртывание проекта и проверяем. При первой печати функция вернет код с индексом 0 из таблицы с идентификатором 1, при втором вернет код с индексом 1 из таблицы с идентификатором 1 и т. д. Когда все загруженные коды закончатся мы получим сообщение об ошибке.
Для того чтобы маркировка продолжилась с того места, на котором остановилась после выключения/включения принтера или перезапуска программы необходимо в настройках программы «SimplePacking» включить «Сохранять счетчики» (смотрите руководство пользователя).
Чтобы начать маркировать снова с первого кода из таблицы маркировки нужно сбросить счетчики (смотрите руководство пользователя).
2. Индивидуальный файл с кодами для каждой номенклатуры (одно рабочее место)
Этот сценарий применяется, когда для каждой номенклатуры загружается свой набор кодов маркировки, а маркировка происходит на одном рабочем месте.
Проделываем все тоже самое, что и в пункте 1.1 необходимое количество раз.
2.1 Создаем новое поле в справочнике «Номенклатура»
Переходим на вкладку «База данных», нажимаем кнопку «Номенклатура», далее нажимаем кнопку «Добавить поле» и в появившемся диалоговом окне выбираем тип «Коды из внешних источников».
Далее привязываем каждой номенклатуре свою таблицу с загруженными кодами маркировки.
2.2 Создание счетчика на номенклатуру.
Переходим на вкладку «Переменные и счетчики» и создаем счетчик на номенклатуру. Назовём его например, «НомерКодаЧестныйЗнак». В свойстве счетчика «Формула» введем 1.
2.3 Добавляем штрих-код на этикетку.
Добавляем штрих-кода на этикетку как описано в пункте 1.3. Но формулу введем другую.
CRPTGET(FIELD(‘Коды из внешн. ист.’,’НОМЕНКЛАТУРА’), COUNTER(‘Product’,’НомерКодаЧестныйЗнак’))
где первый параметр ссылка на поле «Коды из внешн. ист.» таблицы «Номенклатура», а второй параметр созданный нами счетчик на номенклатуру.
Данная формула при смене номенклатуры возвращает коды из связанной с номенклатурой таблицы кодов маркировки.
Счетчик номенклатуры связан с конкретной номенклатурой и инкрементируется при каждой печати этой конкретной номенклатуры.
Второй сценарий готов. Сохраняем, делаем развёртывание и проверяем. В настройках программы «SimplePacking» должна быть включена функция сохранения счетчиков (смотрите руководство пользователя).
Счетчики номенклатуры можно сбросить как по-отдельности, так и все разом.
В «SimplePackingDesktop» это можно сделать нажать на кнопку с изображением метлы возле списка с номенклатурой.
В «SimplePacking» на принтере это можно сделать выбрать «Счетчик для номенклатуры» в меню «Переменные и счетчики» (смотрите руководство пользователя).
3. Один файл с кодами на всю номенклатуру (несколько рабочих мест).
Этот сценарий применяется, когда имеется одна или несколько номенклатур в справочнике, файл с кодами маркировки один на всю номенклатуру и несколько рабочих мест. Кодов на номенклатуру много и мы хотим осуществлять параллельную маркировку одной и той же номенклатуры на разных рабочих местах, но коды не должны повторяться.
Для загрузки кодов в проект воспользуемся пунктом 1.1.
Создаем счетчик по запросу как в пункте 1.2.
3.1 Создаем переменную по запросу.
Переходим на вкладку «Переменные и счетчики» и создаем переменную по запросу. Назовём ее например, «НомерРабочегоМеста». Номер рабочего места вводится на каждом рабочем месте свой и уникальный, начальное значение 0.
3.2 Добавляем штрих-код на этикетку.
Добавляем штрих-кода на этикетку как описано в пункте 1.3. Но формулу введем другую.
CRPTGET(2, COUNTER(‘UserRequest‘, ‘СчетчикЧестныйЗнак’) + VARIABLE(‘UserRequest‘, ‘НомерРабочегоМеста’) * 3, VARIABLE(‘UserRequest‘,‘НомерРабочегоМеста’) * 3, 3)
где первый параметр – уникальный идентификатор таблицы с кодами маркировки, в приведенном примере 2, второй параметр — это текущее значение счетчика в зависимости от номера рабочего места и смещения, третий параметр – начальное значение, а четвертый параметр – смещение относительно начального значения.
Т.е. если у нас 2 рабочих места с номерами 0 и 1, то на рабочем месте 0 мы сможем напечатать коды из таблицы кодов маркировки с 0 по 2 (0, 1, 2 и всего 3), а на рабочем месте 1 мы сможем напечатать с 3 по 5 (3, 4, 5 и всего 3).
4. Индивидуальный файл с кодами для каждой номенклатуры (несколько рабочих мест).
Этот сценарий применяется, когда имеется одна или несколько номенклатур в справочнике, файлы с кодами маркировки на каждую номенклатуру и несколько рабочих мест. Кодов на номенклатуру много и мы хотим осуществлять параллельную маркировку на разных рабочих местах, но коды не должны повторяться.
Для загрузки кодов в проект воспользуемся пунктом 1.1.
Создаем счетчик на номенклатуру как в пункте 2.2.
4.1 Добавление штрих-кода на этикетку.
Добавляем штрих-кода на этикетку как описано в пункте 1.3. Но формулу введем другую.
CRPTGET(FIELD(‘Коды из внешн. ист.’, ‘НОМЕНКЛАТУРА’), COUNTER(‘Product’, ‘НомерКодаЧестныйЗнак’) + VARIABLE(‘UserRequest’, ‘НомерРабочегоМеста’) * 3, VARIABLE(‘UserRequest’, ‘НомерРабочегоМеста’) * 3, 3)
где первый параметр – уникальный идентификатор таблицы с кодами маркировки, в приведенном примере 2, второй параметр — это текущее значение счетчика конкретной номенклатуры в зависимости от номера рабочего места и смещения, третий параметр – начальное значение, а четвертый параметр – смещение относительно начального значения.
Т.е. если у нас 2 рабочих места с номерами 0 и 1, то на рабочем месте 0 мы сможем напечатать коды из таблицы кодов маркировки с 0 по 2 (0, 1, 2 и всего 3), а на рабочем месте 1 мы сможем напечатать с 3 по 5 (3, 4, 5 и всего 3).
При выходе счетчика за пределы диапазона или когда заканчиваются коды мы получим сообщение об ошибке.
Источник: llc-bs.ru
Штрих-коды для домашнего бизнеса, и причём тут ChatGPT
Всем привет! С вами сегодня Лео, и я профессионально занимаюсь оцифровкой видеокассет уже больше 7 лет.
Скоро майские праздники, и поток клиентов возрастает. Да так, что с ними стало тяжело справляться — в сутки может прийти 7-8 человек, и попробуй их запомни. До этого дня использовал для учёта самописную панельку для учёта заказов на PHP, и программу «Бизнес Пак» для печати товарных чеков. В целом, их хватало. Но когда поток людей стал превышать все мыслимые нормы, было понятно, что надо с этим что-то делать.
Для решения вопроса было принято решение перевести всё на систему штрих-кодов. Иду на известную площадку объявлений, и покупаю себе за 500 рублей самый дешёвый сканер.
Сканер этот работает в режиме эмуляции клавиатуры — навели на код, он распознал и пропечатал.
Дописал панельку таким вот образом: внизу расположил поля ввода, которые ведут на add.php, inwork.php, и т.п., которые выполняют запрос в базу. Максимально просто, но работает.
На радостях скачал шрифты для создания кодов, распечатал на бумаге. И ничего! Сканер просто не сканирует код, либо сканирует с 5-6 попытки.
. Напечатал на глянцевой бумаге — работает! Как выяснилось, дело было в стандарте — в Code128 нужно было добавлять управляющие символы в начале и конце строки. И если на глянцевой бумаге сканер кое-как, но понимал код с ошибкой, то на матовой бумаге уже не мог его отсканировать.
Проблему решил использованием стандарта Code 39 — он намного проще для печати из любого текстового редактора, чем другие виды штрих-кодов.
Для этого достаточно закодировать номер в формате *1234567890*. Не вникая в теорию, проще говоря, звёздочки здесь — управляющие символы.
Печатаем, сканируем код. Всё работает!
Однако, сканер нам отдаёт код вида T000001. Как я понял после чтения документации на сканер — символ T здесь образуется из нескольких бит информации, которые он отдаёт софту, который должен понять что используется сканер.
Можно конечно перенастроить, но мы этот символ в PHP просто вырежем:
$num = htmlspecialchars($_POST[«num»]);
$num = preg_replace(‘/[^0-9]/’, », $num);
if (strlen2($abc)<3)
<
echo «Номер заказа не может быть менее 3-х символов»;
exit;
>
mysql_query («UPDATE myloveclients SET `status` = ‘open’ WHERE `number` = ‘$num’;»);
«Пикаем» сканером по коду, и наш код успешно в базе!
Теперь при помощи штрих-кодов мы можем успешно менять номера заказов в базе, и даже смотреть телефона клиента 🙂
. Только вот как нам распечатать кучу кодов на одном листе? Можно конечно использовать специальный софт, но вот тащить 1,5 гб не очень хочется. В этом нам поможет Excel!
. Для этого просто скачем шрифт Code 39, и создадим 2 поля. Единичка в первом поле, двойка — во втором.
. Затем выделяем эти 2 ячейки и тянем вниз за вот этот уголок, насколько хватит.
Теперь у нас очень много циферок. Добавляем к концу кода символ «*» чтоб закрыть строку, и выбираем шрифт. Далее настраиваем столбцы и строки по вкусу. Ура, у нас есть пачка штриходов, которые можно напечатать!
Теперь можно клеить штрих-код к клиентскому заказу, и обновлять его статус.
. Только вот снова проблема. Мы утыкаемся в ручное заполнение товаров в программе «Бизнес-пак». Нам надо как-то сделать это быстрее.
Берём нашу панельку в качестве основы, в таблице sales создаём несколько полей — автоматический id строки, время добавления строки, id товара, id чека. Делаем интерфейс, заточенный исключительно под сканер.
В качестве товарных позиций — ID. Например, 0001 = «Оцифровка VHS», 0002 = «Оцифровка Video8», и т.д. Их мы распечатаем, чтоб повесить на стену.
Настало время для ChatGPT. Времени у меня было очень мало, поэтому написал индусский код в виде if-else, и попросил ChatGPT оптимизировать его. Она успешно справляется!
. Просим написать ещё кусок кода.
. В JS она тоже «умеет».
По итогу, с ChatGPT за час мы собрали вот такой товарный чек, который можно отправлять на печать 🙂
Формочки, заточенные под сканер, тоже есть.
В общем, теперь наш сканер штрих-кода «подружился» с PHP, а скорость обработки заказов увеличилась в несколько раз. Всем добра 🙂
Источник: habr.com
Как в 1С сделать штрих код для товара
Время от времени в программах 1С приходится генерировать штрих коды. Если речь идёт про такие конфигурации, как продукты для управления торговлей и используются они регулярно и по назначению, то штрих коды тоже придётся генерировать регулярно. Если код уже был кем-то добавлен в систему, то останется просто нажать “распечатать код” и всё будет работать. Если же до вас коды никто не добавлял и товар не был принят на склад, то скорее всего придётся генерировать код самостоятельно.
К сожалению, сделать это сразу получается далеко не у всех. Особенно если опыт работы с программой небольшой. Ну что же, принимаем вызов и учимся делать штрих коды в 1С. Описанная методика будет работать в любых конфигурациях и логика построения дерева меню тоже будет везде одинаковой. Поэтому, руководство можно считать универсальным.
Разве что, имейте в виду, что мы сейчас говорим не про QR (куриные) коды маркировки и не про акцизы, а про старые добрые линейные коды, которые в программе выполняют функцию упрощения учёта.
Существует три способа сгенерировать новый штрих код в программе 1С:
- Вбить его руками в соответствующее окно, что подходит в случае, если у товара уже есть наклейка с кодом. Вариант не самый лучший, потому что у кода есть некоторая логика построения и руками можно вбить криво. Лучше система сама пускай выдаст код. Правда, если код уже присвоен товару и мы не хотим менять номенклатуру, то просто переписываем этот код в окошко.
- Сканировать код сканером кодов, чтобы он записался в нужное окошко. Аналогично первому способу и проблемы с ним связаны те же самые.
- Ну и самый правильный вариант – сгенерировать код с помощью специальной процедуры. Если это возможно, то лучше всегда делать именно так.
Как сгенерировать код в 1С
– Звоните по бесплатному телефону 8 (800) 600-32-31 или +7 (495) 139-09-60
– Оставьте заявку через наш сайт или через раздел контакты
Тут действуем по универсальному алгоритму. Он будет одинаковым для всех продуктов, поэтому запоминаем цепочку действий.
- Оприходуем товар согласно стандартной процедуре принятия товара в работу
- Вводим цену этого товара
- Переходим в раздел этикетки на всякий случай. Ведь может быть что-т ок товару уже подвязалось. Но, скорее всего, никакого штрих кода там пока нет и распечатать нельзя.
- Проверяем, создан ли шаблон этикетки. Без него не получится напечатать этикетку, даже если сгенерирован код. Если шаблон этикетки не создан, то создаем его. Там всё логично и просто.
- Теперь заходим в сам товар, ищем вкладку перейти, выбираем штрихкоды
- Там нажимаем создать и пользуемся описанной логикой – если код уже есть то сканируем его или вбиваем руками. Если кода нет – тыкаем создать новый штрихкод. Код подставится в поле и на этом, в общем-то, всё.
- Теперь если нажать печать этикеток, то всё получится как и должно было получиться. Напомним, что количество этикеток на печать вылезет такое, сколько товаров у нас указано.
Программист-консультант 1С Программист-консультант 1С
Доработка 1С Разработаем цепочку импорта вместе с вашими специалистами. Продумаем механизм, а после этого реализуем его в…
Источник: ev-group.ru