SetRetail10 ◾️ FAQ по весовому модулю и скрипты проверки

Публичное пространство

SetRetail10 ◾️ FAQ по весовому модулю и скрипты проверки

Проверка загруженных товаров на весы

SELECT v.number, v.model, v.addressing, sum(v.PLU_NEW) as PLU_NEW, sum(v.PLU_LOAD) as PLU_LOAD, sum(v.PLU_LOADED) as PLU_LOADED, sum(v.PLU_ERROR) as PLU_ERROR, sum(v.OFFLINE_ERROR) as OFFLINE_ERROR, v.name, v.plu_generation_method from ( select distinct s.number, s.code, s.model, s.addressing, case l0.status when 0 then 1 else 0 end as PLU_NEW, case l1.status when 1 then 1 else 0 end as PLU_LOAD, case l2.status when 2 then 1 else 0 end as PLU_LOADED, case l3.status when 3 then 1 else 0 end as PLU_ERROR, case l3_p.status when 3 then 1 else 0 end as OFFLINE_ERROR, l0.id, l1.id, l2.id, l3.id, l3_p.id, t.name, t.plu_generation_method from scales_scales s join scales_template t on t.id = s.scales_template_id join scales_plues p on 1=1 left join scales_linktoplu l1 on l1.scales_code = s.code and p.id = l1.id_plu and l1.status = 1 left join scales_linktoplu l2 on l2.scales_code = s.code and p.id = l2.id_plu and l2.status = 2 left join scales_linktoplu l3 on l3.scales_code = s.code and p.id = l3.id_plu and l3.status = 3 and l3.lasterrorcode <> 'PORT-ERROR' left join scales_linktoplu l3_p on l3_p.scales_code = s.code and p.id = l3_p.id_plu and l3_p.status = 3 and l3_p.lasterrorcode = 'PORT-ERROR' left join scales_linktoplu l0 on l0.scales_code = s.code and p.id = l0.id_plu and l0.status = 0 where s.deleted = false ) v group by number, model, addressing, name, plu_generation_method order by number



Как добавить весы DIGI через QLoad?

При добавлении весов DIGI через QLOAD есть возможность указать IP-адрес, последний октет которого будет добавляться в имя выгруженного файла.

Для этого в визуализации сервера в настройках весов DIGI через QLOAD в поле "Адресация" укажите адрес в форме, например:

  • Локальный диск ОС Windows C:\DIGI\==<IP-адрес>

  • Сетевой ресурс ОС Windows \\<IP-адрес>==<IP-адрес>

  • Локальный ресурс ОС Линукс /var/lib/jboss/<папка для экспорта>==<IP-адрес>

Два знака равно - это разделитель между каталогом выгрузки и IP-адресом.

Пример указания папки на диске C:\ на локальном сервере ОС Windows.



Пример указания папки на сетевом ресурсе ОС Windows:



Пример указания папки на сетевом ресурсе ОС Linux:



Не генерируется PLU на товар (повторно создать задания на отправку товаров для весов)

Проверка:

  1. Проверьте правила генерации PLU в типе весового товара Справочники → Типы товаров → Вкладка ВЕСОВОЙ ТОВАР → Способ генерации PLU.

  2. Есть ли в импортируемом пустой PLU?

  3. В базе данных set проверьте в таблице un_cg_price проверьте поле senttoscales, если FALSE, значит товары не отправлены. Проверьте в базе данных set добавляется ли товар в таблицу scales_plues.



Выполните скрипты для повторного формирования заданий для загрузки в базе данных 

set:

1.  Очистите каскадно таблицу 

scales_productentity.

TRUNCATE scales_productentity CASCADE;

 

2. Выполните один из скриптов в зависимости от типа товара и версии SetRetail10.

До версии 10.4.16.0:

Весовые товары

UPDATE un_cg_price SET senttoscales = FALSE WHERE product_marking IN (SELECT markingofthegood FROM un_cg_product_weight) AND (enddate IS null OR enddate > now());

 

Штучно-весовые товары

UPDATE un_cg_price SET senttoscales = FALSE WHERE product_marking IN (SELECT markingofthegood FROM un_cg_product WHERE plugin_class_name = 'ru.crystals.pos.catalog.billets.ProductPieceWeightEntityBillet' AND status = '99') AND (enddate IS null OR enddate > now());


3. Дождитесь, когда сгенерируются новые PLU. Весовой модуль забирает для себя новые цены с периодичностью 200 цен/3мин.

Периодически выполняйте скрипт, который отслеживает количество цен для перевыгрузки в весовой модуль.

