Выгрузка определенных столбцов номенклатуры товаров.

В данном разделе описываем скрипты для работы с базой firebird через тирику
Ответить
Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 30 июл 2017, 13:12

mihalich81 писал(а):Хороший способ, но не выгружает фото товаров.
Я сделал тоже одной кнопкой скриптом Visual Basic эмуляцией нажатий в Тирике.

Отправлено спустя 3 минуты 44 секунды:
Не могу сделать запрос с выводом поставщика товара.
В Тирике это секретное лицо. Писал об этом, но Сергей не поддержал идею вывести поставщика в отчёты товаров.
Может кто знает способ вывести поставщика к каждому товару?
На 7.2 и выше, с этим нет проблем. Просмотрите , тут есть отчёт с поставщиками.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 07 авг 2017, 18:23

И фотки, и поставщики выгружаются без проблем.
Есть готовые отчёты уже.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 07 авг 2017, 20:16

mihalich81 писал(а):Я сделал отчёт Дозаказ товара в EXCEL. В EXCEL более широкие возможности.
Ничего сложного, но именно в моей боевой сетевой базе выдаёт ошибку. :cry:
Наверно ошибки есть в запросе?
Киньте в личку запрос, посмотрю.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 07 авг 2017, 21:56

Csq писал(а):
mihalich81 писал(а):Я сделал отчёт Дозаказ товара в EXCEL. В EXCEL более широкие возможности.
Ничего сложного, но именно в моей боевой сетевой базе выдаёт ошибку. :cry:
Если я правильно сообразил, можно посмотреть такой запрос

Код: Выделить всё

select waybill_items.waybill_id, waybill_items.goods_id, goods.name, waybills.contractor_id, suppliers.name
from waybills, waybill_items, goods, suppliers
where waybill_items.waybill_id = waybills.id 
AND waybill_items.goods_id=goods.id
AND suppliers.id= waybills.contractor_id
AND waybills.record_type=1 order by waybills.id desc
Выводит колонки: id продажи, id товара, наименование товара, id поставщика, имя поставщика везде где record_type=1 (это закупка)
А с ним и глянуть, как его запихать в дозаказ.
Запрос полностью не правильно написанный... Уходит в цикл скорей всего.
И или показывает бред, или же не показывает ничего.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 08 авг 2017, 21:14

mihalich81 писал(а):Вот мой запрос. Здесь немного сложнее, т.к. в основном цикле обрабатываются продажи, для получения поставщика из закупок пришлось использовать вложенный SELECT. В этом, скорее всего и проблема. Не пойму, почему на двух базах работает, а на моей основной выводит ошибку запроса 104. Боевой базе уже четыре года ежедневного использования. Куча удалений и т.п.
Запрос из отчёта OXETTA.

Код: Выделить всё

SELECT
 goods.id,
 goods.product_code,
 goods.name,
 (SELECT good_groups.name FROM good_groups WHERE goods.group_id=good_groups.id) AS goods_group_name,
 SUM(waybill_items.quantity) AS sold,
 (SELECT SUM(remainder) FROM remainders WHERE good_id=goods.id AND shop_id IN ({shop-ids})) AS remains,
 (SELECT suppliers.name FROM waybill_items, waybills, suppliers WHERE goods.id = waybill_items.goods_id AND waybill_items.waybill_id = waybills.id AND waybills.record_type=1 AND waybills.contractor_id = suppliers.id) AS suppliers_name,

 (1.0 + {percent}.0/100) * SUM(waybill_items.quantity) - 
 (
  SELECT SUM(remainders.remainder - remainders.reserved + remainders.expected - remainders.min_amount)
  FROM remainders
  WHERE good_id=goods.id AND shop_id IN ({shop-ids})
 ) AS forecast
 
FROM
 goods,
 waybill_items,
 waybills
WHERE
 goods.is_deleted=0 AND
 goods.good_type<>1 AND
 waybill_items.goods_id=goods.id AND
 waybill_items.is_deleted=0 AND
 waybills.id=waybill_items.waybill_id AND
 waybills.waybill_date>={today}-{days}*86400 AND
 waybills.waybill_date<={today}+86400 AND
 waybills.record_type=-1 AND
 waybills.is_deleted=0 AND
 waybills.shop_id IN ({shop-ids})
GROUP BY
 1
HAVING
 (1.0 + {percent}.0/100) * SUM(waybill_items.quantity) - 
 (
  SELECT SUM(remainders.remainder - remainders.reserved + remainders.expected - remainders.min_amount)
  FROM remainders
  WHERE good_id=goods.id AND shop_id IN ({shop-ids})
 ) > 0.01
ORDER BY
 3
Подобный разбор запросов, по чему что не работает, уже подходит под платную техподдержку.
Если запрос из шаблона самой Тирики, значит он работает, тогда в чем проблема?
Не понятно.

P.S. мельком пробежаться по запросу осилил все таки.
Замечаний куча.
Самое огромное: это некорректное написание запроса. Вам бы фарберд 3.0, он бы сразу выплюнул этот запрос... фарберд 2.5 скушает, но не весь, а с частичным исправлением все же.

Приводите запрос в порядок, как положено, в соответствии с правилами sql.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Аватара пользователя

Автор темы
Vitaly
Супермодератор
Сообщения: 100
Зарегистрирован: 05 янв 2017, 17:12
Репутация: 1
Пол: Мужчина
Контактная информация:

Re: Выгрузка определенных столбцов номенклатуры товаров.

Сообщение Vitaly » 09 авг 2017, 23:26

mihalich81 писал(а):Спасибо за ответ!
На SQLite мой запрос работает, хотя не должен. Видимо, имеют место невысокие требования к синтаксису.
Для FireBird 2.5 нашёл пару ошибок.
1. Список GROUP BY обязательно должен содержать все поля, кроме агрегатных функций.
2. Применение GROUP BY исключает возможность применения вложенных SELECT для родительского.
Для FireBird 3.0 не тестировал.
С пунктом 2 не согласен :-) при определенных условиях можно.
/root
Разработка дополнений - https://www.torgkontrol.ru
---
я не разработчик Тирика-Магазин

Ответить

Вернуться в «Скрипты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей