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

Разработка и Конфигурация · 9 мин

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

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

Под «увеличением кода» в 1С обычно понимают две разные задачи: увеличение длины кода элемента справочника (например, номенклатуры или контрагентов) и увеличение длины номера документа. Обе решаются через свойства объекта метаданных в конфигураторе, но последствия для данных и обменов различаются.

Стандартная ситуация: в справочнике «Номенклатура» задана длина кода 9 символов, база работает несколько лет, и счётчик подходит к пределу. При попытке создать новый элемент программа выдаёт ошибку «Значение поля "Код" не уникально» или код перестаёт увеличиваться. Единственный корректный способ решения — увеличить длину кода в конфигураторе и обновить конфигурацию базы данных.

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

Что именно нужно увеличить: код, номер или нумерацию

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

Увеличить длину можно у кода справочника, у номера документа и у кода плана счетов, плана видов характеристик и других объектов. У каждого объекта это отдельное свойство, и менять его нужно именно там, где возникла проблема. Универсальной настройки «увеличить все коды» не существует.

Подготовка: резервная копия и анализ зависимостей

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

Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельный каталог. Для клиент-серверной базы делают выгрузку через конфигуратор (Администрирование → Выгрузить информационную базу) или средствами СУБД. Выгрузка в dt предпочтительнее: она проверяется платформой при загрузке.

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

Увеличение длины кода справочника в конфигураторе

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

Увеличьте значение «Длина кода» с запасом: если сейчас 9 символов и счётчик близок к пределу, ставьте 11 или больше. Учтите, что для строкового кода лидирующие нули являются частью значения, и старые коды останутся короткими — это нормально, уникальность не нарушится.

После изменения свойства нажмите F7 или выберите Конфигурация → Обновить конфигурацию базы данных. Платформа покажет окно реструктуризации со списком изменяемых таблиц — подтвердите. Дождитесь завершения и проверьте создание нового элемента: код должен присваиваться с новым разрядом.

Порядок действий
  1. 1
    Сделайте резервную копию базы (файл 1Cv8.1CD или выгрузка в dt)
  2. 2
    Откройте конфигуратор, найдите справочник в дереве конфигурации
  3. 3
    В свойствах на вкладке «Данные» увеличьте значение «Длина кода»
  4. 4
    Обновите конфигурацию базы данных (F7) и подтвердите реструктуризацию
  5. 5
    Создайте тестовый элемент и проверьте присвоение кода
  6. 6
    Проверьте обмены и отчёты, где код используется

Увеличение длины номера документа

Для документов логика та же: свойства документа → вкладка «Нумерация» → поле «Длина номера». Дополнительно проверьте настройки периодичности и префиксации: если используется префикс организации или информационной базы, он занимает часть длины номера, и реальный запас цифр меньше, чем кажется.

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

Особенности для типовых конфигураций

В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) изменение длины кода снимает объект с полной поддержки. Это не блокирует обновления: при обновлении конфигурации сравнение покажет изменённое свойство, и его нужно будет сохранить вручную, отметив в окне сравнения свою версию длины кода.

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

Альтернатива для тех, кто не хочет трогать типовой объект, — использовать дополнительный реквизит или штрихкод как внешний идентификатор, оставив код как есть. Это подходит, если проблема не в исчерпании нумерации, а в неудобном формате кодов для интеграции.

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

Увеличить длину кода в конфигураторе

Правильное решение при исчерпании нумерации. Требует реструктуризации и контроля при обновлениях типовой конфигурации.

Сбросить нумерацию с новым префиксом

Быстрый обходной путь без изменения конфигурации, но коды дублируют старые по цифрам — риск путаницы в отчётах и обменах.

Использовать GUID или дополнительный реквизит

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

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

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

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

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

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

Код присваивается автоматически, длина соответствует новой

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

Ошибка уникальности или код обрезается

Обмен с другими базами
Норма

Объекты сопоставляются, нет ошибок в журнале обмена

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

Задвоение элементов или отказ загрузки

Отчёты и печатные формы
Норма

Коды выводятся полностью

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

Код обрезан в макете или отборе

Типичные ошибки
01
Увеличить код только в одной базе обмена — вторая начнёт отклонять или дублировать объекты
02
Выставить длину впритык — через год проблема повторится, берите запас в 2–3 разряда
03
Забыть про префикс — он съедает часть длины номера документа
04
Не проверить окно сравнения при обновлении типовой — длина кода откатится к типовому значению
05
Перенумеровать старые документы после изменения — нарушится связь с выданными печатными формами

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

Можно ли увеличить код без конфигуратора, из режима Предприятия?

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

Старые элементы с короткими кодами сломаются после увеличения длины?

Нет. Существующие значения сохраняются как есть, уникальность не нарушается. Новые элементы просто получат возможность использовать больше разрядов. Менять старые коды не требуется.

Что делать, если код задан вручную и автонумерация не работает?

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

Влияет ли длина кода на производительность базы?

Практически нет. Разница между 9 и 13 символами в индексах незаметна на типовых объёмах. Гораздо сильнее на скорость влияет сама реструктуризация больших таблиц в момент обновления — её и нужно планировать на нерабочее время.

Как увеличить код в плане счетов или плане видов характеристик?

Точно так же: свойства объекта в конфигураторе, вкладка «Данные», поле «Длина кода». Для плана счетов дополнительно проверьте маску кода и длину порядка — они связаны с общей длиной и могут потребовать совместной корректировки.

Можно ли уменьшить длину кода обратно?

Технически да, но только если все существующие значения укладываются в новую длину — иначе реструктуризация завершится ошибкой или данные будут усечены. На практике уменьшать длину не рекомендуется: оставьте запас, он не мешает работе.

Итог

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

Длина кода и номера меняется в конфигураторе через свойства объекта с обновлением конфигурации базы данных. Обязательны: резервная копия, запас по разрядам, синхронное изменение во всех базах обмена и контроль окна сравнения при обновлении типовой конфигурации.