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

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

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

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

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

Менять коды приходится при слиянии баз, исправлении ошибок нумерации, приведении кодов к единому стандарту (например, совпадающему с артикулом поставщика) или после загрузки данных из внешних источников. Важно понимать: код участвует в синхронизации с другими системами, поэтому неконтролируемая замена способна нарушить обмены и отчёты.

Ниже разобраны все рабочие способы изменения кода, ограничения типовых конфигураций, проверка результата и типичные ошибки. Инструкции применимы к «1С:Управление торговлей», «1С:ERP», «1С:Комплексная автоматизация» и «1С:Бухгалтерия» на платформе 8.3.

Что такое код номенклатуры и чем он отличается от артикула

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

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

Как изменить код вручную в карточке номенклатуры

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

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

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

Порядок действий для ручной замены
  1. 1
    Сделайте резервную копию базы или убедитесь, что есть свежая выгрузка
  2. 2
    Откройте карточку номенклатуры и выведите поле «Код» через «Ещё → Изменить форму»
  3. 3
    Откройте «Ещё → Редактировать реквизиты», отметьте «Код» и введите новое значение
  4. 4
    Нажмите «Установить», затем «Записать и закрыть»
  5. 5
    Проверьте, что позиция ищется по новому коду и документы открываются без ошибок

Массовое изменение кодов через групповую обработку

Когда коды нужно поменять у десятков или тысяч позиций, ручной способ не подходит. В типовых конфигурациях есть встроенный инструмент «Групповое изменение реквизитов»: «Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов». В некоторых конфигурациях обработка находится в разделе «НСИ и администрирование».

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

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

Изменение кода программно

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

Запрос = Новый Запрос("ВЫБРАТЬ Ссылка, Артикул ИЗ Справочник.Номенклатура ГДЕ НЕ ПометкаУдаления");

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Объект = Выборка.Ссылка.ПолучитьОбъект();

Если СокрЛП(Выборка.Артикул) <> "" Тогда

Объект.Код = СокрЛП(Выборка.Артикул);

Объект.Записать();

КонецЕсли;

КонецЦикла;

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

Настройка автоматической нумерации новых позиций

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

Чтобы сдвинуть нумерацию (например, начать с 100000), достаточно вручную присвоить одной позиции код 99999 — следующая созданная позиция получит 100000. Этот приём работает при числовых кодах; для строковых кодов автонумерация определяется правилами, заданными в конфигурации.

Проверка результата и откат изменений

После замены кодов выполните контрольные проверки. Откройте список номенклатуры, отсортируйте по коду и убедитесь в отсутствии дублей и пустых значений. Проверьте поиск: введите новый код в строку поиска справочника — позиция должна находиться сразу.

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

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

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

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

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

Сортировка по коду не показывает дублей

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

Две и более позиции с одинаковым кодом

Поиск позиции
Норма

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

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

Поиск не находит позицию или находит чужую

Печатные формы
Норма

В документах выводится новый код

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

Код пустой или устаревший

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

Синхронизация проходит без новых дублей

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

В связанной базе появились задвоенные позиции

Типичные ошибки и ограничения

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

Вторая ошибка — игнорирование длины и типа кода. При загрузке кодов из Excel текстовые значения с ведущими нулями («001234») могут преобразоваться в числа и потерять нули, а слишком длинные значения — обрезаться. Проверяйте формат перед загрузкой.

Третья группа ошибок связана с обменами: после замены кодов в одной базе связанная система может воспринять позиции как новые и создать дубли. Перед массовой заменой согласуйте изменения с администратором смежной системы.

Типичные ошибки
01
Менять коды без резервной копии — при ошибке откат невозможен
02
Не проверять протокол групповой обработки — часть позиций остаётся со старыми кодами
03
Присваивать коды длиннее установленного в конфигурации — значения обрезаются
04
Игнорировать настроенные обмены — в связанных базах появляются дубли номенклатуры
05
Путать код и артикул — печатные формы и отчёты выводят разные реквизиты
Итог

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

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

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

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

Да, если у вашей роли есть права на редактирование справочника «Номенклатура» и доступ к команде редактирования реквизитов. Если кнопка «Редактировать реквизиты» недоступна, попросите администратора добавить право «Изменение реквизитов» или выполнить замену за вас.

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

Документы хранят ссылку на элемент справочника по внутреннему идентификатору, поэтому сами они не изменятся и не «потеряют» товар. Обновится только отображение кода в табличных частях, печатных формах и отчётах при их повторном формировании.

Почему программа не даёт сохранить новый код?

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

Как сделать, чтобы код совпадал с артикулом у всех позиций?

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

Можно ли изменить длину или тип кода в типовой конфигурации?

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

Опасно ли менять коды при работающем обмене с сайтом?

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