gifts2017

Универсальная обработка для перенумерации справочников

Опубликовал Вячеслав Полищук (sweeper7) в раздел Обработки - Обработка справочников

Данная простейшая обработка выполняет всего одну функцию, а именно сквозную (без учета иерархии) перенумерацию элементов выбранного справочника. Порядок существующих кодов соблюдается, но коды приводятся к натуральным числам (числовой тип кода) либо к строкам, состоящим из дополненных ведущими нулями натуральных чисел (строковый тип кода).

Необходимость подобной перенумерации может возникнуть в случае беспорядочного редактирования кодов элементов пользователями.

Данная простейшая обработка выполняет всего одну функцию, а именно сквозную (без учета иерархии) перенумерацию элементов выбранного справочника. Порядок существующих кодов соблюдается, но коды приводятся к натуральным числам (числовой тип кода) либо к строкам, состоящим из дополненных ведущими нулями натуральных чисел (строковый тип кода).

Необходимость подобной перенумерации может возникнуть в случае беспорядочного редактирования кодов элементов пользователями.

На время выполнения обработки необходимо отключить контроль уникальности кодов для требующего обработки справочника (после запуска обработки в окне сообщений будет выведена подробная инструкция действий для такого отключения).

Результат выполнения обработки необратим, поэтому рекомендуется создать резервную копию базы до ее выплнения, если Вы не совсем уверены в своих действиях.

Настоятельно не рекомендуется выполнять обработку для справочников, коды которых содержат значимую информацию, а не просто порядковые номера элементов. Примеры таких справочников: Банки (коды используются для хранения кодов МФО), Налоги и отчисления (коды используются в конфигурации для определения нужных ставок налогов и отчислений), Коды УКТВЭД (коды используются для хранения самих кодов УКТВЭД) и т.д.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ПеренумерацияЭлементовСправочника
.ert 32,50Kb
06.04.13
55
.ert 32,50Kb 55 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Иваныч Иванов (Иваныч) 09.04.13 09:36
"Необходимость подобной перенумерации может возникнуть в случае беспорядочного редактирования кодов элементов пользователями."

За такие дела надо руки поломать :evil:
2. Ilya (ivisor_fil) 09.04.13 14:08
А слабо без отмены контроля уникальности?

Выгрузить коды и ссылки на элементы в таблицу исходных кодов.
Добавить колонку и привести коды к необходимому формату.
Отсортировать по этой колонке.
Сформировать таблицу с последовательностью "правильных" кодов по формату и исходя из количества элементов в исх. таблице.
В первом проходе из таблицы исходных кодов выбрать элементы с "правильными" кодами и подставить их в таблицу правильных кодов (а из исходных удалить - останутся только "неправильные").
Во втором проходе из исходной таблицы подряд выбирать оставшиеся элементы и ставить их в соответствие незадействованным "правильным" кодам.
Пройтись по таблице правильных кодов и транзакцией записать "правильные" коды только элементам у которых код отличается от "приведенного".
(можно использовать только одну ТЗ - тут по желанию)

Т.о. во первых не нужно ни кого выгонять из базы и менять конфигурацию.
Во вторых, особенно если справочник большой, а нарушена нумерация только у небольшой части кодов (например вчера кто-то "накосячил" и пара сотен кодов из 10 000 "пошли вразнос") сохранится нумерация для тех элементов, которые уже имели верные коды даже неправильного формата(а это часто бывает важно, когда пользователи ориентируются по кодам а не по наименованиям).

Да и в обще - как-то по феншую это ;)
К тому же гораздо интереснее, чем тупо перебором перебить все подряд ИМХО.
3. Antonio Petti (Некто A. Petti) 09.04.13 23:31
Очередной велосипед. Поражаюсь упорству.
Уже много лет на ИТС есть обработки по перенумерации всего и вся.
4. soba (soba) 10.04.13 06:42
(2) ivisor_fil,
Подход, конечно, правильный :) Все по феншую. Да и не "велосипед" получится, а велосипед с программным управлением. Только вот реально, нет необходимости уде в том, вариантов чего в рабочем виде десятки уже на форуме
5. Ilya (ivisor_fil) 10.04.13 12:10
(4) soba
Дык это ж не я выложил - я просто написал, что бы я сам стал выкладывать и делать.
А простую перенумерацию можно на коленке за 5 минут написать - даже на форуме искать не придется.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа