Часто в процессе работы с конфигурацией 1С:Управление торговлей возникает ситуация, когда после ручного изменения номера документа, содержащего нестандартные символы (например, дробь), система начинает «запоминать» этот формат. В результате все последующие новые документы создаются с нежелательным суффиксом. Разберем, почему это происходит и как вернуть нумерацию в нормальное русло.
Механизм автоматической нумерации в 1С устроен таким образом, что система при создании нового документа ищет максимальный номер в базе, чтобы присвоить следующий по порядку. Когда пользователь вручную вводит номер с «хвостом» (например, «/9»), система воспринимает этот фрагмент как часть шаблона или новую маску. Поскольку этот номер становится максимальным по значению, механизм нумерации пытается продолжать этот ряд, подставляя дробь всем новым объектам.
Простое создание документа с «правильным» номером зачастую не помогает, так как в системных таблицах 1С уже зафиксирована информация о последнем использованном номере, и программа продолжает опираться на эти данные.
Для исправления ситуации необходимо использовать метод ОбновитьНумерациюОбъектов. Этот метод глобального контекста принудительно пересчитывает данные в регистрах нумерации на основе реально существующих в базе номеров. Рассмотрим, как применить это решение на практике.
Это самый доступный и безопасный метод для администратора или опытного пользователя, имеющего права на выполнение административных функций. Выполним следующие шаги:
СчетФактураВыданный).Код для вставки в произвольный алгоритм:
ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетФактураВыданный);
После выполнения этого кода система просканирует все документы указанного типа и обновит внутренние счетчики нумерации, убрав «зависший» суффикс.
Если вам требуется более гибкое управление или вы предпочитаете использовать внешние инструменты, можно создать простую обработку, содержащую одну строку кода. Это решение часто используют программисты для оперативного исправления данных.
Разберем пример кода, который можно поместить в модуль формы обработки:
// Пример выполнения команды для обновления нумерации
// Вызываем метод для конкретного типа документа
ОбновитьНумерациюОбъектов(Метаданные.Документы.СчетФактураВыданный);
// Можно также обновить нумерацию для всех документов сразу,
// если проблема носит массовый характер
Важно помнить, что после выполнения обработки необходимо убедиться, что права пользователей на редактирование номеров документов ограничены. В типовых конфигурациях рекомендуется запретить ручное изменение номеров, чтобы избежать подобных инцидентов в будущем.
Чтобы избежать подобных проблем в дальнейшем, проанализируем следующие рекомендации:
Проанализировав данную ситуацию, мы выяснили, что ключ к решению лежит в использовании встроенных средств платформы 1С для пересчета нумераторов. Соблюдая эти простые правила, вы сможете поддерживать порядок в нумерации документов без лишних хлопот.