В процессе работы с программами 1С пользователи и администраторы нередко сталкиваются с ситуацией, когда при создании новых документов начинает сбиваться автонумерация или появляются дубликаты номеров. В таких случаях возникает необходимость изменить номер документа вручную, однако поле номера часто заблокировано для редактирования. Проанализируем причины этой проблемы и разберем способы её решения на платформах 1С 7.7 и 1С 8.3.
Прежде чем открывать возможность ручной настройки, разберем по шагам, почему платформа начинает задваивать номера или выдавать неправильный порядок:
/1), алгоритм сортировки начинает считать этот номер максимальным, из-за чего автоматическая нумерация застревает.Рассмотрим два основных способа снятия запрета на изменение номера для конфигураций на платформе 1С 7.7 (например, «Торговля и Склад»):
Способ 1. Настройка в Конфигураторе
НомерДок (на слое «Шапка») и перейдем в Свойства.Способ 2. Программное открытие доступа в коде формы
В модуле формы документа в процедуре ПриОткрытии можно включить возможность изменения номера с помощью встроенного метода:
Форма.НомерДок.Редактирование(1);
В современных конфигурациях 1С 8.3 (ERP, Управление торговлей, Комплексная автоматизация) разблокировка поля номера обычно выполняется через интерфейс формы или права доступа:
Редактирование номеров документов. Без этого права платформа блокирует ввод независимо от настроек формы.Еще — Разрешить редактирование реквизитов (или нажмем на значок карандаша рядом с полем номера, если механизм предусмотрен в конфигурации).Если после введения специального номера (например, 0000-0032/1) автонумератор перестал корректно генерировать следующие последовательные номера (0000-0033 и далее), разберем порядок действий по восстановлению штатной работы.
Шаг 1. Исправление всех некорректных номеров
Приведем все ранее измененные вручную номера за текущий период к единому стандартному виду. Номер должен содержать правильное количество лидирующих нулей и не должен содержать посторонних символов (дробей, букв, пробелов).
Шаг 2. Сброс кэша нумерации методом ОбновитьНумерациюОбъектов
Для того чтобы платформа пересчитала максимальный номер на основе фактических корректных данных в базе, выполним встроенный метод глобального контекста ОбновитьНумерациюОбъектов(). Это можно сделать через внешнюю обработку или обработку «Консоль кода»:
// Восстановление нумерации для конкретного вида документов
ОбновитьНумерациюОбъектов(Метаданные.Документы.ЗаказНаряд);
Если требуется обновить нумераторы для всех объектов базы данных, передадим значение Неопределено или запустим метод без параметров:
// Сброс кэша нумерации для всех метаданных
ОбновитьНумерациюОбъектов();
Посмотрим на ещё один эффективный способ решения проблемы дубликатов при переходе на новый период или при работе в разных филиалах — назначение префикса организации или подразделения. Если в начале года установить новый префикс для документов (например, букву О или НГ), нумератор создаст отдельную последовательность (О000-000001), что исключит пересечение с номерами предыдущих лет.