|
Дальше
Назад
Содержание
Вопросы, связанные с нумерацией документов и справочников.
Q. Нумерация документов (справочника) дошла до Пр-99, следующий номер получается Пр-10
(вместо Пр-100), и дальше не нумеруется.
A. Создай руками документ с номером Пр-100 и нумерация пойдет дальше.
Если не помогает - обработкой ко всем номерам добавь нули перед номером (Пр-099).
Чтобы изначально предотвратить эту ситуацию - не убивай лидирующие нули в номерах
документов. С самого начала их обычно с запасом.
Q1. Сначала документы нумеровались с префиксом. Потом префикс надоел,
решили его убрать. Однако 1С упорно продолжает нумеровать документы со старым
префиксом. Что делать?
Q2. Пытаемся программно присвоить документу номер с одним префиксом, а присваивается с другим.
Q3. Сбилась нумерация документов (появилась дырка), как ее теперь заполнить?
A. Кто виноват? Сперва небольшое теоретическое отступление на тему "Как 1С
нумерует объекты."
Так вот: среди документов с первыми символами, совпадающими с префиксом, 1С
ищет документ с максимальным номером, затем в конце номера ищет числовую часть,
затем к найденному числу прибавляет единицу, образованную числовую часть
объединяет с текстовой, и сформированный таким образом номер присваивается
новому объекту.
На примере: Есть документы с номерами А-001, А-002, АБ-01 и 00001.
Если мы хотим присвоить номер следующему документу с префиксом "А-", то все в
порядке: ищутся все документы с таким префиксом, (номера А-001 и А-002),
выбирается из них наибольший (А-002), берется числовая часть (002),
прибавляется единица (003), объединяется с текстом (А-003) - номер готов.
Другой пример: Присваиваем номер с префиксом "А". Так вот, отличие от
предыдущего пункта в том, что в первичную выборку попадет еще и номер АБ-01. И
что самое для нас плохое - он-то и будет наибольшим. Просто потому, что символ
"Б" в таблице символов идет после символа "-". В результате, номер получится
АБ-02.
Теперь уже должно быть ясно, что произойдет, когда мы захотим сформировать
номер без префикса. "Без префикса" - то же самое, что и с пустым префиксом "". В
выборку номеров попадут все номера. И поскольку символы, обозначающие
числа, стоят в таблице раньше символов-букв, то самым большим окажется номер с буквой
в начале, то есть с каким-то префиксом.
Что делать? Либо плюнуть, и нумеровать, как нумеруется. Либо
перенумеровать все неправильно занумерованные документы. В свое время
я решил задачу нумерации без префиксов следующим образом: была написана
обработка, которая всем документам с префиксами добавляла первым символом "!".
Тонкость здесь в том, что этот символ идет перед символами-цифрами, чем и
достигалось, с одной стороны преемственность номеров (важно не убить номера у
старых документов), а с другой стороны гладкое использование механизма
автонумерации от 1С.
Дальше
Назад
Содержание
|