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