Как разрешить менять номер документа вручную в 1С и восстановить автоматическую нумерацию

Программист 1С v8.3 (Управляемые формы)
← На главную

В процессе работы с программами 1С пользователи и администраторы нередко сталкиваются с ситуацией, когда при создании новых документов начинает сбиваться автонумерация или появляются дубликаты номеров. В таких случаях возникает необходимость изменить номер документа вручную, однако поле номера часто заблокировано для редактирования. Проанализируем причины этой проблемы и разберем способы её решения на платформах 1С 7.7 и 1С 8.3.

Выясняем причины сбоя автоматической нумерации

Прежде чем открывать возможность ручной настройки, разберем по шагам, почему платформа начинает задваивать номера или выдавать неправильный порядок:

  1. Нарушение формата номера: Номер документа в 1С является строковым реквизитом. Если пользователь один раз ввел номер вручную с нарушением разрядности (например, убрал лидирующие нули или добавил спецсимволы вроде /1), алгоритм сортировки начинает считать этот номер максимальным, из-за чего автоматическая нумерация застревает.
  2. Кэширование номеров на сервере: На платформах 1С 8.x сервер принудительно кэширует диапазон номеров. Если документ с некорректным номером удален или исправлен, кэш может продолжать выдавать сбившиеся значения.
  3. Периодичность нумерации: Если для документа установлена периодичность (например, «В пределах года»), то с наступлением нового периода нумерация начинается заново. Если в базе остались документы прошлых периодов с аналогичным форматом или без префиксов, могут возникнуть совпадения.

Как разрешить редактирование номера документа в 1С 7.7

Рассмотрим два основных способа снятия запрета на изменение номера для конфигураций на платформе 1С 7.7 (например, «Торговля и Склад»):

Способ 1. Настройка в Конфигураторе

  1. Откроем Конфигуратор и найдем нужный документ в дереве метаданных.
  2. Откроем форму документа. Нажмем правой кнопкой мыши по полю НомерДок (на слое «Шапка») и перейдем в Свойства.
  3. На закладке Общие снимем флажок с пункта запрета редактирования и проверим доступность элемента управления.

Способ 2. Программное открытие доступа в коде формы

В модуле формы документа в процедуре ПриОткрытии можно включить возможность изменения номера с помощью встроенного метода:

Форма.НомерДок.Редактирование(1);

Как разблокировать редактирование номера в 1С 8.3

В современных конфигурациях 1С 8.3 (ERP, Управление торговлей, Комплексная автоматизация) разблокировка поля номера обычно выполняется через интерфейс формы или права доступа:

  1. Проверка прав доступа: Убедимся, что у роли пользователя включено право Редактирование номеров документов. Без этого права платформа блокирует ввод независимо от настроек формы.
  2. Разблокировка через Меню «Еще»: В документе выберем команду Еще — Разрешить редактирование реквизитов (или нажмем на значок карандаша рядом с полем номера, если механизм предусмотрен в конфигурации).

Восстановление автоматической нумерации после ручных правок

Если после введения специального номера (например, 0000-0032/1) автонумератор перестал корректно генерировать следующие последовательные номера (0000-0033 и далее), разберем порядок действий по восстановлению штатной работы.

Шаг 1. Исправление всех некорректных номеров

Приведем все ранее измененные вручную номера за текущий период к единому стандартному виду. Номер должен содержать правильное количество лидирующих нулей и не должен содержать посторонних символов (дробей, букв, пробелов).

Шаг 2. Сброс кэша нумерации методом ОбновитьНумерациюОбъектов

Для того чтобы платформа пересчитала максимальный номер на основе фактических корректных данных в базе, выполним встроенный метод глобального контекста ОбновитьНумерациюОбъектов(). Это можно сделать через внешнюю обработку или обработку «Консоль кода»:


// Восстановление нумерации для конкретного вида документов
ОбновитьНумерациюОбъектов(Метаданные.Документы.ЗаказНаряд);

Если требуется обновить нумераторы для всех объектов базы данных, передадим значение Неопределено или запустим метод без параметров:


// Сброс кэша нумерации для всех метаданных
ОбновитьНумерациюОбъектов();

Использование префиксов для разделения нумерации

Посмотрим на ещё один эффективный способ решения проблемы дубликатов при переходе на новый период или при работе в разных филиалах — назначение префикса организации или подразделения. Если в начале года установить новый префикс для документов (например, букву О или НГ), нумератор создаст отдельную последовательность (О000-000001), что исключит пересечение с номерами предыдущих лет.

← На главную