Данный механизм применяется для каких-то не стандартных задач, функционал для реализации которых отсутствует в программе.
В запросах нужно заменять код поля, в которое сохраняется информация, например вот это:
Запрос выполняется через действие Quad.Magic “Выполнить запрос БД”, запрос вставляется в Настройка 1.
Установить в поле цену и наличие других поставщиков
В поле сохраняется информация в виде:
Пост1 ц:120.5 ост:*** | Пост2 ц:81 ост:5
т.е. название поставщика, цена после слова “ц:” , остаток после слова “ост:”, если поставщиков несколько то они разделены вертикальной чертой.
update product set f_3v8q42ftv = (select string_agg(concat(pr.title, ' ц:', round(case pd.price_curr_id when 3 then pd.price * ###EUR### when 2 then pd.price * ###USD### when 4 then pd.price * ###RUB### else pd.price end)::varchar, ' ост:', pd.exists_text), ' | ') from price_detail pd, price pr where pr.id = pd.price_id and pd.is_exists <> 2 and pr.price_type in (1, 3) and pd.product_id = product.id and pd.price_id <> product.price_id)
f_3v8q42ftv
- код поля, в которое сохраняется информация, его нужно заменить на ваше
В запросе так же указана конвертация цен в белорусские рубли, если в прайсе цена в другой валюте - это нужно изменить, если ваша основная валюта не BYN. Код валюты российских рублей должен быть RUB, а не RUR.
Если ваша основная валюта российские рубля, то удалите из запроса строку
when 4 then pd.price * ###RUB###
Установить в поле название поставщика с РЦ
update product set f_401gs0okc = null; update product set f_401gs0okc = (select pr.title from price_detail pd, price pr, price_detail_category pdc where pd.product_id = product.id and pd.price_id = pr.id and pr.is_active = 1 and pr.use_rc = 1 and pd.category_id = pdc.id and pdc.is_active = 1 and ((pd.is_active is null) or (pd.is_active = 0)) and pd.fixed_price > 0 limit 1)
f_401gs0okc
- код поля, в которое сохраняется информация, его нужно заменить на ваше, в двух местах.
Очистить переносы строк в поле
update product set title = replace(title, concat(chr(13), chr(10)), '') where title like concat('%', chr(10), '%')
title
- название поля в котором нужно очистить (Название товара).
Установить в поле QID товаров привязанных поставщиков
В поле устанавливаются ИД товаров из прайсов поставщиков, через запятую
update product set f_3v8q42ftv = null; update product set f_3v8q42ftv = (select string_agg(pd.id, ',') from price_detail pd, price pr where pr.id = pd.price_id and pd.is_exists <> 2 and pr.is_active = 1 and pr.price_type in (1, 3) and pd.product_id = product.id and pd.price_id <> product.price_id)
f_3v8q42ftv
- поле в которое устанавливается значение
pd.id
- поле которое берется из прайсов, в данном случае ИД товара, но можно например объединять и другие поля, например Код, в этом случае заменить pd.id на pd.code
and pd.is_exists <> 2
- условие, что добавляется только товар который не в статусе “Нет в наличии”, если нужно все товары, то эту строку можно удалить из запроса
and pr.is_active = 1
- условие, что добавляется только товар из активных прайсов. если прайс выключен, то его товары не добавляются, даже если привязаны.