Как изменить вид номенклатуры с характеристиками в УТ 11 и исправить выгрузку в 1С-Битрикс?

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

Переход со старых версий конфигураций (например, с «1С:Управление торговлей 10.3») на современные управляемые формы «1С:Управление торговлей 11» (УТ 11) часто сопровождается архитектурными ошибками. Типичный сценарий: стандартный помощник перехода переносит все товары с характеристиками в один единственный вид номенклатуры — например, «Товар (с/х)». В результате сотни разнородных свойств (размеры одежды, диаметры труб, бренды, цвета обуви) оказываются привязанными к одной группе.

Это порождает две критические проблемы:

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

В этой статье мы подробно разберем причины этой проблемы, проанализируем внутреннее устройство регистров УТ 11 и рассмотрим пошаговые сценарии безопасного исправления структуры данных как в самой 1С, так и в интеграции с 1С-Битрикс.

Выясняем техническую причину: почему стандартная замена ломает базу?

В «1С:Управление торговлей 11» архитектура учета запасов кардинально отличается от версии 10.3. Здесь внедрен механизм ключей аналитики учета номенклатуры. Программа хранит информацию о движениях товаров и остатках не напрямую по паре «Номенклатура + Характеристика», а через ссылку на специальный системный справочник КлючиАналитикиУчетаНоменклатуры.

Этот справочник жестко связывает между собой следующие разрезы:

Когда вы пытаетесь воспользоваться стандартной обработкой «Поиск и замена дублей» или групповым изменением реквизитов для прямой замены одного товара на другой (или для изменения вида номенклатуры в карточке, где уже есть движения), система перезаписывает ссылки в документах, но не перестраивает ключи аналитики. Это приводит к рассинхронизации данных в регистрах накопления (таких как ТоварыНаСкладах, ВыручкаИСебестоимостьПродаж) и регистре сведений АналитикаУчетаНоменклатуры. В результате сбивается партионный учет, ломается расчет себестоимости, а при закрытии месяца система выдает фатальные ошибки.

Дополнительной преградой выступает скрытая табличная часть «Виды запасов» в документах товародвижения (Реализация товаров и услуг, Поступление товаров и услуг и др.). Она заполняется автоматически при проведении документа. Если программно изменить номенклатуру или характеристику в основной табличной части «Товары», данные в «Видах запасов» останутся старыми. При попытке перепроведения документ выдаст ошибку о нехватке остатков или несоответствии аналитики.

---

Вариант 1. Безопасный бухгалтерский перенос остатков (Рекомендуемый метод)

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

Шаг 1. Создание новых видов номенклатуры
Вместо одного перегруженного вида «Товар (с/х)» создайте несколько профильных видов номенклатуры, соответствующих вашим товарным категориям (например: «Обувь», «Одежда», «Строительные материалы»). Для каждого нового вида настройте свой индивидуальный список характеристик и дополнительных реквизитов. Это позволит локализовать свойства и сделать карточки чистыми.

Шаг 2. Создание новых карточек товаров
Внутри новых видов номенклатуры создайте правильные карточки товаров. Характеристики для них теперь будут создаваться только в рамках их собственного вида, что исключит путаницу.

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

  1. Создайте документ Пересчет товаров по складам, где числится старая номенклатура.
  2. На основании пересчета оформите документ Списание недостач товаров. Это позволит «очистить» склады от позиций со старым (неправильным) видом номенклатуры.

Шаг 4. Оприходование на новые карточки номенклатуры
Для ввода остатков по новым, правильно настроенным карточкам выполните следующие действия:

  1. Создайте документ Оприходование излишков товаров.
  2. Заполните его новыми позициями номенклатуры с соответствующими характеристиками.
  3. Цены оприходования укажите равными себестоимости списываемых товаров, чтобы не исказить финансовый результат предприятия.

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

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

Шаг 6. Архивация старых позиций
Чтобы исключить случайное использование старых карточек в новых закупках и продажах, перенесите их в специально созданную группу «Архив» и установите в их карточках признак «Неактивен» (или заблокируйте для выбора в настройках прав доступа). Старые документы прошлых периодов останутся нетронутыми, что гарантирует неизменность сданной ранее отчетности.

---

Вариант 2. Программный перенос характеристик и замена ссылок

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

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

  1. Создание копий характеристик: Если у нового вида номенклатуры характеристики должны быть общими, обработка должна перенести индивидуальные характеристики старых товаров в категорию общих для нового вида номенклатуры, создав соответствующие элементы в справочнике ХарактеристикиНоменклатуры с новым владельцем.
  2. Временное снятие контроля реквизитов: В УТ 11 по умолчанию заблокировано изменение ключевых полей номенклатуры (таких как «Вид номенклатуры» или «Использовать характеристики»), если по товару есть движения. Программный код должен обходить эту защиту.

