Как изменить вид номенклатуры в 1С:УТ 11, если возникает ошибка «у нового вида другая особенность учета»?

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

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

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

Выясним причину технического предупреждения

Давайте разберем, что происходит «под капотом» системы. Ошибка возникает из-за проверки соответствия реквизита ОсобенностьУчета. В современных конфигурациях этот реквизит является перечислением, которое может принимать значения: «Без особенностей учета», «Алкогольная продукция», «Маркируемый товар» и так далее.

Проанализируем данные после переноса из старой базы. Часто при программном создании объектов (через внешние обработки или стандартный конвертер) реквизит ОсобенностьУчета в справочнике ВидыНоменклатуры остается пустым (NULL). Однако, когда вы создаете новый вид номенклатуры вручную в интерфейсе 1С, программа автоматически подставляет значение «Без особенностей учета».

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

Решение 1: Ручное изменение через «Показать все»

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

  1. Откроем карточку номенклатуры, которую нужно изменить.
  2. Нажмем на кнопку выбора в поле «Вид номенклатуры».
  3. В выпадающем списке нажмем «Показать все».
  4. Выберем требуемый новый вид.
  5. При появлении предупреждения системы о разнице в особенностях учета, мы можем подтвердить выбор. В большинстве случаев программа позволит сохранить карточку, так как это предупреждение носит рекомендательный характер для интерактивного изменения.

Как отмечают участники профессиональных сообществ, если вы уверены, что и старый, и новый вид по факту являются обычными товарами, никаких негативных последствий для системы не будет. Все механизмы учета продолжат работать в штатном режиме.

Решение 2: Метод копирования базового вида

Этот метод был найден опытным путем и позволяет «обмануть» проверку системы, не вызывая модальных окон с предупреждениями. Разберем его логику:

Если мы создадим новый вид номенклатуры не «с нуля», а путем копирования того самого старого вида «Товар» (у которого реквизит пустой), то новый объект унаследует это «пустое» значение особенности учета. После этого мы можем беспрепятственно:

Поскольку технически реквизит ОсобенностьУчета останется идентичным исходному («пусто»), программа не увидит конфликта при смене вида в карточках товаров.

Решение 3: Групповое изменение реквизитов (для продвинутых)

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

  1. Запустим обработку «Групповое изменение реквизитов» — для этого есть универсальный инструмент группового редактирования объектов 1С.
  2. Выберем объект «Номенклатура» и настроим отбор по позициям, которые нужно перенести.
  3. Нажмем кнопку «Дополнительные параметры».
  4. Включим флажки «Показывать служебные реквизиты» и «Режим разработчика».
  5. В списке реквизитов найдем «Вид номенклатуры» и укажем новое значение.
  6. Нажмем «Изменить реквизиты». В режиме разработчика система игнорирует большинство проверок ПриЗаписи, встроенных в формы, что позволяет массово обновить данные.

Глубинные риски и последствия: на что обратить внимание

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

1. Контроль характеристик и серий. Это самый серьезный риск. Если в старом виде номенклатуры характеристики были выключены, а в новом они включены (или наоборот), вы столкнетесь с невозможностью списать остатки. Регистр ТоварыНаСкладах хранит остатки в разрезе характеристик. Если вы меняете правила «на лету», программа начнет требовать характеристику при продаже, хотя на складе товар числится «пустым» по этому измерению.

2. Себестоимость и партионный учет. Процедура «Закрытие месяца» в УТ 11 крайне чувствительна к настройкам распределения и политики учета, которые могут быть привязаны к виду номенклатуры. Если вы меняете вид у товара с остатками, обязательно проверьте корректность формирования движений в регистре СебестоимостьТоваров.

3. Интеграция с 1С-Битрикс. Если целью смены вида является выгрузка на сайт, помните:

4. Маркировка (Честный ЗНАК). Если в будущем вы планируете сделать товар маркируемым, просто сменить вид в карточке с остатками не получится. Система жестко блокирует изменение реквизита ОсобенностьУчета на значения, отличные от «Без особенностей», если в регистрах есть записи. В этом случае потребуется полное списание остатков, смена вида и оприходование заново.

Рекомендация по правильной подготовке данных

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

Программисту рекомендуется один раз запустить небольшую обработку, которая во всех существующих объектах ВидыНоменклатуры заменит пустое значение (NULL) на значение Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностей.

Пример кода для такой обработки:


Выборка = Справочники.ВидыНоменклатуры.Выбрать();
Пока Выборка.Следующий() Цикл
    ОбъектВида = Выборка.ПолучитьОбъект();
    Если ОбъектВида.ОсобенностьУчета = ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры.ПустаяСсылка") Тогда
        ОбъектВида.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностей;
        ОбъектВида.Записать();
    КонецЕсли;
КонецЦикла;

После приведения базы к единообразию, штатные механизмы 1С перестанут выдавать ошибку о «разных особенностях учета», так как и в старых, и в новых видах будет установлено корректное значение по умолчанию.

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

← На главную