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

Загрузку и печать кодов маркировки рассмотрим на примере кодов на молочную продукцию сгенерированных и выгруженных из системы «Честный знак» в виде PDF файла.
В программе «SimpleMas» возможны 4 сценария работы с кодами, загруженными из внешних систем:
  • один файл с кодами на всю номенклатуру (одно рабочее место);
  • индивидуальный файл с кодами для каждой номенклатуры (одно рабочее место);
  • один файл с кодами на всю номенклатуру (несколько рабочих мест);
  • индивидуальный файл с кодами для каждой номенклатуры (несколько рабочих мест)
  1. Один файл с кодами на всю номенклатуру (одно рабочее место).
Самый простой сценарий. У нас имеется одна или несколько номенклатур в справочнике, одно рабочее место и файл с кодами маркировки один на всю номенклатуру.
1.1 Загрузка PDF файла с кодами маркировки.
  • В редакторе проектов переходим на вкладку «База данных» и нажимаем кнопку «Коды из внешних источников».
В появившейся таблице нажимаем кнопку с изображением желтого крестика и в появившемся диалоговом окне выбираем PDF файл с выгруженными из системы «Честный знак» кодами маркировки и нажимаем кнопку «Открыть».
Произойдет процесс загрузки кодов маркировки из файла в проект. После успешной загрузки в таблице появится новая запись, которая будет содержать следующую информацию: уникальный идентификатор таблицы с загруженными кодами маркировки, наименование (его можно изменить в любой момент, по умолчанию оно соответствует имени файла), путь к файлу, количество загруженных кодов, а также дату и время загрузки.
1.2 Создание счетчика по запросу.
Переходим на вкладку «Переменные и счетчики» и создаем новый счетчик по запросу. Называем его например, «СчетчикЧестныйЗнак». В свойстве счетчика «Формула» введем 1.
1.3 Добавляем штрих-код на этикетку.
Переходим на вкладку «Дизайнер этикеток» и добавляем штрих-код на этикетку. В рассматриваемом примере мы добавим штрих-код DataMatrix.
Через свойство штрих-кода «Формула» переходим в редактор формул и вводим или создаем с помощью выбора из списка формул следующую формулу:
CRPTGET(1, COUNTER(‘UserRequest‘,’СчетчикЧестныйЗнак’))
где CRPTGET функция, возвращающая код из таблицы с загруженными кодами, первый параметр 1 – уникальный идентификатор таблицы, второй параметр, созданный нами в пункте 1.2 счетчик по запросу.
Первый сценарий готов. Сохраняем, делаем развёртывание проекта и проверяем. При первой печати функция вернет код с индексом 0 из таблицы с идентификатором 1, при втором вернет код с индексом 1 из таблицы с идентификатором 1 и т. д. Когда все загруженные коды закончатся мы получим сообщение об ошибке.
Для того чтобы маркировка продолжилась с того места, на котором остановилась после выключения/включения принтера или перезапуска программы необходимо в настройках программы «SimpleMas» включить «Сохранять счетчики» (смотрите руководство пользователя).
Чтобы начать маркировать снова с первого кода из таблицы маркировки нужно сбросить счетчики (смотрите руководство пользователя).
2. Индивидуальный файл с кодами для каждой номенклатуры (одно рабочее место)
Этот сценарий применяется, когда для каждой номенклатуры загружается свой набор кодов маркировки, а маркировка происходит на одном рабочем месте.
Проделываем все тоже самое, что и в пункте 1.1 необходимое количество раз.

2.1 Создаем новое поле в справочнике «Номенклатура»
Переходим на вкладку «База данных», нажимаем кнопку «Номенклатура», далее нажимаем кнопку «Добавить поле» и в появившемся диалоговом окне выбираем тип «Коды из внешних источников».
Жмем «Добавить».
Далее привязываем каждой номенклатуре свою таблицу с загруженными кодами маркировки.
2.2 Создание счетчика на номенклатуру.
Переходим на вкладку «Переменные и счетчики» и создаем счетчик на номенклатуру. Назовём его например, «НомерКодаЧестныйЗнак». В свойстве счетчика «Формула» введем 1.
2.3 Добавляем штрих-код на этикетку.
Добавляем штрих-кода на этикетку как описано в пункте 1.3. Но формулу введем другую.
CRPTGET(FIELD(‘Коды из внешн. ист.’,’НОМЕНКЛАТУРА’), COUNTER(‘Product’,’НомерКодаЧестныйЗнак’))
где первый параметр ссылка на поле «Коды из внешн. ист.» таблицы «Номенклатура», а второй параметр созданный нами счетчик на номенклатуру.
Данная формула при смене номенклатуры возвращает коды из связанной с номенклатурой таблицы кодов маркировки.
Счетчик номенклатуры связан с конкретной номенклатурой и инкрементируется при каждой печати этой конкретной номенклатуры.
Второй сценарий готов. Сохраняем, делаем развёртывание и проверяем. В настройках программы «SimpleMas» должна быть включена функция сохранения счетчиков (смотрите руководство пользователя).
Счетчики номенклатуры можно сбросить как по-отдельности, так и все разом.
В «SimpleMasDesktop» это можно сделать нажать на кнопку с изображением метлы возле списка с номенклатурой.
В «SimpleMas» на принтере это можно сделать выбрать «Счетчик для номенклатуры» в меню «Переменные и счетчики» (смотрите руководство пользователя).
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).
При выходе счетчика за пределы диапазона или когда заканчиваются коды мы получим сообщение об ошибке.
Работа с кодами маркировки “Честный знак” в редакторе проектов “SimpleMas” (Весы-Принтер)
Печать кодов маркировки “Честный знак” в программе “SimpleMasDesktop”