Номенклатура в ERPNext: Item Code, группы и аналоги
АйТи Фреш
IT-аутсорсинг и бизнес

Номенклатура в ERPNext: Item Code, группы и аналоги без бардака

Автор: , директор ООО «АйТи-Фреш» · · ~12 мин чтения
Склад профнастила: у каждой стопки одна бирка, дубли в корзине — номенклатура в ERPNext
Один материал — одна бирка и один код.

Номенклатура в ERPNext живёт в справочнике Item. Главное в нём — Item Code: короткий уникальный код, на который ссылаются заявки, заказы, остатки и импорт спецификаций. Ниже правила кода, дерево групп, обязательные поля карточки, борьба с дублями и услуги.

Что такое Item Code в ERPNext и почему он важнее названия материала

Item — карточка любой позиции, с которой вы работаете: материал, готовое изделие, вариант, услуга. В документации ERPNext поле Item Code описано как краткое обозначение позиции, а Item Name — как её название. Люди читают название, система работает с кодом. Все документы ссылаются на запись по её имени, и для большинства установок имя записи — это и есть код. Поэтому ошибка в коде повторяется во всех заявках, заказах и складских проводках, а исправлять её дорого.

Практическое следствие для всех, кто собирается грузить данные из Excel: колонка с кодом в файле должна совпадать с Item Code в системе до последнего символа. Data Import ищет ссылочное поле по имени записи буквально: лишний пробел, кириллическая «С» вместо латинской или другой регистр дают ошибку «не найдена запись» в предпросмотре, и строка не загружается. Поэтому перед любой загрузкой заявок, заказов или договорной спецификации я сначала сверяю коды в файле со справочником, а уже потом запускаю импорт.

Режим именования задаётся в настройках склада (Stock Settings) полем Item Naming By: по умолчанию стоит Item Code, то есть код вводится вручную, а второй вариант, Naming Series, нумерует позиции по серии. Какой вариант выбрать — решаем на старте, потому что менять его после накопления документов неприятно. Я для торговых компаний выбираю ручной осмысленный код: снабженец видит позицию в заявке по коду, и ему не нужно открывать карточку. Для компаний с тысячами одинаковых позиций проще серия, а смысл несёт название и группа.

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

Как построить код и дерево групп, чтобы через год не было трёх «Профнастилов С8»

Дерево групп (Item Group) начинается с корня «All Item Groups» и растёт вниз: у каждой группы есть родитель, а на одном уровне названия не повторяются. Группа нужна не для красоты: через неё задаются стандартные склад, счёта, налоговые шаблоны и ценовые списки для всех позиций ветки, а в отчётах она служит основным срезом. Для торговли строительными материалами достаточно трёх уровней: товарное направление, семейство и позиция.

Код должен быть коротким, читаемым и стабильным. Я использую схему «префикс группы — ключевая характеристика — размер», например PRF-C8-0.5 для оцинкованного профнастила С8 толщиной 0,5 мм. Название при этом остаётся человеческим: «Профнастил оцинкованный С8, 0,5 мм». Цвет, длина и особенности поставщика в код не зашиваются: цвет — отдельная позиция или вариант, длину удобнее вести как количество, а поставщика — в ценах закупки. Один материал — один код, и это единственное правило, которое нельзя нарушать. | Правило | Хорошо | Плохо | |---|---|---| | Один материал — один код | PRF-C8-0.5 | PRF-C8-0.5, ПРОФ.С8 0,5, профнастил с8 | | Код короткий и читаемый | KRV-NAL-01 | Профнастил_оцинк_С8_0.5_2м_Магнитогорск | | Смысл в группе, а не в мелочах | цвет отдельным вариантом | цвет и поставщик в коде | | Латиница и цифры, без пробелов | PRF-C8-0.5 | «Профнастил С8 » с пробелом в конце |

Данные о коде пригодятся нескольким документам сразу. Заявка Material Request ссылается на него, заказ Purchase Order наследует из заявки, складской документ Purchase Receipt тоже, и при импорте спецификации из файла колонка кода должна найти запись в справочнике. Если кода нет, импорт останавливается на ссылке на несуществующую позицию.

Для обмена с бухгалтерией нужна ещё одна вещь: система-источник истины. Если номенклатура уже ведётся в 1С, определите заранее, кто главный: 1С или ERPNext. Для исключения дублей при обмене каждая сущность хранит внешний ключ — идентификатор системы-источника и идентификатор записи в ней (в нашей практике это пара полей, названия которых вы выбираете сами). Без этого повторная загрузка создаст вторую карточку на ту же позицию, и этот вопрос подробнее в материале про систему учёта на Linux.

Какие поля карточки нужны сразу: единицы, склад, Maintain Stock, налог

Новая карточка Item содержит десятки полей, и большинство из них вам не нужны в первый месяц. Заполняйте то, что ломает учёт, если ошибиться: код, группу, базовую единицу измерения (Default Unit of Measure, она же Stock UOM), таблицу пересчёта единиц (UOM Conversion Detail), флаг Maintain Stock и налоговый шаблон. Остальное доводите по ходу работы.

Таблица, которую я показываю заказчикам перед первой загрузкой: | Поле | Зачем | Кто заполняет | Что при ошибке | |---|---|---|---| | Item Code | ключ для всех документов | снабженец | дубли и сбой импорта | | Item Group | срез отчётов и умолчания | снабженец | позиция «теряется» в отчёте | | Default Unit of Measure | единица учёта остатков | кладовщик | неверные остатки | | UOM Conversion Detail | пересчёт упаковок и штук | кладовщик | расхождение закупки и продажи | | Maintain Stock | ведёт ли система остаток | бухгалтер | услуги засоряют склад | | Item Tax Template | ставка и счёт обязательств | бухгалтер | неверный налог в документах |

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

Про налог. Ставку и счёт обязательств привязывают к карточке через Item Tax Template. В российской схеме, где регламентированный учёт остаётся в 1С, важно, чтобы значения шаблонов были согласованы с бухгалтером и совпадали с тем, что вы передаёте в обмене. ERPNext не заменяет бухгалтерию по НДС, и я не обещаю, что шаблон закроет все российские случаи: проверьте ваши ставки и операции на стенде.

Как не плодить дубли и вести аналоги

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

Рабочий порядок очистки такой: выгружаем справочник в Excel, нормализуем названия (регистр, пробелы, «ё»), ищем повторы по ключевым характеристикам, выбираем один код на материал, остальные помечаем как «не загружать». Отчёт по повторам делаем сводной таблицей и показываем снабженцу. Он решает, какие позиции — действительно одно и то же. Для импорта используется Data Import, который не принимает дубли ключа: повторный код даёт ошибку Duplicate Name.

Отдельный пункт — штрихкоды. Поле штрихкода в таблице Item Barcode уникальное, поэтому ERPNext не даст привязать к позиции штрихкод, который уже есть у другой, поэтому одинаковые штрихкоды у разных карточек выявляются при вводе. Массовую проверку и исправление штрихкодов делают через Data Import в режиме Update. Для складов, где используют терминалы сбора данных, эту тему продолжает материал про терминал сбора данных и интеграцию с 1С.

Теперь об аналогах. В документации ERPNext механизм Item Alternative описан для производства: включаете на карточке флаг Allow Alternative Item, указываете заменяющие позиции, и в Work Order или Stock Entry при нехватке сырья можно выбрать аналог. Замена может быть двусторонней — достаточно настроить пару один раз. Для торговой компании, которая подбирает аналог профнастила другого завода, этот механизм напрямую не предназначен: аналоги там чаще ведут группой, характеристикой или отдельным полем. Проверьте на своём сценарии, не рассчитывайте, что коробка сама предложит замену в заявке.

Услуги и работы в справочнике: когда флаг Maintain Stock снимают

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

