Программирование в 1СПятница, 22.11.2024, 00:47

| RSS
Главная | Каталог статей
Меню сайта

Категории раздела
Основы [36]
Общие вопросы по 1С 7.7 [88]
1С: Бухгалтерия 7.7 [7]
1С: Торговля 7.7 [4]
1С:Зарплата и кадры 7.7 [1]
1С 7.7: Проблемы и решения [33]
УРБД [3]
Управление Распределенными Базами Данных
OLE [2]
Механизм обмена данными между базами 1С через OLE
SQL [1]
Сервер терминалов [1]
Интеграция с внешними приложениями [3]
FAQ по 1С v.7.7 [7]
FAQ по 1С v.7.7

Поиск

Поиск по сайту

Главная » Статьи » 1С v.7.7 » Общие вопросы по 1С 7.7

Сбилась нумерация документов. Как вернуть прежний порядок?
Сбилась нумерация документов. Как вернуть прежний порядок?
 
    Как известно, номер документа может быть текстовым или числовым – это задается в Конфигураторе в свойствах документа. Там же можно включить Автонумерацию, тогда программа будет сама генерировать номер нового документа.
    Механизм автонумерации работает довольно просто. Если номер числовой, то берется максимальный номер среди существущих документов, и он увеличивается на единицу. Тут проблем не возникает. С текстовым номером программа поступает так: берет всю числовую часть номера (отсекает префикс, если есть), увеличивает значение на единицу, учитывая при этом количество лидирующих нулей, и возвращает обратно текст, присоединяя отсеченный ранее префикс, если он был.
    Определяющее значение во всей этой процедуре играет “количество нулей”, т.е. разрядность номера. Вот что пишут в разделе “Советы линии консультации” на диске ИТС:
... Особенность алгоритма автоматического присваивания нового номера в этом случае заключается в том, что он предполагает неизменную длину номера, например, “00001” – “00002” – “00003”. Другой пример (с префиксом) – “Ст-001” – “Ст-002” – “Ст-003”.
    Почему это важно? Потому, что при определении наибольшего номера 1С анализирует номера с наименьшей разрядностью. Иными словами, если пользователь в каком-то документе вручную поменял разрядность номера (вместо “00012” написал “12”), то автоматически будет увеличиваться номер с меньшей длиной (новым номером будет “13”, а не “00013”).
    Следствием такого поведения может быть ошибка “Номер не уникален”. Она возникает потому, что когда увеличивать номер больше некуда (“99”, “Счф-999” и т.п.), программа снова начинает отчет с единицы (создает, соответственно, “01” и “Счф-001”).
    Самый простой способ исправить ситуацию – найти документ с некорректным номером и изменить в нем номер на правильный.
    Если ситуация позволяет, можно перенумеровать все документы базы по порядку. Для этого, понятно, лучше воспользоваться обработкой.
    Можно начать новую нумерацию – для этого надо поменять префикс документа. Имейте ввиду, что префикс документа может быть установлен либо функцией ПрефиксАвтоНумерации(<ИмяВида>,<Префикс>) в глобальном модуле, либо в процедуре ВводНового() в модуле формы документа с помощью функции УстановитьНовыйНомер(<Префикс>).
    В большинстве случаев нет необходимости в редактировании номера документа. А самый простой способ избежать сбоев в автонумерации – запретить ручное редактирование номера. Для этого достаточно в форме документа в свойствах Поля ввода “НомерДок” отметить галочку “Запретить редактирование”.
Категория: Общие вопросы по 1С 7.7 | Добавил: Spacer (17.06.2008)
Просмотров: 27290 | Теги: документ, Нумерация
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Copyright 1C:Programmer © 2024
    Бесплатный конструктор сайтов - uCoz