• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

КАК удалить группу товаров через SQL запрос?

Автор crazyjonyster, Квітень 25, 2012, 12:29:38

Попередня тема - Наступна тема

0 Користувачі і 4 Гостей дивляться цю тему.

crazyjonyster

Есть такая проблема. Изначально я тестировал программу и в ней была создана группа "XXX TEST", потом мне все понравилось и я (не отчищая данные через меню) просто удалил склад "XXX TEST" и импортировал заново все товары. Сейчас часто мы добавляет новые товары с кодом который был в тестовой группе "XXX TEST" и программа говорит, что найден товар и таким же кодом в группе "XXX TEST".... Так вот я хочу запросом в базу SQL удалить эту "XXX TEST" что бы подобные сообщения не появлялись.

Если кто знает, пожалуйста напишите каким запросом можно физически удалить группу товаров "XXX TEST" из базы УкрСклада!

crazyjonyster

Прикрепил скрин для наглядности.
Кто-нибудь подскажите как удалить группу из базы полностью!

TheOK

#2
Вы говорите о складе или о группе товара (ну вы и напутали)? Думаю, что все таки о группе. Все нижесказанное применимо только если речь шла о группе товара.
Не понимаю как вы удалили тестовый склад/группу (вернее понимаю, но думаю, что не следует экспериментировать на рабочих данных).
Способы решения:

       
  • 1) Попытайтесь засветить эту группу товара через Параметры->Справочники 1->Проверка групп товаров. Если высветилась удалите по человечески.
  • 2) Если не помогло 1-е. Пройдитесь по следующим шагам

       
  • Создайте новый отчет
  • Сделайте доступным параметр ГРУППА ТОВАРА
  • Используйте запрос (если много товара, придется чуток подождать):
Select
tn.name as tovar, tip.name as group_name,tip.num
from
tovar_name tn left join tip on (tn.tip=tip.num)
order by 2


       
  • Используйте файл отчета, прикрепленный здесь (как добавить, найдете на форуме, если нужно)
  • Найдите необходимую группу товара
  • Подумайте действительно ли вам необходимо ее удалить
  • Выполните в sql менеджере следующий код (2 запроса, сначала выполнить 1й, затем 2й) :
1) delete from tovar_zal where tovar_zal.tovar_id in( Select tn.num from tovar_name tn  where tovar_name.tip=№_ГРУППЫ_КОТОРУЮ_НУЖНО_УДАЛИТЬ)

2) delete from tovar_name where tovar_name.tip=№_ГРУППЫ_КОТОРУЮ_НУЖНО_УДАЛИТЬ

№ группы увидите из отчета

Данный способ удалит не группу, как вы хотели, а товар из группы, что вам, скорее всего и нужно (ведь ругалось именно на "дубликат" товара).
P.S. админ, после таких слов добавляет обычно:"обязательно сделайте архив базы"
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

crazyjonyster

Спасибо большое! Это именно то, что мне нужно! Все сделал, все сработало и даже база похудела на 2мб ))

П.С. Речь таки о группе товаров, я ошибся, спасибо!

TheOK

#4
2 MB это очень-преочень много....
1) Если хранили изображения товара и товара было достаточно много, или объем уменьшился после резервирования->восстановления, то все должно быть ОК.
2) От приведенного запроса она едва ли могла уменьшиться настолько, если все сделано правильно или не выполняется 1)
Если не (1), поосторожничайте ... возможно, что-то не так (подобные запросы , если не задать условие where способны очистить все данные в таблице БД, хотя, судя по всему этого не произошло, раз уж вы видите товар на складе)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

crazyjonyster

Цитата: TheOK від Квітень 26, 2012, 03:11:24
2 MB это очень-преочень много....
1) Если хранили изображения товара и товара было достаточно много, или объем уменьшился после резервирования->восстановления, то все должно быть ОК.
2) От приведенного запроса она едва ли могла уменьшиться настолько, если все сделано правильно или не выполняется 1)
Если не (1), поосторожничайте ... возможно, что-то не так (подобные запросы , если не задать условие where способны очистить все данные в таблице БД, хотя, судя по всему этого не произошло, раз уж вы видите товар на складе)

