Нумерация в документе
02.04.2008
19:26
#1
"Столкнулась с такой странной проблемой. Бухгалтеру нужна была автоматическая нумерация некоего документа с префиксом. Ну я вставила в процедуру 1 строку:
Процедура ВводНового(Копирование)
УстановитьНовыйНомер("П1-");
......
И больше ничего.
Вроде поначалу жалоб не было, но с какого-то момента всем новым документам система стала присваивать один и тот же номер "П1-100". Такой номер уже реально есть, и бОльшие тоже есть. Естественно записать такой документ не получается, пока номер вручную не исправишь.
В форме документа стоят установки: Нумератор - не назначен, периодичность - в пределах года, контроль уникальности.
Ерунда какая-то, но не найду в чем дело. Может кто знает?
"
Процедура ВводНового(Копирование)
УстановитьНовыйНомер("П1-");
......
И больше ничего.
Вроде поначалу жалоб не было, но с какого-то момента всем новым документам система стала присваивать один и тот же номер "П1-100". Такой номер уже реально есть, и бОльшие тоже есть. Естественно записать такой документ не получается, пока номер вручную не исправишь.
В форме документа стоят установки: Нумератор - не назначен, периодичность - в пределах года, контроль уникальности.
Ерунда какая-то, но не найду в чем дело. Может кто знает?
"
02.04.2008
19:59
#2
Посмотри какие еще номера есть в журнале за этот год! Видимо кто-то исправил на номер не шаблонный например: П1-99 вместо П1-099. Нумерация и слетела!!! Номер всегда должен быть похож на шаблон П1-000
02.04.2008
20:42
#3
Номера есть всякие, в том числе и без префиксов вообще (так и надо, это вводят другие пользователи заведомо известные номера). Но вот номера П1-99 как раз нет. Хотя есть П1-997, например. (Длина номера=8).
Почему с-ма прицепилась к 100? И можно ли параллельно использовать нумерацию с префиксом и без для одного типа документов?
Почему с-ма прицепилась к 100? И можно ли параллельно использовать нумерацию с префиксом и без для одного типа документов?
02.04.2008
20:55
#4
Сейчас в порядке эксперимента стала разные другие префиксы ставить. Вообще цирк получился.
Префиксы О1-,ОО-,О-,2-,А- дали правильный результат: нумерация с 1 и общей длиной=8.
А префикс 1- дает нумерацию 101,102 и т.д.
Ну а прежний как на 100 заклинило, так и сидит там.
В задумчивости почесываю затылок...
Префиксы О1-,ОО-,О-,2-,А- дали правильный результат: нумерация с 1 и общей длиной=8.
А префикс 1- дает нумерацию 101,102 и т.д.
Ну а прежний как на 100 заклинило, так и сидит там.
В задумчивости почесываю затылок...
02.04.2008
21:28
#5
"М.б., есть номера просто 99 и 100 без префиксов?
Выясните, как программа производит автонумерацию строковых величин, может, это поможет разобраться.
Вроде бы так:
1. сортируются все введенные ранее номера документов по строчному типу (здесь 99 больше 0999, т.к. для уравнивания справа добавляются пробелы);
2. Берется верхний номер (старший), определяется его длина с ограничением в т.ч. префиксом, преобразуется в число;
3. прибавляется 1, преобразуется в строку с определенной ранее длиной, если длина превышает, обрезается (справа или слева?);
4. прибавляется слева префикс.
"
Выясните, как программа производит автонумерацию строковых величин, может, это поможет разобраться.
Вроде бы так:
1. сортируются все введенные ранее номера документов по строчному типу (здесь 99 больше 0999, т.к. для уравнивания справа добавляются пробелы);
2. Берется верхний номер (старший), определяется его длина с ограничением в т.ч. префиксом, преобразуется в число;
3. прибавляется 1, преобразуется в строку с определенной ранее длиной, если длина превышает, обрезается (справа или слева?);
4. прибавляется слева префикс.
"
03.04.2008
19:11
#6
Да, номера 99 и 100 есть. Но ясности нет.
Я так понимаю, что в с-ме реализован не описанный Вами алгоритм, а какой-то другой. Потому что создавая новые префиксы, прямо сейчас, когда в базе полно документов, я бы должна была тогда получить: префикс + (последний номер+1), а я получаю что-то типа: префикс + "00001".
Я так раньше и думала, что по каждому префиксу - своя нумерация! Но и это не так, т.к., как я уже писала выше, не всегда с 1 начинается.
В инструкциях про алгоритм вообще ничего нет. И я так понимаю, что каша там у них в алгоритме изрядная. Вот я и думала, может тут кто знает точно, чего они там наворочали.
Потому что при таких начальных условиях (какие я описала) экспериментальным путем восстанавливать алгоритм - дело крайне трудоемкое и долгое. И не факт, что получится.
Где бы узнать точно?
Я так понимаю, что в с-ме реализован не описанный Вами алгоритм, а какой-то другой. Потому что создавая новые префиксы, прямо сейчас, когда в базе полно документов, я бы должна была тогда получить: префикс + (последний номер+1), а я получаю что-то типа: префикс + "00001".
Я так раньше и думала, что по каждому префиксу - своя нумерация! Но и это не так, т.к., как я уже писала выше, не всегда с 1 начинается.
В инструкциях про алгоритм вообще ничего нет. И я так понимаю, что каша там у них в алгоритме изрядная. Вот я и думала, может тут кто знает точно, чего они там наворочали.
Потому что при таких начальных условиях (какие я описала) экспериментальным путем восстанавливать алгоритм - дело крайне трудоемкое и долгое. И не факт, что получится.
Где бы узнать точно?
03.04.2008
19:28
#7
Попробуй с префиксами О1-,ОО-,О-,2-,А- создай документы О1-99,ОО-99,О-99,2-99,А-99.
Дальше нормал будет создаваться????? 100 101.... Если нет значит надо перенумеровывать!
Дальше нормал будет создаваться????? 100 101.... Если нет значит надо перенумеровывать!
03.04.2008
22:27
#8
Точно!!!
После 00-99,2-99 и т.п. все портится!!! И длина становится почему-то 2 знака после префикса, и номер всегда создается = 10! Не работает больше нумерация.
А в моем первоначальном случае 999 с префиксом был! Точно.
Вот оттуда и пошло 100, вероятно.
Хотя весьма неадекватная реакция нумератора, прямо скажем.
Буду потихоньку исследовать дальше. Бухгалтерию придется огорчить.
Всем большое спасибо за содействие!
После 00-99,2-99 и т.п. все портится!!! И длина становится почему-то 2 знака после префикса, и номер всегда создается = 10! Не работает больше нумерация.
А в моем первоначальном случае 999 с префиксом был! Точно.
Вот оттуда и пошло 100, вероятно.
Хотя весьма неадекватная реакция нумератора, прямо скажем.
Буду потихоньку исследовать дальше. Бухгалтерию придется огорчить.
Всем большое спасибо за содействие!
Читают тему
(гостей: 1)