![]() |
![]() |
![]() |
|
исправление некорректной нумерации | ☑ | ||
---|---|---|---|---|
0
PiotrLoginov
26.04.13
✎
00:10
|
Здравствуйте всем. Описываю проблемку, вынудившую меня вновь просить помощи у форумчан. В базе некоторые из создаваемых сторонним ПО документов имеют некорректные номера - префикс не такой, как обычно, и нумерация другой длины, не продолжающая сложившуюся нумерацию. Вот наваял я обработку, в начале которой создается выборка "неправильных" документов. Теперь надо найти номер последнего "правильного" документа и поменять номера в некорректных доках, продолжив "правильную" нумерацию.
Пусть обычный префикс АБВГ. И последние созданные документы имеют номера ... АБВГ-000566 АБВГ-000567 АБВГ-000566 АБВГ-000569 АА002400030 АБВГ-000568 АА002400031 АА002400032 Повторюсь, готова выборка со ссылками на АА-шные доки. Как теперь найти "правильный" документ с самым большим номером (в данном случае АБВГ-000569)? Неужели брать все 500 с лишним номеров этого года, отрезать от каждого префикс и потом выбирать самый большой? Просто наудачу задействовать МАКСИМУМ кажется опасным - запросто в наибольшие может попасть АА002400032 . Буду очень признателен поделившемуся обычными приемами, используемыми в таких случаях. |
|||
1
Jonny_Khomich
26.04.13
✎
06:30
|
Тот кто сделал сторонний софт, пусть исправляет.
А вообще выбрать максимум я делал так: выбирал все записи за период, сортировал по убыванию и брал первый - это будет максимум. А новый номер можно присвоить встроенной процедурой ЭтотОбъект.УстановитьНовыйНомер(ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы); |
|||
2
Godofsin
26.04.13
✎
06:34
|
(0) а чо бы не воспользоваться обработкой с диска ИТС?
|
|||
3
Rie
26.04.13
✎
06:38
|
(0) Создать новый документ, УстановитьНовыйНомер("АБВГ-") - и посмотреть, что получится?
|
|||
4
PiotrLoginov
26.04.13
✎
09:58
|
(1) > Выбирал все записи, сортировал...
Ближе к лету это будут уже тысячи штук. И прежде чем сортировать нужно префикс отрезать, проверять, что номер "правильный" и "достоин" участвовать в сортировке. По-хорошему надо каждый из тысяч номеров обрабатывать и проверять. Неужели нет другого пути? (2) Умоляю, подскажите, как называется. Чтобы отбрасывала последние АА-шные и (если будут) другие (например, полученные в результате обмена с префиксом другой базы и нумерацией той базы), а затем среди "своих" находила самый большой. Если есть такая обработка, мне большего счастья и не надо было бы. (3) Пардон, не понял... Зачем создавать новый номер? Мне несколько уже имеющихся перенумеровать надо. |
|||
5
Godofsin
26.04.13
✎
10:00
|
(4) УниверсальныйПодорИобработкаСправочниковИДокументов.епф
Там есть обработка перенумерации, выставляешь нач. номер и префикс и она все делает в ажуре |
|||
6
PiotrLoginov
26.04.13
✎
10:15
|
(5) Т.е. пользователь должен сам находить каждый раз, с какого документа начинать и с какого номера? Не. Спасибо Вам конечно за участие, но мне бы организовать полностью автоматический процесс. И потом разве такие обработки не перенумеровывают ВСЕ документы за указанный период - и "правильные", и "неправильные"? Этак в базе "правильные" доки поменяют свои номера, что будет уже совсем нехорошо.
|
|||
7
PiotrLoginov
26.04.13
✎
12:13
|
(1) (3) Попробовал использовать УстановитьНовыйНомер для "неправильных" документов. Если писать УстановитьНовыйНомер("АБВГ"), создает АБВГ-АБВГ01, а вот если не указывать префикс, получается то, что надо. Еще раз благодарю за подсказку прекрасного готового решения.
|
|||
8
Rie
26.04.13
✎
13:07
|
(4) Ты же хотел узнать, с какого номера начинать? Создай новый номер - и с него начинай (сохранять документ, естественно, не надо).
|
|||
9
PiotrLoginov
26.04.13
✎
13:15
|
(8) Да не, все норм, при перенумерации уже существующих документов метод сам находит, с какого номера надо продолжить. В лучшем виде. Спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |