Справочники и Данные · 11 мин
Как настроить код номенклатуры в 1С
Как настроить код номенклатуры в 1С: длина и тип кода, автонумерация, префиксы, изменение кодов вручную и типичные ошибки при работе со справочником.
Код номенклатуры в 1С — это уникальный идентификатор элемента справочника «Номенклатура», который программа присваивает автоматически при создании новой позиции. Код используется для быстрого поиска товара, обмена данными между базами, интеграции с торговым оборудованием и выгрузки каталогов на сайт. Неправильно настроенная нумерация приводит к дублям, конфликтам при синхронизации и путанице в отчётах.
По умолчанию в типовых конфигурациях (1С:Управление торговлей, 1С:ERP, 1С:Комплексная автоматизация) код номенклатуры формируется автоматически и имеет строковый тип с фиксированной длиной. Пользователь может изменить код вручную, настроить префиксы для разных баз или перестроить нумерацию под требования компании.
Ниже разобраны практические сценарии: где меняется код, как работает автонумерация, как настроить префиксы при обмене данными, что делать при конфликтах кодов и какие ограничения существуют в типовых конфигурациях.
Где находится код номенклатуры и как его изменить вручную
Код элемента отображается в списке справочника «Номенклатура» (раздел «НСИ и администрирование» → «Номенклатура» или «Склад и доставка» → «Номенклатура» в зависимости от конфигурации) и в карточке самого товара. В списке код обычно выведен первой колонкой, в карточке — в шапке рядом с наименованием.
Чтобы изменить код вручную, откройте карточку номенклатуры, щёлкните по полю «Код» и введите новое значение. Если поле недоступно для редактирования, значит для справочника включён контроль уникальности и запрет ручного изменения — такое встречается в доработанных конфигурациях. В типовых решениях ручное изменение обычно разрешено.
При вводе кода вручную программа проверяет уникальность: если такой код уже существует, появится предупреждение. Учтите, что коды с ручным вводом могут «перебивать» автоматическую нумерацию — об этом подробнее в разделе про автонумерацию.
Как работает автонумерация кодов
В типовых конфигурациях для справочника «Номенклатура» включена автонумерация: при создании нового элемента программа берёт максимальный существующий код и увеличивает его на единицу. Код имеет строковый тип, поэтому номера выглядят как «000000001», «000000002» и так далее — с лидирующими нулями до полной длины кода.
Важная особенность строковой нумерации: программа сравнивает коды как строки, а не как числа. Если вручную создать элемент с кодом «999999999» (максимально возможным для текущей длины), автонумерация остановится — следующий номер присвоить будет невозможно, и появится ошибка. Аналогично код «АБВ-001» может стать «максимальным» по строковому сравнению и нарушить последовательность.
Если автонумерация сбилась, самый простой способ восстановить её — найти элемент с «неправильным» максимальным кодом и исправить его вручную на значение, меньшее текущего рабочего максимума. После этого автонумерация продолжится от правильного номера.
Настройка длины и типа кода в конфигураторе
Длина и тип кода справочника — это свойства метаданных, которые меняются только в конфигураторе и только при снятой с поддержки или расширенной конфигурации. В типовой поставке длина кода номенклатуры обычно составляет 9–11 символов, тип — строка.
Чтобы изменить длину кода, откройте конфигуратор, найдите справочник «Номенклатура», перейдите на закладку «Нумерация» (или «Данные» в зависимости от версии платформы) и измените свойство «Длина кода». После сохранения конфигурации потребуется обновление конфигурации базы данных — программа выполнит реструктуризацию таблиц.
Увеличивать длину кода имеет смысл, только если текущей разрядности реально не хватает: например, при коде длиной 9 доступно до миллиарда позиций, чего достаточно практически любой компании. Уменьшать длину кода в базе с данными опасно — коды, не помещающиеся в новую длину, будут обрезаны или вызовут ошибку реструктуризации.
Префиксы кодов при обмене данными между базами
Если компания работает с несколькими базами 1С (например, центральная база и базы филиалов) и настроена синхронизация данных, коды номенклатуры должны быть уникальны во всех базах сразу. Для этого используется механизм префиксов: каждая база добавляет к автоматически присваиваемым кодам свой префикс, например «ЦБ-000000001» и «Ф1-000000001».
Префикс информационной базы задаётся в разделе «НСИ и администрирование» → «Синхронизация данных» → «Префиксы информационных баз» (в некоторых конфигурациях — «Префикс этой информационной базы»). Префикс — короткая строка, обычно 2–3 символа. После установки префикса новые элементы справочников будут получать коды с этим префиксом.
Префикс влияет только на вновь создаваемые элементы: коды, присвоенные ранее, не изменятся. Поэтому префиксы нужно настроить до начала параллельного ввода номенклатуры в разных базах. Если дубли уже возникли, их придётся разрешать вручную или специальной обработкой.
- 1Откройте «НСИ и администрирование» → «Синхронизация данных» и включите синхронизацию, если она ещё не включена
- 2Задайте уникальный префикс для каждой базы (например, ЦБ, Ф1, Ф2)
- 3Убедитесь, что длина кода справочника позволяет вместить префикс и номер
- 4Проверьте: создайте тестовый элемент номенклатуры и посмотрите его код — в начале должен стоять префикс базы
- 5Настройте правила конвертации в плане обмена, если используется нестандартная синхронизация
Поиск по коду и использование кода в работе
Код — самый быстрый способ найти товар в списке. В поле поиска справочника достаточно ввести код целиком или его часть: при настройке поиска «по началу строки» программа найдёт позицию по первым цифрам кода. Это удобно, когда операторы работают с прайсами, где указаны внутренние коды.
Код также фигурирует в обменах с внешними системами: при выгрузке каталога на сайт, в систему EDI или на кассовое оборудование именно код часто используется как ключ сопоставления товаров. Поэтому менять коды у элементов, которые уже участвуют в обменах, следует с осторожностью — внешняя система может воспринять переименованный товар как новую позицию.
Для печатных форм и этикеток код доступен как стандартный реквизит: его можно вывести в макет прайс-листа, ценника или отчёта через настройку варианта отчёта (кнопка «Настройки» → «Поля» или «Расширенная настройка»).
Как проверить результат
Код присваивается автоматически и продолжает последовательность
Ошибка «Не удалось получить очередной номер» или код с неожиданным значением
Поиск по коду находит ровно один элемент
Один код у нескольких позиций — нужна проверка дублей
Новые коды начинаются с префикса этой базы
Коды без префикса — префикс не задан или сброшен
Товары сопоставляются по кодам без создания дублей
После синхронизации появляются дубли номенклатуры
Ограничения типовых конфигураций и альтернативы
В пользовательском режиме типовой конфигурации нельзя изменить длину кода, тип нумерации или задать сложную маску (например, «группа-год-порядковый номер»). Если бизнесу требуется смысловая кодировка — например, чтобы код отражал категорию и вид товара — есть два пути: доработка конфигурации (подписка на событие «ПриУстановкеНовогоКода») или использование дополнительного реквизита для «красивого» кода при сохранении стандартной нумерации.
Второй вариант предпочтительнее: дополнительный реквизит создаётся без изменения конфигурации («НСИ и администрирование» → «Дополнительные реквизиты»), выводится в списки и отчёты, а служебный код остаётся нетронутым и не ломает обмены. Смысловые коды со временем теряют актуальность — товар меняет категорию, а код остаётся старым, что вводит в заблуждение.
Как выбрать действие
Перед массовым изменением кодов (например, обработкой) выгрузите список текущих кодов в табличный документ. Если после изменения что-то пойдёт не так, по этой выгрузке можно быстро восстановить соответствие старых и новых значений.
Часто задаваемые вопросы
Можно ли удалить код у номенклатуры или оставить его пустым?
Нет, для справочника «Номенклатура» контроль уникальности и обязательность кода включены на уровне конфигурации. Пустой код не сохранится — программа либо присвоит очередной номер автоматически, либо выдаст ошибку. Код является системным идентификатором и не может отсутствовать.
Почему новые товары получают код с буквами, хотя раньше были только цифры?
Скорее всего, в базе задан префикс информационной базы (для синхронизации) или кто-то вручную ввёл код с буквами, и автонумерация продолжила от него. Проверьте настройку префикса в разделе синхронизации данных и найдите элементы с нечисловыми кодами через сортировку списка по коду.
Что будет, если изменить код товара, по которому уже есть документы?
Ничего критичного: документы ссылаются на элемент справочника по внутренней ссылке, а не по коду, поэтому проведённые документы не пострадают. Однако изменённый код может не совпасть с кодом в связанных базах и внешних системах — там товар сопоставляется именно по коду.
Как найти дубли кодов в номенклатуре?
Стандартный контроль уникальности не даёт создать два элемента с одинаковым кодом, поэтому настоящие дубли кодов в одной базе маловероятны. Чаще ищут дубли самих товаров (одинаковые позиции с разными кодами) — для этого используйте обработку «Поиск и удаление дублей» в разделе «НСИ и администрирование» → «Обслуживание».
Можно ли настроить нумерацию отдельно для каждой группы номенклатуры?
В типовой конфигурации нумерация единая для всего справочника, разделить её по группам штатными средствами нельзя. Такая возможность требует доработки через подписку на событие установки нового кода либо использования дополнительных реквизитов с собственной логикой заполнения.
Влияет ли длина кода на быстродействие базы?
Практически нет: разница между кодом в 9 и 25 символов не даёт заметного эффекта на скорость работы при типовых объёмах справочника. Выбирайте длину исходя из требований нумерации и префиксов, а не из соображений производительности.
Что важно запомнить
Код номенклатуры присваивается автоматически, редактируется вручную в карточке товара и должен оставаться уникальным. Для нескольких баз настраивайте префиксы до начала работы, не вводите вручную коды с максимальными значениями и буквами, а для смысловой кодировки используйте дополнительные реквизиты вместо изменения служебного кода.