К статье
Практический материал

Справочники и Данные · 8 мин

Как сбросить код справочника в 1С

Как сбросить или изменить код элемента справочника в 1С: ручное редактирование, сброс автонумерации, обработка группового перенумерования и типичные ошибки.

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

Выбор способа зависит от задачи: нужно ли изменить код одного элемента, исправить сбившуюся автонумерацию или перенумеровать весь справочник. Ниже разобраны все рабочие варианты с ограничениями и проверкой результата.

Как устроен код справочника и почему он «сбивается»

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

Нумерация сбивается в типичных ситуациях: элемент с максимальным кодом удалили, а платформа продолжает отсчёт от старого значения; данные загрузили из другой базы с чужими кодами; используется обмен между узлами РИБ, где коды резервируются с префиксами. Важно понимать: «дырки» в нумерации сами по себе не являются ошибкой и не влияют на работу учёта — код нужен прежде всего для уникальности и удобства поиска.

Ручное изменение кода одного элемента

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

Порядок действий
  1. 1
    Откройте нужный элемент справочника в режиме предприятия
  2. 2
    Нажмите «Ещё» в командной панели формы и выберите «Редактировать код» (в типовых конфигурациях БСП)
  3. 3
    Если пункта нет — включите «Функции для технического специалиста» через меню сервиса и откройте редактирование кода оттуда
  4. 4
    Введите новый код и запишите элемент
  5. 5
    Проверьте, что запись прошла без сообщения о нарушении уникальности

Если при записи появляется ошибка «Код не уникален», значит элемент с таким кодом уже существует. Найдите его через поиск по коду в списке справочника (Ctrl+F или строка поиска) и либо выберите другой код, либо сначала измените код конфликтующего элемента.

В конфигурациях без БСП пункт «Редактировать код» может отсутствовать. Тогда вариант — открыть форму элемента через «Функции для технического специалиста → Редактировать объект», где поле кода доступно напрямую.

Сброс автонумерации справочника

Под «сбросом кода» часто понимают именно сброс счётчика автонумерации: чтобы следующий созданный элемент получил код, начиная с нужного значения. Штатной кнопки «сбросить нумерацию» в пользовательском интерфейсе нет — это делается программно или через конфигуратор.

Программный способ — выполнить в консоли кода (или через внешнюю обработку) метод установки нового кода для объекта. Метод УстановитьНовыйКод() у объекта справочника назначает ему следующий код по правилам нумерации, а чтобы задать стартовое значение счётчика, проще всего создать или отредактировать элемент с нужным максимальным кодом: платформа при автонумерации ориентируется на текущий максимум.

bsl
// Пример: перенумеровать элемент справочника программно
ЭлементОбъект = Справочники.Номенклатура.НайтиПоНаименованию("Тестовый товар").ПолучитьОбъект();
ЭлементОбъект.УстановитьНовыйКод(); // назначит следующий свободный код
ЭлементОбъект.Записать();

Если нужно, чтобы нумерация началась заново с единицы, сначала перенумеруйте или удалите элементы с большими кодами — иначе платформа продолжит от текущего максимума. Для строковых кодов с префиксами логика сложнее: счётчик ведётся внутри каждого префикса отдельно.

Массовая перенумерация справочника

Когда коды нужно привести к порядку у десятков или тысяч элементов, ручная правка не подходит. Есть два практических пути.

Первый — типовая обработка «Групповое изменение реквизитов» (в конфигурациях на БСП: «Администрирование → Обслуживание → Корректировка данных», либо через «Функции для технического специалиста»). Она позволяет отобрать элементы по отбору и изменить реквизит «Код» по формуле, например присвоить произвольное значение. Однако последовательную нумерацию по возрастанию таким способом задать сложно — обработка присваивает одно значение или вычисляет по алгоритму.

Второй путь — специализированная обработка перенумерации или собственный код: перебрать элементы запросом с упорядочиванием (например, по наименованию или дате создания) и каждому присвоить код по счётчику. Такой вариант даёт полный контроль над результатом.

Сравнение вариантов

Ручное редактирование кода

Подходит для 1–5 элементов. Быстро и безопасно, но не масштабируется.

Групповое изменение реквизитов

Подходит для массовой установки одинакового или вычисляемого кода. Не даёт сквозной нумерации по порядку.

Программная перенумерация

Полный контроль: порядок, префиксы, пропуски. Требует навыков работы с консолью кода и резервной копии.

Риски и меры предосторожности

Код участвует в уникальности справочника и часто используется в обменах, печатных формах и внешних отчётах. Изменение кода элемента, на который ссылаются документы, не разорвёт ссылки — внутри базы связь идёт по внутреннему идентификатору, а не по коду. Но если код выгружается в другие системы (сайт, складская программа, другая база 1С), его смена может привести к рассинхронизации и дублям при следующем обмене.

Перед массовой перенумерацией обязательно сделайте резервную копию базы (выгрузку в dt через конфигуратор или копию на уровне СУБД). Проверьте, не участвует ли справочник в планах обмена, и не используется ли код как ключ сопоставления при синхронизации.

Проверка результата и типичные ошибки

После изменения кодов откройте список справочника и отсортируйте по колонке «Код». Убедитесь, что дублей нет: платформа контролирует уникальность, но при обменах с отключённым контролем дубли всё же встречаются. Создайте новый тестовый элемент — он должен получить ожидаемый следующий код.

Контрольные точки

Как проверить результат

Сортировка списка по коду
Норма

Коды идут в ожидаемом порядке, дублей нет

Тревожный признак

Повторяющиеся коды или неожиданные значения

Создание нового элемента
Норма

Присваивается следующий свободный код

Тревожный признак

Код продолжает отсчёт от старого максимума

Запись элемента
Норма

Записывается без ошибок уникальности

Тревожный признак

Ошибка «Код не уникален»

Типичные ошибки
01
Перенумерация без резервной копии — при ошибке восстановить прежние коды будет неоткуда
02
Смена кодов в справочнике, участвующем в обмене, — приводит к дублям в связанной базе
03
Попытка сбросить нумерацию удалением элементов — счётчик всё равно продолжит от прежнего максимума
04
Игнорирование префиксов в строковых кодах — нумерация ведётся отдельно внутри каждого префикса

Когда лучше привлечь специалиста

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

Итог

Что важно запомнить

Код одного элемента меняется через «Ещё → Редактировать код». Автонумерация сбрасывается программно или правкой максимального кода. Массовая перенумерация делается обработкой или кодом — только после резервной копии и проверки обменов данными.

Частые вопросы

Почему поле «Код» недоступно для редактирования?

В типовых конфигурациях поле специально заблокировано от случайных изменений. Используйте команду «Ещё → Редактировать код» в форме элемента или откройте объект через «Функции для технического специалиста → Редактировать объект», где реквизиты доступны напрямую.

Нарушатся ли ссылки на элемент, если изменить его код?

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

Как сделать, чтобы нумерация началась с единицы?

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

Можно ли сбросить код в файловой базе без конфигуратора?

Да. Ручное редактирование и групповое изменение реквизитов выполняются в режиме предприятия. Конфигуратор понадобится только для резервного копирования через выгрузку dt или для изменения самих настроек нумерации справочника (длины, типа кода).

Что делать, если появились элементы с одинаковым кодом?

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