SELECT distinct ucp.product_marking, ucp.*, ucl.* FROM un_cg_price ucp join un_cg_barcode ucb on ucb.product_marking = ucp.product_marking left join un_cg_likond ucl on substring(ucp.product_marking from 1 for 6) = ucl.marking where ucp.begindate < now() and ucp.enddate > now() and ucp.senttoscales = false and ucp.product_status = 99 and ucp.product_marking in (SELECT markingofthegood from un_cg_product_weight) and ((ucl.begin_date < (now()-'10 minutes'::interval) and ucl.end_date > now()) or ucl.marking is null)

 

Нужно заново сгенерировать PLU на весовые товары

1. Каскадно очистите таблицу scales_productentity

TRUNCATE scales_productentity CASCADE;

 

2. Выполнить скрипт по БД set

До версии 10.4.16.0:

Для весовых товаров:

UPDATE un_cg_price SET senttoscales = FALSE WHERE product_marking IN (SELECT markingofthegood FROM un_cg_product_weight) AND ( enddate IS NULL OR enddate > Now() );


Для штучно-весовых товаров:

UPDATE un_cg_price SET senttoscales = FALSE WHERE product_marking IN (SELECT markingofthegood FROM un_cg_product WHERE plugin_class_name = 'ru.crystals.pos.catalog.billets.ProductPieceWeightEntityBillet' AND status = '99') AND ( enddate IS NULL OR enddate > Now() );

 

Начиная с версии 10.4.16.0:

INSERT INTO un_cg_product_to_scales (marking) SELECT DISTINCT ucp.product_marking FROM un_cg_price ucp JOIN un_cg_product p ON ucp.product_marking = p.markingofthegood AND ucp.product_status = p.status WHERE (ucp.enddate IS NULL OR ucp.enddate > NOW()) -- Активная цена AND ucp.product_status = '99' -- Товар на 99-й полке AND ucp.price_number = '1' -- Основная цена существует AND p.plugin_class_name IN ( -- Весовой или штучно-весовой товар 'ru.crystals.pos.catalog.billets.ProductWeightEntityBillet', 'ru.crystals.pos.catalog.billets.ProductPieceWeightEntityBillet') AND p.status = '99' -- Утверждённый статус AND NOT EXISTS ( -- Исключить уже добавленные в очередь SELECT 1 FROM un_cg_product_to_scales ups WHERE ups.marking = ucp.product_marking) ON CONFLICT DO NOTHING;

 

3. Ожидайте, когда сгенерируются новые plu. Весовой модуль забирает для себя новые цены с периодичностью 200 цен/3мин.

Периодически выполняйте скрипт, который отслеживает количество цен для перевыгрузки в весовой модуль. В результате загрузки цен, скрипт должен вернуть пустые значения.

До версии 10.4.16.0:

SELECT distinct ucp.product_marking, ucp.*, ucl.* FROM un_cg_price ucp join un_cg_barcode ucb on ucb.product_marking = ucp.product_marking left join un_cg_likond ucl on substring(ucp.product_marking from 1 for 6) = ucl.marking where ucp.begindate < now() and (ucp.enddate is null or ucp.enddate > now()) and ucp.senttoscales = false and ucp.product_status = 99 and ucp.product_marking in ( SELECT markingofthegood from un_cg_product_weight ) and ( ( ucl.begin_date < (now()-'10 minutes'::interval) and ucl.end_date > now()) or ucl.marking is null)

 

Начиная с версии 10.4.16.0:

SELECT ups.marking, ups.create_dt, ucp.begindate, ucp.enddate, ucp.product_status, ucp.price_number, p.plugin_class_name FROM un_cg_product_to_scales ups JOIN un_cg_price ucp ON ups.marking = ucp.product_marking JOIN un_cg_product p ON ucp.product_marking = p.markingofthegood AND ucp.product_status = p.status WHERE (ucp.enddate IS NULL OR ucp.enddate > NOW()) -- Активная цена AND ucp.product_status = '99' -- Товар на 99-й полке AND ucp.price_number = '1' -- Основная цена AND p.plugin_class_name IN ( -- Весовой/штучно-весовой 'ru.crystals.pos.catalog.billets.ProductWeightEntityBillet', 'ru.crystals.pos.catalog.billets.ProductPieceWeightEntityBillet') AND p.status = '99' -- Утверждённый статус ORDER BY ups.create_dt DESC;

 

Не уходит товар на весы

