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