1С:УНФ: Как разбить одну номенклатуру на несколько по количеству штрихкодов

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

В практике работы с 1С:Управление нашей фирмой (УНФ) часто возникает ситуация, когда в базе данных на одну позицию номенклатуры заведено несколько штрихкодов. Это может быть связано с тем, что товар поступает от разных производителей, в разных упаковках или из разных партий, но учет изначально велся «скопом». Однако современные требования, особенно при работе с маркетплейсами (Wildberries, Ozon, Яндекс Маркет), диктуют правило: один штрихкод — одна карточка товара. Разберем подробно, как корректно разделить номенклатуру в 1С:УНФ, сохранив данные и обеспечив правильный учет остатков.

Почему стандартными средствами это сделать сложно

В типовом функционале 1С:УНФ не предусмотрена кнопка «Размножить номенклатуру по штрихкодам». Штрихкоды хранятся не внутри самой карточки товара, а в специальном регистре сведений ШтрихкодыНоменклатуры. В этом регистре штрихкод привязан к «Владельцу» — ссылке на объект номенклатуры. Если мы просто создадим новые карточки вручную, нам придется вручную перебивать штрихкоды, что чревато ошибками, а старые записи в регистре будут конфликтовать с новыми.

Алгоритм программного разделения номенклатуры

Рассмотрим наиболее эффективный способ решения задачи — написание небольшой обработки или использование консоли запросов с возможностью обработки результатов. Проанализируем основные этапы этого процесса.

Шаг 1: Поиск «проблемных» позиций

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


ВЫБРАТЬ
    Штрихкоды.Владелец КАК Номенклатура,
    КОЛИЧЕСТВО(Штрихкоды.Штрихкод) КАК КолШК
ИЗ
    РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
ГДЕ
    Штрихкоды.Владелец ССЫЛКА Справочник.Номенклатура
СГРУППИРОВАТЬ ПО
    Штрихкоды.Владелец
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Штрихкоды.Штрихкод) > 1

Шаг 2: Создание новых карточек (дублей)

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


// Предположим, Выборка - это результат запроса по конкретной номенклатуре
Пока ВыборкаШтрихкодов.Следующий() Цикл
    Если НомерШК > 1 Тогда // Пропускаем первый, оставляем его у текущей номенклатуры
        НовыйОбъект = ИсхНоменклатура.Скопировать();
        НовыйОбъект.Наименование = ИсхНоменклатура.Наименование + " (" + ВыборкаШтрихкодов.Штрихкод + ")";
        НовыйОбъект.Записать();
        
        // Теперь нужно перепривязать штрихкод к новой карточке
        МенеджерЗаписи = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Штрихкод = ВыборкаШтрихкодов.Штрихкод;
        МенеджерЗаписи.Прочитать();
        
        Если МенеджерЗаписи.Выбран() Тогда
            МенеджерЗаписи.Владелец = НовыйОбъект.Ссылка;
            МенеджерЗаписи.Записать();
        КонецЕсли;
    КонецЕсли;
    НомерШК = НомерШК + 1;
КонецЦикла;

Работа с остатками и историей

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

  1. Проведение инвентаризации: Самый прозрачный способ. Создаем документ Инвентаризация запасов, фиксируем фактическое наличие товаров под конкретными штрихкодами.
  2. Оформление пересортицы: Чтобы не плодить лишние обороты по доходам и расходам, используем документ Пересортица запасов. В нем в качестве «Списываемого товара» указываем исходную номенклатуру, а в качестве «Приходуемого товара» — нашу новую карточку. Это позволит сохранить себестоимость партии.
  3. Корректировка характеристик: Если вы решили использовать характеристики вместо создания новых карточек (что методически более верно в 1С), то процесс аналогичен: создаем характеристики и через пересортицу переносим остатки с «пустой» характеристики на уточненные.

Особенности работы с изображениями и файлами

Проанализируем ситуацию с присоединенными файлами. Картинки в 1С:УНФ хранятся в отдельном справочнике НоменклатураПрисоединенныеФайлы. При использовании метода Скопировать() для номенклатуры, сами файлы не копируются автоматически в смысле владения. Нам потребуется программно найти все записи в справочнике файлов, где владельцем является старая номенклатура, и создать аналогичные записи для новых карточек, чтобы товар не остался «пустым» в прайс-листах и на витринах магазинов.

Риски и рекомендации

Создание большого количества одинаковых по наименованию товаров несет в себе определенные риски. Рассмотрим их подробнее:

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

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

Альтернативный подход: Использование характеристик

Если бизнес-процесс позволяет, лучше не плодить номенклатуру-дубли, а включить использование характеристик. В 1С:УНФ штрихкод может быть привязан к связке Номенклатура + Характеристика. Это позволит:

Этот путь считается архитектурно правильным в системе 1С, так как он не засоряет справочник номенклатуры и позволяет видеть остатки в разрезе одного объекта учета, но с детализацией по свойствам.

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

← На главную