Проверка:

  1. Корректно ли настроен шаблон весов (товар должен входить в список обслуживания):

    1. Магазин → Настройки магазина → 4. Весы.

    2. Весовой модуль → Шаблоны весов.

  2. Не указан ли номер весов в загружаемом товаре в тэге <scales-number>...</scales-number>.

  3. Любые другие ошибки, в том числе сетевые будут отображены на сервере магазина

  • exceptiontype - индикатор ошибки если при загрузке таковая произошла';

  • lasterrorcode - код последней ошибки, разные весы определяют сами значение этого свойства';

  • lasterrortype - тип последней ошибки, разные весы определяют сами значение этого свойства';

Скрипт по проверки отправленных PLU на весы
SELECT * FROM scales_linktoplu slp left join scales_scales ss ON (slp.scales_code = ss.code) left join scales_plues sp ON (slp.id_plu = sp."id") WHERE ss.number = 'номер весов' AND sp."number" IN ('номер plu')

Ошибка 2015 - Bizerba 

В базе данных

set таблицы 
scales_linktoplu данная ошибка означает, что в одной пачке есть попытка загрузки количества товаров превышающего размер памяти весов.

Рекомендуется загружать товары в количестве допустимом для модели весов

Памятка очистки PLU на популярных моделях весов

Весы  

Методика очистки PLU

Bizerba CE-H 800

Вход в меню (тач): последовательно коснуться углов экрана:  левый верхний- правый нижний - левый нижний - правый верхний - левый верхний.

Если не получилось с первого раза, нажать в центр экрана и повторить.

Пароль: запросите в технической поддержке.

🔒 Страница с паролем с ограниченным доступом.

Далее по меню:

1. "Обработка PLU" (1) -"Удалить PLU" (7).

2. В пункте "Содержание" выбрать"PLU + Спец.предл."

3. В пункте "Удалить диапазон" указываем отдел - от 1 до 99 и PLU от 1 до 999999, нажимаем "Да".

Дождаться, когда исчезнет индикатор (песочные часы) и весы вернутся в предыдущее меню.

Bizerba KH-800

Bizerba KH-II 800

Вход в меню (тач): нажать на экран в районе 1 см от левого края экрана под красной линией.

Пароль: запросите в технической поддержке.

🔒 Страница с паролем (ограниченный доступ).

1. "ОбработкаPLU" (1) - "Удалить PLU" (7).

2. В пункте "Содержание" выбираем "PLU + Спец. предл."

3. В пункте "Удалить диапазон" указываем отдел - от 1 до 99 и PLU от 1 до999999, нажимаем "Да".

Дождаться, когда исчезнет индикатор (песочные часы) и весы вернутся в предыдущее меню.

Bizerba BS-100

Bizerba BS-200

Вход в меню: клавиша "Mod" на клавиатуре

Пароль: запросите в технической поддержке.

🔒 Страница с паролем (ограниченный доступ).

1. "ОбработкаPLU" (1) - "Удалить PLU" (7).

2. В пункте "Содержание" выбираем "PLU + Спец. предл."

3. В пункте "Удалить диапазон" указываем отдел - от 1 до 99 и PLU от 1 до999999, нажимаем "Да".

Дождаться, когда исчезнет индикатор (две стрелочки) и весы вернутся в предыдущее меню.

Bizerba SC-II 100

Bizerba SC-II 400

Вход в меню: клавиша " Mod "на клавиатуре

Пароль: запросите в технической поддержке.

🔒 Страница с паролем (ограниченный доступ).

Далее по меню:

1. "Обработка PLU "(1) - "Удалить PLU " (7).

2. В пункте "Содержание" выбираем" PLU + Спец. предл."

3. В пункте "Удалить диапазон" указываем отдел - от 1 до 99 и PLU от 1 до 999999,нажимаем "Да".

Дождаться, когда исчезнет, индикатор и весы вернутся, в предыдущее меню.

На этикетке обрезается текст состава товара - Mettler Toledo Tiger P (драйвер TOLEDO версии выше 362)

При создании дизайна этикетки для весов Mettler Toledo Tiger P (драйвер TOLEDO версии выше 362) с помощью утилиты SPCT текст состава товара обрезается. 

Это связано с тем, что в редакторе этикетки утилиты SPCT поле Название PLU совмещено с полем Дополнительный текст, а само поле Дополнительный текст не работает.

Для того, чтобы состав товара печатался полностью, следует убрать из дизайна поле Дополнительный текст, а поле Название PLU сделать больше.

.

© 1994-2025, ООО «Кристалл Сервис Интеграция».
Все права защищены.

Политика обработки персональных данных