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

Наши программы => УкрСклад => Тема розпочата: Antilock від Червень 03, 2013, 15:24:17

Назва: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 03, 2013, 15:24:17
Доброго дня.
Допоможіть з скриптом для стирання кодів товару з групи і зробити нову автономерацію коду товару в групі, так як дуже багато повторень коду по цілій базі!!!
Хотілось щоб все було впорядковано без повторень.
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: TheOK від Червень 04, 2013, 00:48:08
Вам нужно по одной группе затереть код или обновить все кода в базе?
Если по одной, то учитывая подгруппы или нет? А так же укажите так же значение колонки TIP группы, в которой хотите произвести такие изменения (если, конечно, вы хотите это сделать по одной группе, а не по всему складу). Однако, мне кажется, что если у вас не несет осмысленной информации коды в остальных группах, а так же они не используются в документации, то лучше обновить данные по коду всего склада.
В каком виде вы хотите себе кода? (кол-во цифр в коде).
Вставьте следующий скрипт в Опции->SQL менеджер. Вставить в поле Тело скрипта и нажать кнопку выполнить скрипт. Напишите сюда число, которое выведет запрос
Select max(tn.num) from tovar_name tn

Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 12:09:31
21304
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 12:32:22
Возможно я не правильно сформулировал вопрос. Мне нужно стереть все коды и назначить новые во всей базе. База у меня очень большая и очень много кодов дублируется. Хотелось б чтоб все коды шли по порядку и не дублировались.
Из за дубликатов кодов у меня много ошибок было, я обнулил базу но не коды и сейчас она у меня только месяц с новыми документами. Пока их не много (200док.) хочу навести порядок. Помогите пожалуйста со скриптом на обнуление кодов во все базе и назначение новых по порядку.
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 12:39:58
И не зацепить ли это документацию что есть?
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: admin від Червень 04, 2013, 12:45:26
Вот примеры тем, только обязательно делайте резерв до того как будете запускать скрипты:
http://www.softbalance.com.ua/forum/index.php/topic,373.msg12627.html#msg12627 (http://www.softbalance.com.ua/forum/index.php/topic,373.msg12627.html#msg12627)
http://www.softbalance.com.ua/forum/index.php?topic=1636.0 (http://www.softbalance.com.ua/forum/index.php?topic=1636.0)
http://www.softbalance.com.ua/forum/index.php?topic=2683.0 (http://www.softbalance.com.ua/forum/index.php?topic=2683.0)
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 13:08:57
Код: [Выделить]
UPDATE
  tovar_name
SET
  kod = num

этот скрипт обнуляет очень хорошо, а как чтоб начиналось с 1 а не 10000?
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Creat від Червень 04, 2013, 13:44:01
:)
num-9999
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 13:51:26
Creat - ты хоть сам то проверял? Выдает ошибка... за старание спасибо... но это не помогло...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 14:13:41
Частично помогло. Но как сделать чтоб начиналась нумерация с 1 ???  У меня почему то с 4973 началась нумерация, перечитал все силки и как сделать с 1 не нашол ... помогите пожалуста...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: admin від Червень 04, 2013, 15:20:40
Цитата: Antilock від Червень 04, 2013, 14:13:41
Частично помогло. Но как сделать чтоб начиналась нумерация с 1 ???  У меня почему то с 4973 началась нумерация, перечитал все силки и как сделать с 1 не нашол ... помогите пожалуста...

Скрипт что указан выше просто присваивает внутренний номер записи (он 100% уникальный) в базе данных, вашему коду. Зачем вам начинать товар с 1? У вас задача чтобы код был уникальный.
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Creat від Червень 04, 2013, 15:42:42
Цитата: Antilock від Червень 04, 2013, 13:08:57
Код: [Выделить]
UPDATE
  tovar_name
SET
  kod = num

этот скрипт обнуляет очень хорошо, а как чтоб начиналось с 1 а не 10000?
Цитата: Antilock від Червень 04, 2013, 13:51:26
Creat - ты хоть сам то проверял? Выдает ошибка... за старание спасибо... но это не помогло...
Я тебе поверил на слово,  что начиналось с 10000.
Если названия товара уникальны, то можно экспортировать в екселе создать нужную нумерацию кодов, а потом назад импортировать с проверкой двойников по названию.
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 16:10:34
Цитата: admin від Червень 04, 2013, 15:20:40
Цитата: Antilock від Червень 04, 2013, 14:13:41
Частично помогло. Но как сделать чтоб начиналась нумерация с 1 ???  У меня почему то с 4973 началась нумерация, перечитал все силки и как сделать с 1 не нашол ... помогите пожалуста...

Скрипт что указан выше просто присваивает внутренний номер записи (он 100% уникальный) в базе данных, вашему коду. Зачем вам начинать товар с 1? У вас задача чтобы код был уникальный.
просто рабочим (и мне) будет лучше если будит начинаться с 1... так как у меня перескакивает за 21521 товар!!!
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 16:11:11
Цитата: Creat від Червень 04, 2013, 15:42:42
Цитата: Antilock від Червень 04, 2013, 13:08:57
Код: [Выделить]
UPDATE
  tovar_name
