Код номенклатуры в 1С: что это и как его строить
Код номенклатуры это внутренний номер карточки в справочнике. Его присваивает система или человек при создании позиции, и он нужен, чтобы однозначно назвать запись внутри одной базы. Код отвечает на вопрос «какая это запись», а не «что это за вещь». Поэтому две карточки одного и того же болта получат два разных кода, и код этого не заметит.
Код, артикул и наименование: три разных реквизита
В карточке номенклатуры рядом лежат три поля, которые путают чаще всего. У каждого свой владелец и своя задача.
| Реквизит | Кто задаёт | Что гарантирует |
|---|---|---|
| Код | Система при создании, реже человек | Отличает одну запись справочника от другой внутри базы |
| Артикул | Производитель, поставщик или ваша служба снабжения | Ничего. Один артикул встречается у разных исполнений, а у одной вещи бывает несколько артикулов |
| Наименование | Тот, кто заводит карточку | Ничего. Читается человеком, одну вещь описывают по-разному |
Подробно про второе поле написано в статье про артикул в карточке. Здесь важно одно: только код технически уникален. Но уникален он как номер записи, а не как описание вещи.
Как 1С выдаёт код
Обычно код присваивается автоматически при создании элемента справочника. Номер идёт по порядку, иногда с префиксом, который задаёт конфигурация. Длина кода, его тип (число или строка) и способ нумерации настраиваются в самом справочнике. Где именно это сделать, зависит от конфигурации и версии, поэтому сверьтесь с документацией вашей базы или с тем, кто её администрирует.
Две вещи стоит знать до того, как менять схему.
- Код уже в документах. Сами документы ссылаются на карточку по внутренней связи, а код видят люди в печатных формах и отчётах. Менять код массово без плана значит запутать бухгалтерию и склад.
- Нумерация считается внутри справочника. Другая база выдаст свои номера, и они совпадут с вашими случайно.
Значащий и порядковый код
Есть две школы. Порядковый код ничего не сообщает: 000014872, и всё. Значащий код несёт смысл, например начало кода означает группу, следующие цифры означают подгруппу.
| Признак | Порядковый | Значащий |
|---|---|---|
| Создание | Автоматически, без решений | Нужна схема и человек, который её знает |
| Ошибки при заведении | Почти нет | Неверный класс даёт неверный код |
| Читаемость | Нулевая | Опытный человек понимает класс по коду |
| Если вещь переклассифицировали | Код остаётся | Код устарел или его меняют вместе со ссылками |
Практический вывод такой. Значащий код устаревает, когда меняется классификация. Смысл лучше хранить в отдельном признаке карточки, а код оставить порядковым. Тогда перестройка классов не трогает идентификатор.
Где код полезен на практике
Код нужен там, где человеку надо быстро назвать запись. Кладовщик диктует номер по телефону, закупщик ищет карточку по номеру из заявки, администратор проверяет, что загрузка создала ровно одну запись. В этих сценариях важна краткость и отсутствие повторов, а смысл кода не нужен.
Код плохо работает как способ узнать вещь. Если сотрудник «знает» код болта наизусть, это значит, что в справочнике нет нормального наименования или привычка заменила поиск. Через год придёт новый сотрудник, и память о кодах уйдёт вместе с прежним.
Что даёт кодирование
Хороший код решает несколько простых задач.
- По нему быстро находят карточку в диалоге со складом или закупкой.
- Он стабилен: наименование поправили, а код остался прежним.
- Он служит ключом при обмене между двумя системами, если обе согласились использовать его именно так.
Если нужен смысл внутри номера, его закладывают в шаблон наименования и в класс позиции, а не в длинные схемы цифр. Готовых универсальных схем кодирования нет, каждое предприятие выбирает свою и записывает правила в регламент.
Почему код не ловит дубли
Это главное ограничение. Когда заводят вторую карточку на ту же вещь, система выдаёт ей новый свободный код. Уникальность кода при этом не нарушена, и никакой проверки не возникает. Дубль получает полноценный номер.
Пример из справочника МТР. Подшипник записали как «Подшипник 6205-2RS» и как «6205 2RS подш.». Коды разные, поиск по коду их не свяжет. Связать их можно только по смыслу и ключевым характеристикам: обозначение, тип уплотнения, производитель, фасовка. Так работает и поиск дублей номенклатуры: код в сравнении не участвует.
Обратная ловушка тоже есть. Одинаковый код в двух базах не означает одну вещь. Номера совпали, потому что обе базы считали с единицы.
Код при переносе между базами
При переносе номенклатуры код старой базы чаще всего не подходит в качестве ключа. В целевой базе такие же номера могут принадлежать другим вещам. Обычная практика: старый код сохраняют отдельным реквизитом, чтобы потом можно было найти исходную запись, а новая база выдаёт свой. Сопоставлять позиции при этом приходится по описанию. Разбор шагов есть в материале про перенос между базами.
Как строить кодирование, если решили вводить правило
Когда в справочнике нет правил вообще, полезно ввести минимальные.
- Один способ нумерации на весь справочник: либо автоматический, либо ручной по схеме, но не смесь.
- Код не содержит сведений, которые меняются: поставщика, склад, цену.
- Если нужен префикс, он означает площадку или тип справочника и не меняется при переклассификации.
- Повторы кода запрещены на уровне справочника, а не только договорённостью.
Остальное, то есть класс, вид и признаки вещи, хранится в отдельных реквизитах карточки. Так проще менять классификацию и не трогать идентификатор.
Что делать с уже существующими кодами
- Не перенумеровывайте без причины. Работающий код трогать дорого, выгоды почти нет.
- Проверьте повторы. Выгрузите справочник в Excel и посмотрите, нет ли одинаковых кодов у разных вещей. Внутри одной базы их быть не должно, а после слияния баз они встречаются.
- Найдите разные коды на одну вещь. Это и есть дубли. Для них код ничего не подскажет, нужен разбор по описанию.
- Запишите правила. Кто может задавать код вручную, нужен ли префикс, что делать при слиянии карточек.
Если справочник большой, дубли проще найти проверкой каждой строки, чем выборочно. Пришлите выгрузку на бесплатную пробу, и мы вернём группы позиций, которые описывают одну вещь под разными кодами.
Вопросы про код номенклатуры
- Можно ли менять код у позиции?
- Технически обычно можно, если справочник это разрешает. Практически нужно сначала выяснить, где код используется: в печатных формах, во внешних файлах, в обмене с другими системами. Если код выступает ключом для кого-то снаружи, смена сломает связь. Перед правкой сделайте копию базы и проверьте на тестовой.
- Нужен ли единый код на несколько баз?
- Если базы обмениваются данными или вы планируете свести их в один справочник, нужен общий способ узнавать позицию. Это не обязательно один и тот же код. Часто хватает отдельного сквозного идентификатора или сопоставления по описанию. Если базы совсем независимы, общий код не нужен.
- Чем код номенклатуры отличается от кода классификатора?
- Код номенклатуры называет конкретную карточку. Код классификатора называет группу вещей: у десятков карточек он может быть один и тот же. Это разные уровни, и один не заменяет другой.
Проверим, сколько дублей прячется за уникальными кодами
Пришлите 5–10 тыс строк справочника номенклатуры в Excel или CSV, можно обезличенных. В течение дня вернём файл с группами дублей, единым наименованием, классом, уверенностью и статусом. Бесплатно.
Прислать строки на пробу