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