SET
  kod = num

этот скрипт обнуляет очень хорошо, а как чтоб начиналось с 1 а не 10000?
Цитата: Antilock від Червень 04, 2013, 13:51:26
Creat - ты хоть сам то проверял? Выдает ошибка... за старание спасибо... но это не помогло...
Я тебе поверил на слово,  что начиналось с 10000.
Если названия товара уникальны, то можно экспортировать в екселе создать нужную нумерацию кодов, а потом назад импортировать с проверкой двойников по названию.

Очень долго... и уже документы прописаны!!! это не поможет...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: TheOK від Червень 04, 2013, 21:11:32
не используйте коды начиная с 1. Это дополнительные проблемы. При фильтрации по коду добавите себе проблем.
Лучше сделать, чтобы кол-во значимых символов в коде было одинаково.
Т.е. по идее, которую писал Create, только не num-10000, а, например, num+10000
Есть, конечно, способы организовать нумерацию с 1, но еще не смотрел возможно ли это сделать в firebird 1.5
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: Antilock від Червень 04, 2013, 23:15:23
Всем спасибо за помощь...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 29, 2021, 16:12:26
Таки треба інші скрипти.

На даний момент маю в базі 4 і 5 значні коди.до 19999. Якщо роблю num-19000, то чотиризначні коди йдуть в мінус.
Завдання - зробити так, щоб всі товари мали чотиризначний код. Товарів до 9999 найменувань. Як змусити програму переприсвоїти коди починаючи від 0001?
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 29, 2021, 17:32:23
уточнення - груп і підгруп, капець як багато, тому робити погрупно не варіант
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: AGSoft від Червень 29, 2021, 22:41:09
Цитата: HumanKM від Червень 29, 2021, 16:12:26
Таки треба інші скрипти.

На даний момент маю в базі 4 і 5 значні коди.до 19999. Якщо роблю num-19000, то чотиризначні коди йдуть в мінус.
Завдання - зробити так, щоб всі товари мали чотиризначний код. Товарів до 9999 найменувань. Як змусити програму переприсвоїти коди починаючи від 0001?

Сделал такую возможность в своей программе
https://agsoft.net.ua/downloads/npv_setup.exe (https://agsoft.net.ua/downloads/npv_setup.exe)
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 30, 2021, 09:04:51
Просто супер!!!

Я Вам мега вдячний!!!
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 30, 2021, 12:19:21
Не вийшло!!!

Ряд товарів залишається з 5 значними кодами...
Скрін приклав.

Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: admin від Червень 30, 2021, 12:40:13
Цитата: HumanKM від Червень 29, 2021, 16:12:26
Таки треба інші скрипти.

На даний момент маю в базі 4 і 5 значні коди.до 19999. Якщо роблю num-19000, то чотиризначні коди йдуть в мінус.
Завдання - зробити так, щоб всі товари мали чотиризначний код. Товарів до 9999 найменувань. Як змусити програму переприсвоїти коди починаючи від 0001?

https://www.softbalance.com.ua/forum/index.php/topic,4336.msg25807.html#msg25807
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 30, 2021, 12:44:59
Подивіться на нумерацію.
від 1 до чотирьох тис, а потім далі від 16 тис...
Як привласнити номера від 1 (0001 - то вже не принципово), без прірви в 12тисяч...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 30, 2021, 12:47:39
ось виправив наданий Вами скрипт на 4 лідируючі нулі.
Те саме... В Базі наче сховалися 12 тис позицій...
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Червень 30, 2021, 14:00:35
було б добре скрипт, котрий відбере всі 5 значні коди і зменшить їх наприклад на 12000
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: admin від Червень 30, 2021, 14:02:40
Цитата: HumanKM від Червень 30, 2021, 12:47:39
ось виправив наданий Вами скрипт на 4 лідируючі нулі.
Те саме... В Базі наче сховалися 12 тис позицій...

Можливо у вас і є стільки товару, тільки на інших складах. Ви видаляли склади раніше?

Що показує результат скрипту:
SELECT
  COUNT(DISTINCT tn.num)
FROM
  tovar_name tn
    JOIN tovar_zal tz ON (tn.num = tz.tovar_id)
    JOIN sklad_names sn ON (sn.num = tz.sklad_id AND sn.visible = 1)
WHERE
  tn.visible = 1


і що показує:
SELECT
  COUNT(tn.num)
FROM
  tovar_name tn
WHERE
  tn.visible = 1
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: HumanKM від Липень 01, 2021, 08:48:33
Так, було ще два склади, на них товар вирівняли в нуль і видалили їх.

прикладаю фото виконання скриптів
Назва: Re: Потрібний скрипт для стирання кодів з групи...
Відправлено: admin від Липень 01, 2021, 09:23:08
Цитата: HumanKM від Липень 01, 2021, 08:48:33
Так, було ще два склади, на них товар вирівняли в нуль і видалили їх.

прикладаю фото виконання скриптів

Оновили скрипт з урахуванням видалених товарів на інших складах:
https://www.softbalance.com.ua/forum/index.php/topic,4336.msg30743.html#msg30743