Посмотрим на пример кода, позволяющего программно разблокировать и изменить вид номенклатуры в карточке:


// Пример программного изменения вида номенклатуры в УТ 11
Процедура ИзменитьВидНоменклатуры(ТоварСсылка, НовыйВидНоменклатуры)
    
    ТоварОбъект = ТоварСсылка.ПолучитьОбъект();
    
    // Используем заполнение дополнительных свойств для обхода стандартных проверок конфигурации
    ТоварОбъект.ДополнительныеСвойства.Вставить("РазрешитьИзменениеРеквизитовОбъекта", Истина);
    ТоварОбъект.ДополнительныеСвойства.Вставить("ПропускатьПроверкуЗапретаРедактирования", Истина);
    
    // Меняем вид номенклатуры
    ТоварОбъект.ВидНоменклатуры = НовыйВидНоменклатуры;
    
    Попытка
        ТоварОбъект.Записать();
        Сообщить("Успешно изменен вид для: " + ТоварСсылка.Наименование);
    Исключение
        Сообщить("Ошибка записи: " + ОписаниеОшибки());
    КонецПопытки;
    
КонецПроцедуры
  1. Корректировка скрытых табличных частей документов: При замене номенклатуры в проведенных документах обработка должна не просто менять значение в реквизитах, но и полностью очищать скрытую табличную часть ВидыЗапасв.
  2. Перепроведение документов и восстановление ключей аналитики: После внесения изменений все затронутые документы должны быть программно перепроведены. В процессе перепроведения система заново сформирует корректные записи в справочнике КлючиАналитикиУчетаНоменклатуры и обновит регистры себестоимости.
  3. Тестирование и исправление: После выполнения программной замены обязательно запустите регламентную операцию закрытия месяца в тестовой копии базы и выполните стандартную процедуру «Тестирование и исправление» с флагами проверки логической и ссылочной целостности.

---

Настройка интеграции с «1С-Битрикс»: как избежать выгрузки лишних свойств?

Проанализируем ситуацию с обменом данными. Почему Битрикс «забивает» базу сайта ненужными характеристиками? Дело в логике работы интеграционного модуля. Модуль обмена считывает метаданные вида номенклатуры в 1С. Если у вас один вид номенклатуры, модуль создает на сайте один инфоблок предложений (SKU), содержащий абсолютно все свойства, зарегистрированные для этого вида в 1С.

Даже если у конкретного товара заполнена всего одна характеристика (например, «Размер обуви»), в XML-файл выгрузки и далее в базу данных сайта запишутся пустые поля для всех остальных ста характеристик вида (цвет куртки, объем памяти, диаметр резьбы и т.д.).

Рассмотрим по шагам, как исправить эту проблему на уровне настроек обмена:

Шаг 1. Разделение по инфоблокам на сайте

В настройках узла интеграции в 1С (в модуле обмена от Битрикс версии 7.x и выше) перейдите в настройки выгрузки каталога товаров. Включите опцию «Классифицировать по видам номенклатуры». Это заставит систему создать на сайте отдельные инфоблоки под каждый вид номенклатуры из 1С. Таким образом, свойства одежды будут находиться только в инфоблоке одежды, а свойства обуви — в инфоблоке обуви. База данных сайта вздохнет с облегчением.

Шаг 2. Активация фильтра предложений по ценам

В модуле обмена Битрикс активируйте настройку «Выгружать предложения только с ценами». Логика работы этого механизма следующая:

Шаг 3. Использование общих дополнительных реквизитов

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

  1. В настройках дополнительных реквизитов выберите нужный реквизит (например, «Цвет»).
  2. Добавьте его в список реквизитов для каждого нового вида номенклатуры как «Общий (с другими наборами)».

Если пренебречь этим правилом, Битрикс создаст на сайте дублирующие свойства с названиями вида «Цвет_1», «Цвет_2», что полностью сломает работу «умного фильтра» на сайте, так как покупатель не сможет отфильтровать весь ассортимент интернет-магазина по единому фильтру цвета.

Шаг 4. Настройка отборов в модуле обмена

В современных версиях официального модуля обмена (начиная с 7.0.1.x) доступна вкладка «Настройка отборов и полей». Проанализируйте список выгружаемых свойств и вручную снимите флажки с тех технических характеристик или дополнительных сведений, которые используются только для внутреннего учета в 1С и не должны отображаться покупателям в каталоге интернет-магазина. Это значительно сократит объем XML-пакетов и ускорит время обмена данными.

← На главную