Дело в том, что изначально тестирую УкрСклад я импортировал в него около 3000 товаров, потом удалял со склада группу кликая на ней правой кнопкой мыши -> удалить все из группу -> удалить группу. И такой имопрт + удаление проделывал три раза. Но программа физически из базы товары не удаляла, а значит в ней было порядка 8-9 тис товаров которые в справочнике не светились, а просто как мусор в базе были. А вы помогли мне от них избавится. Изображений товара в базе я не хранил, а при удалении выполнил все ваши пункты. После удаления и проверки базы все что нужно остается на своем месте. Так что все отличненько!

TheOK

Думаю, все в порядке. 9 тыс. товара, очень даже не маленькая цифра)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

crazyjonyster

Цитата: TheOK від Квітень 26, 2012, 14:16:27
Думаю, все в порядке. 9 тыс. товара, очень даже не маленькая цифра)

А возможно вы можете подсказать как удалить уже удаленные товары?

Опишу ситуацию:

Добавился товар в базу и по какой-то причине он либо не использовался либо была приходная и возврат поставщику ( то есть никакого движения влияющего на прибыль и т. д.) Далее мы этот товар удалили, но теперь после добавления нового товара, но со штрих-кодом удаленного - база выдает сообщение о том что товар с таким наименованием найден в другой группе, нажимаю ок, и опять сообщение товар с таким штрихкодом найден в такой-то групе, нажимаю не синхронизировать, и появляется в базе удаленный товар + новый товар, причем новый товар оказывается нивкакой группе от этого не высвечивается в отчете об остатках по поставщику... Суть состоит в том что бы через SQL запрос удалить из базы уже удаленные товары и этим избавится от этих сообщений и ненужного восстановления уже удаленных товаров. Готов и заплатить за данную помощь)) Моя почта John на домене shtuki.ua

Можно было бы присвоить товарам и новые штрих-кода, но очень не хочется так как у нас лимит на 10'000 кодов  (неважно почему) и около 4500 тыс из них забиты в давно удаленные товары и хочется освободить базу от этих товаров и освободить кода для дальнейшего использования!

ВАЖНО, что сейчас все эти товары находятся не в одной конкретной группу а где угодно....

Заранее спасибо!

admin

Подправили. В удаленных не будет искать. Ждите обновлений.

Denwer

А после резервирования\восстановления удаленный товар полностью исчезает из базы или остается навсегда скрытым? У нас довольно большой продуктовый магазин и часто меняется ассортимент товара и соответсвенно удаляются старые позиции, это не влияет на размер базы?

Creat

Назавжди залишається в базі. Так база зростає. Старі товари використовувались в документах і їх не можна видалити просто з бази, їх помічають "скритими".

Denwer

Спасибо за ответ, а если сделать очистку данных и документов (кроме справочника товаров), останутся в базе ранее удаленные записи?

admin

Цитата: Denwer від Листопад 16, 2016, 22:25:05
Спасибо за ответ, а если сделать очистку данных и документов (кроме справочника товаров), останутся в базе ранее удаленные записи?

Нет, "Очистка данных" удаляет все документы, и если надо создаст документ остатков, база уменьшится после резервирования / восстановления.

Zapuzalo

Тоже проблема с призрачными группами и товарами в них.
С помощью первого скрипта показались все товары и все группы с подгруппами. Выписал все в тетрадку, и отдельно выписал действующие номера, которые отображаются в "Наценки на товары". После третьим скриптом (второй не сработал, выскакивала ошибка) удалил товары с призрачных групп. После прогонки первого скрипта, номера призрачных групп уже не отображались.
Есть большое желание почистить полностью. Остались товары, у которых не было групп, и товары призраки, которые находятся в существующих (действующих) группах.
Есть ли способ завершить начатое до победного конца?

На фото призраки без групп, и призраки в действующих группах:





Не покидает надежда навести полный порядок )