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

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

Как увеличить количество знаков в коде номенклатуры 1С

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

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

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

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

Где хранится настройка длины кода и почему возникает ограничение

Код справочника в 1С — системный реквизит, который платформа создаёт автоматически. Его свойства задаются на уровне конфигурации: тип (число или строка), длина, автонумерация, контроль уникальности. Для номенклатуры в типовых конфигурациях код обычно строковый с длиной от 9 до 11 знаков — этого хватает на сотни миллионов позиций, но при обменах, префиксации баз и переносах данных старых учётных систем лимит исчерпывается быстрее.

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

Ошибка при создании элементаКод не записывается или дублируется

Проверьте текущую длину кода в свойствах справочника

Префиксы баз в обменеЧасть длины съедается префиксом

Посчитайте фактический запас знаков с учётом префикса

Загрузка из внешней системыКоды поставщика длиннее поля

Сравните длину внешних кодов с длиной кода в 1С

Подготовка: что проверить перед изменением

Первый шаг — резервная копия. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей либо выполнить выгрузку в dt через конфигуратор. Для клиент-серверной базы используйте выгрузку в dt или средства СУБД. Копия должна быть проверена на восстановление, а не просто создана.

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

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

Пошаговая инструкция по увеличению длины кода

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

Порядок действий
  1. 1
    Завершите работу всех пользователей и сделайте резервную копию базы
  2. 2
    Откройте конфигуратор: Конфигурация → Открыть конфигурацию
  3. 3
    Найдите в дереве объектов: Справочники → Номенклатура, откройте палитру свойств
  4. 4
    Найдите свойство «Длина кода» и увеличьте значение (например, с 9 до 11 или 15)
  5. 5
    Проверьте, что включены «Автонумерация» и нужный «Контроль уникальности»
  6. 6
    Сохраните конфигурацию и выполните: Конфигурация → Обновить конфигурацию базы данных
  7. 7
    Примите изменения реструктуризации и дождитесь завершения
  8. 8
    Создайте тестовый элемент номенклатуры и проверьте новый код

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

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

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

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

Альтернативы, когда менять длину кода нельзя

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

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

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

Увеличение длины кода

Подходит при исчерпании автонумерации; требует доступа к конфигуратору и реструктуризации

Дополнительный реквизит для внешнего кода

Подходит для интеграций; не требует снятия с поддержки, но код 1С остаётся прежним

Регистр сопоставления идентификаторов

Подходит для обменов с несколькими системами; сложнее в настройке

Сокращение префикса базы

Подходит при распределённых обменах; освобождает знаки без изменения структуры

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

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

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

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

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

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

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

Ошибка записи или код обрезается

Старые элементы
Норма

Прежние коды открываются и отображаются без изменений

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

Коды искажены или элементы не открываются

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

Данные выгружаются и выводятся полностью

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

Код обрезается в выгрузке или на печатной форме

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

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

FAQ

Изменятся ли коды существующих товаров после увеличения длины?

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

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

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

Что делать, если конфигурация типовая и снимать её с поддержки нежелательно?

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

Почему платформа отказывается обновлять конфигурацию базы данных?

Частые причины: попытка уменьшить длину при наличии более длинных кодов, отсутствие монопольного доступа (в базе работают пользователи), нехватка места на диске для временных таблиц реструктуризации. Проверьте эти условия и повторите обновление.

Влияет ли увеличение длины кода на штрихкоды и этикетки?

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

Какую длину кода выбрать с запасом?

Оцените темп роста номенклатуры и длину префиксов в обменах, затем возьмите запас в несколько знаков. Разумный ориентир для растущих баз — 11–15 знаков. Избыточно большая длина не даёт преимуществ и усложняет ручной ввод кодов.

Итог

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

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