Простая печать кодов “Честный знак” из PDF файла.

Загрузку и печать кодов маркировки рассмотрим на примере кодов на молочную продукцию сгенерированных и выгруженных из системы «Честный знак» в виде PDF файла.

В программе «SimplePacking» возможны 4 сценария работы с кодами, загруженными из внешних систем:

  • один файл с кодами на всю номенклатуру (одно рабочее место);
  • индивидуальный файл с кодами для каждой номенклатуры (одно рабочее место);
  • один файл с кодами на всю номенклатуру (несколько рабочих мест);
  • индивидуальный файл с кодами для каждой номенклатуры (несколько рабочих мест);

Рассмотрим каждый сценарий.

1. Один файл с кодами на всю номенклатуру (одно рабочее место).

Самый простой сценарий. У нас имеется одна или несколько номенклатур в справочнике, одно рабочее место и файл с кодами маркировки один на всю номенклатуру.

1.1 Загрузка PDF файла с кодами маркировки.

В редакторе проектов переходим на вкладку «База данных» и нажимаем кнопку «Коды из внешних источников».

В появившейся таблице нажимаем кнопку с изображением желтого крестика и в появившемся диалоговом окне выбираем PDF файл с выгруженными из системы «Честный знак» кодами маркировки и нажимаем кнопку «Открыть».

Произойдет процесс загрузки кодов маркировки из файла в проект. После успешной загрузки в таблице появится новая запись, которая будет содержать следующую информацию: уникальный идентификатор таблицы с загруженными кодами маркировки, наименование (его можно изменить в любой момент, по умолчанию оно соответствует имени файла), путь к файлу, количество загруженных кодов, а также дату и время загрузки.

1.2 Создание счетчика по запросу.

Переходим на вкладку «Переменные и счетчики» и создаем новый счетчик по запросу. Называем его например, «СчетчикЧестныйЗнак». В свойстве счетчика «Формула» введем 1.

1.3 Добавляем штрих-код на этикетку.

Переходим на вкладку «Дизайнер этикеток» и добавляем штрих-код на этикетку. В рассматриваемом примере мы добавим штрих-код DataMatrix.

Через свойство штрих-кода «Формула» переходим в редактор формул и вводим или создаем с помощью выбора из списка формул следующую формулу:

CRPTGET(1, COUNTER(‘UserRequest‘,’СчетчикЧестныйЗнак’))

где CRPTGET функция, возвращающая код из таблицы с загруженными кодами, первый параметр 1 – уникальный идентификатор таблицы, второй параметр, созданный нами в пункте 1.2 счетчик по запросу.

Первый сценарий готов. Сохраняем, делаем развёртывание проекта и проверяем. При первой печати функция вернет код с индексом 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).

При выходе счетчика за пределы диапазона или когда заканчиваются коды мы получим сообщение об ошибке.

Скачать в PDF