Как сбросить или обновить нумерацию объектов в 1С:УНФ?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

Часто в работе с типовыми конфигурациями, такими как 1С:Управление нашей фирмой (УНФ), возникают ситуации, когда нумерация документов «сбивается» — для решения этой проблемы есть готовая настройка автоматической нумерации документов в 1С. Это происходит, если пользователь вручную вводит «кривой» номер документа, и система запоминает его как последний использованный. В результате последующие документы начинают создаваться с нежелательными префиксами или неверными числовыми значениями.

Давайте разберем, как исправить эту проблему и вернуть нумерацию в нормальное русло.

Причина возникновения проблемы

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

Решение проблемы с помощью программного кода

Для приведения нумерации в соответствие с фактическим состоянием базы данных в 1С предусмотрен встроенный метод ОбновитьНумерациюОбъектов. Этот метод анализирует все документы соответствующего типа, находит максимальный номер и обновляет внутренний кэш платформы.

Рассмотрим, как его применить на практике.

Способ 1: Использование «Групповой обработки справочников и документов»

Если вам нужно оперативно исправить ситуацию и у вас есть права администратора, воспользуйтесь стандартным инструментом Групповая обработка справочников и документов. Это самый быстрый путь, не требующий создания внешних обработок.

  1. Откройте раздел Администрирование или Инструменты разработчика и найдите Групповая обработка.
  2. В режиме отбора укажите тот тип документа, у которого сбилась нумерация (например, СчетНаОплату).
  3. Выберите режим выполнения «Произвольный алгоритм».
  4. В поле для кода введите следующую команду:

ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетНаОплату);

После этого выполните обработку. Система пересчитает нумерацию, опираясь на реальные данные в таблице документов. Теперь при создании нового счета программа подхватит корректный номер.

Способ 2: Создание внешней обработки

Если вы хотите иметь под рукой готовый инструмент для периодического обслуживания базы, создайте внешнюю обработку. Это удобно, если проблема возникает регулярно.

В модуле формы обработки добавьте команду, которая будет вызывать обновление нумерации. Пример кода:


&НаСервере
Процедура ВыполнитьОбновлениеНаСервере()
    // Укажите нужный вам объект метаданных
    ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетНаОплату);
КонецПроцедуры

Этот метод является наиболее надежным и рекомендуемым способом синхронизации данных.

Важные замечания по безопасности и ограничениям

Важно понимать, что в некоторых средах, таких как облачные сервисы (например, 1С:Фреш), запуск произвольного кода через внешние обработки ограничен политиками безопасности. Если вы работаете в таком облаке, выполнить описанные действия самостоятельно через Групповую обработку или внешние файлы не получится.

В подобных случаях мы рекомендуем следующие шаги:

Использование ОбновитьНумерациюОбъектов позволяет эффективно восстановить порядок в нумерации документов без необходимости внесения изменений в конфигуратор или переписывания логики работы нумераторов.

← На главную