Нумерация в документе

Новая тема
"Столкнулась с такой странной проблемой. Бухгалтеру нужна была автоматическая нумерация некоего документа с префиксом. Ну я вставила в процедуру 1 строку:

Процедура ВводНового(Копирование)
УстановитьНовыйНомер("П1-");
        ......

И больше ничего.
Вроде поначалу жалоб не было, но с какого-то момента всем новым документам система стала присваивать один и тот же номер "П1-100". Такой номер уже реально есть, и бОльшие тоже есть. Естественно записать такой документ не получается, пока номер вручную не исправишь.

В форме документа стоят установки: Нумератор - не назначен, периодичность - в пределах года, контроль уникальности.
Ерунда какая-то, но не найду в чем дело. Может кто знает?
"
Посмотри какие еще номера есть в журнале за этот год! Видимо кто-то исправил на номер не шаблонный например: П1-99 вместо П1-099. Нумерация и слетела!!! Номер всегда должен быть похож на шаблон П1-000
Номера есть всякие, в том числе и без префиксов вообще (так и надо, это вводят другие пользователи заведомо известные номера). Но вот номера П1-99 как раз нет. Хотя есть П1-997, например. (Длина номера=8).
Почему с-ма прицепилась к 100? И можно ли параллельно использовать нумерацию с префиксом и без для одного типа документов?
Сейчас в порядке эксперимента стала разные другие префиксы ставить. Вообще цирк получился.
Префиксы О1-,ОО-,О-,2-,А- дали правильный результат: нумерация с 1 и общей длиной=8.
А префикс 1- дает нумерацию 101,102 и т.д.
Ну а прежний как на 100 заклинило, так и сидит там.
В задумчивости почесываю затылок...
"М.б., есть номера просто 99 и 100 без префиксов?
Выясните, как программа производит автонумерацию строковых величин, может, это поможет разобраться.
Вроде бы так:
1. сортируются все введенные ранее номера документов по строчному типу (здесь 99 больше 0999, т.к. для уравнивания справа добавляются пробелы);
2. Берется верхний номер (старший), определяется его длина с ограничением в т.ч. префиксом, преобразуется в число;
3. прибавляется 1, преобразуется в строку с определенной ранее длиной, если длина превышает, обрезается (справа или слева?);
4. прибавляется слева префикс.
"
Да, номера 99 и 100 есть. Но ясности нет.

Я так понимаю, что в с-ме реализован не описанный Вами алгоритм, а какой-то другой. Потому что создавая новые префиксы, прямо сейчас, когда в базе полно документов, я бы должна была тогда получить: префикс + (последний номер+1), а я получаю что-то типа: префикс + "00001".

Я так раньше и думала, что по каждому префиксу - своя нумерация! Но и это не так, т.к., как я уже писала выше, не всегда с 1 начинается.

В инструкциях про алгоритм вообще ничего нет. И я так понимаю, что каша там у них в алгоритме изрядная. Вот я и думала, может тут кто знает точно, чего они там наворочали.

Потому что при таких начальных условиях (какие я описала) экспериментальным путем восстанавливать алгоритм - дело крайне трудоемкое и долгое. И не факт, что получится. :(
Где бы узнать точно?
Попробуй с префиксами О1-,ОО-,О-,2-,А- создай документы О1-99,ОО-99,О-99,2-99,А-99.
Дальше нормал будет создаваться????? 100 101.... Если нет значит надо перенумеровывать!
Точно!!!
После 00-99,2-99 и т.п. все портится!!! И длина становится почему-то 2 знака после префикса, и номер всегда создается = 10! Не работает больше нумерация.
А в моем первоначальном случае 999 с префиксом был! Точно.
Вот оттуда и пошло 100, вероятно.
Хотя весьма неадекватная реакция нумератора, прямо скажем. :(
Буду потихоньку исследовать дальше. Бухгалтерию придется огорчить.
Всем большое спасибо за содействие!
Читают тему
(гостей: 1)

Быстрый переход