Публичное пространство
SetRetail10 ◾️ FAQ по весовому модулю и скрипты проверки
- 1 Проверка загруженных товаров на весы
- 2 Как добавить весы DIGI через QLoad?
- 3 Не генерируется PLU на товар (повторно создать задания на отправку товаров для весов)
- 4 Нужно заново сгенерировать PLU на весовые товары
- 5 Не уходит товар на весы
- 6 Ошибка 2015 - Bizerba
- 7 Памятка очистки PLU на популярных моделях весов
- 8 На этикетке обрезается текст состава товара - Mettler Toledo Tiger P (драйвер TOLEDO версии выше 362)
Проверка загруженных товаров на весы
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 на товар (повторно создать задания на отправку товаров для весов)
Проверка:
Проверьте правила генерации PLU в типе весового товара Справочники → Типы товаров → Вкладка ВЕСОВОЙ ТОВАР → Способ генерации PLU.
Есть ли в импортируемом пустой PLU?
В базе данных 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;
Не уходит товар на весы
Проверка:
Корректно ли настроен шаблон весов (товар должен входить в список обслуживания):
Магазин → Настройки магазина → 4. Весы.
Весовой модуль → Шаблоны весов.
Не указан ли номер весов в загружаемом товаре в тэге
<scales-number>...</scales-number>
.Любые другие ошибки, в том числе сетевые будут отображены на сервере магазина
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, ООО «Кристалл Сервис Интеграция».
Все права защищены.