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

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

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

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

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

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

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

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

Код элемента отображается в списке справочника «Номенклатура» (раздел «НСИ и администрирование» → «Номенклатура» или «Склад и доставка» → «Номенклатура» в зависимости от конфигурации) и в карточке самого товара. В списке код обычно выведен первой колонкой, в карточке — в шапке рядом с наименованием.

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

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

Как работает автонумерация кодов

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

Важная особенность строковой нумерации: программа сравнивает коды как строки, а не как числа. Если вручную создать элемент с кодом «999999999» (максимально возможным для текущей длины), автонумерация остановится — следующий номер присвоить будет невозможно, и появится ошибка. Аналогично код «АБВ-001» может стать «максимальным» по строковому сравнению и нарушить последовательность.

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

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

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

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

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

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

Префиксы кодов при обмене данными между базами

Если компания работает с несколькими базами 1С (например, центральная база и базы филиалов) и настроена синхронизация данных, коды номенклатуры должны быть уникальны во всех базах сразу. Для этого используется механизм префиксов: каждая база добавляет к автоматически присваиваемым кодам свой префикс, например «ЦБ-000000001» и «Ф1-000000001».

Префикс информационной базы задаётся в разделе «НСИ и администрирование» → «Синхронизация данных» → «Префиксы информационных баз» (в некоторых конфигурациях — «Префикс этой информационной базы»). Префикс — короткая строка, обычно 2–3 символа. После установки префикса новые элементы справочников будут получать коды с этим префиксом.

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

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

Поиск по коду и использование кода в работе

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

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

Для печатных форм и этикеток код доступен как стандартный реквизит: его можно вывести в макет прайс-листа, ценника или отчёта через настройку варианта отчёта (кнопка «Настройки» → «Поля» или «Расширенная настройка»).

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

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

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

Код присваивается автоматически и продолжает последовательность

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

Ошибка «Не удалось получить очередной номер» или код с неожиданным значением

Уникальность кодов
Норма

Поиск по коду находит ровно один элемент

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

Один код у нескольких позиций — нужна проверка дублей

Префикс в распределённой базе
Норма

Новые коды начинаются с префикса этой базы

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

Коды без префикса — префикс не задан или сброшен

Обмен данными
Норма

Товары сопоставляются по кодам без создания дублей

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

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

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

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

Второй вариант предпочтительнее: дополнительный реквизит создаётся без изменения конфигурации («НСИ и администрирование» → «Дополнительные реквизиты»), выводится в списки и отчёты, а служебный код остаётся нетронутым и не ломает обмены. Смысловые коды со временем теряют актуальность — товар меняет категорию, а код остаётся старым, что вводит в заблуждение.

Маршрут решения

Как выбрать действие

Нужно просто исправить код одной позицииОтредактируйте поле «Код» в карточке номенклатуры вручную
Сбилась автонумерацияНайдите элемент с максимальным «неправильным» кодом и исправьте его
Несколько баз обмениваются номенклатуройНастройте уникальные префиксы информационных баз
Нужна смысловая кодировка (категория + номер)Используйте дополнительный реквизит, не трогая служебный код
Не хватает разрядности кодовУвеличьте длину кода в конфигураторе с резервной копией и тестированием
Перед массовым изменением кодов (например, обработкой) выгрузите список текущих кодов в табличный документ. Если после изменения что-то пойдёт не так, по этой выгрузке можно быстро восстановить соответствие старых и новых значений.
ПЗ
Практическое замечание

Часто задаваемые вопросы

Можно ли удалить код у номенклатуры или оставить его пустым?

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

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

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

Что будет, если изменить код товара, по которому уже есть документы?

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

Как найти дубли кодов в номенклатуре?

Стандартный контроль уникальности не даёт создать два элемента с одинаковым кодом, поэтому настоящие дубли кодов в одной базе маловероятны. Чаще ищут дубли самих товаров (одинаковые позиции с разными кодами) — для этого используйте обработку «Поиск и удаление дублей» в разделе «НСИ и администрирование» → «Обслуживание».

Можно ли настроить нумерацию отдельно для каждой группы номенклатуры?

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

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

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

Итог

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

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