Если флаг ошибочно стоит у услуги, при оформлении закупки система потребует склад и выдаст остаток, которого нет. Если же флаг снят у материала, то остатка по нему не будет, и закупка будет проходить без складского учёта. Исправить это потом непросто: после проведённых документов система не даёт переключить Maintain Stock, как и учёт по сериям и партиям. Эту ошибку трудно заметить сразу, и я включаю проверку флага в чек-лист приёмки справочника. Проверка проста: фильтр по группе «Услуги» и колонке Maintain Stock.

Отдельная оговорка про доставку. Если стоимость доставки нужно включить в себестоимость партии, её не вводят отдельной позицией со снятым флагом, а учитывают через документ Landed Cost Voucher, который распределяет расходы на доставку по позициям приёмки. Это самостоятельная тема со своими настройками счетов.

Как «Профнастил Двор» навёл порядок в справочнике на 10 рабочих мест и что проверить перед импортом

Условный пример. Торговая компания «Профнастил Двор», 10 рабочих мест: кровельные и фасадные материалы, склад, офис продаж. Номенклатура велась в Excel-файле на 640 строк. Цифры дальше иллюстративные. При разборе файла нашли три написания одного профнастила, четыре единицы для одного товара (лист, шт, м2, пачка) и позиции, у которых цвет и размер были записаны в название в разном порядке.

Работа шла в четыре шага: очистка файла, дерево групп, коды, импорт. После очистки осталось 410 уникальных позиций вместо 640 строк. Дерево групп сделали на три уровня: направление, семейство, позиция. Каждому материалу присвоили один код по схеме «префикс — характеристика — размер», единицы задали базовой плюс коэффициентом пересчёта, а услуги вынесли в отдельную группу со снятым флагом Maintain Stock. Только после этого справочник загрузили через Data Import: сначала пробой на 25 строк, затем целиком.

Что мы проверяем перед импортом спецификаций и остатков: 1. Все коды в файле существуют в справочнике Item и написаны одинаково. 2. Единицы измерения заведены, коэффициенты пересчёта заданы. 3. У материалов включён Maintain Stock, у услуг выключен. 4. Налоговые шаблоны согласованы с бухгалтером. 5. Штрихкоды не повторяются между позициями. 6. Остатки переносятся на дату отсечки, а не историей движений.

Что осталось вне коробки: автоматического объединения дублей по смыслу нет, подбор аналогов в заявке придётся делать вручную или доработкой. Эти и другие настройки мы показываем на демостенде erp-demo.itfresh.ru по запросу, а внедрение под ключ описано на странице ERPNext.

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

Что такое Item Code в ERPNext?

Это уникальный код позиции в справочнике Item. От него зависят заявки, заказы, остатки и импорт спецификации из Excel, где коды в файле должны точно совпадать с кодами в системе. Название можно уточнять, а код лучше не менять: на него ссылаются все документы.

Как сделать нумерацию номенклатуры в ERPNext?

Режим именования выбирается в настройках склада: ручной код либо нумерация по серии. Для торговли я использую короткий код с префиксом группы и размером, например PRF-C8-0.5, а название оставляю для людей. Главное правило: один материал — один код, без цвета и поставщика в коде.

Для чего нужен флаг Maintain Stock?

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

Как в ERPNext хранить налог по номенклатуре?

Через Item Tax Template: в нём задаются ставка и счёт обязательств, шаблон привязывается к карточке или группе. Регламентированный учёт НДС в России остаётся в 1С, поэтому значения шаблонов согласуют с бухгалтером, а обмен строят по тем же ставкам.

Можно ли заводить номенклатуру из Excel, а не руками?

Да, массовая загрузка идёт через Data Import. Но справочник сначала очищают от дублей: перенос неочищенных данных масштабирует ошибки, а исправлять код и базовую единицу после первых документов сложно. Начинайте с пробных 20–30 строк и только затем грузите весь файл.

Столкнулись с похожей задачей? Обращайтесь — решим

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

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи