Переход со старых версий конфигураций (например, 1С:Управление торговлей 10.3) на современные платформы (УТ 11.4, ERP 2.5) часто сопровождается сложностями при реорганизации справочника номенклатуры — для этого есть обработка переноса данных и остатков из УТ 10.3 в УТ 11. Одна из типичных ситуаций: после переноса данных вся номенклатура оказывается привязанной к одному универсальному виду (например, «Товар»), а для корректной работы сайта, аналитики или учета по характеристикам требуется распределить позиции по новым, более детальным видам. При попытке изменить вид в карточке система выдает предупреждение: «Проблема при изменении вида номенклатуры: у нового вида другая особенность учета».
В этой статье мы подробно разберем, почему возникает эта ошибка, какие методы ее обхода существуют и чем это грозит вашему учету. Мы проанализируем ситуацию с технической точки зрения и выработаем алгоритм безопасного перехода.
Давайте разберем, что происходит «под капотом» системы. Ошибка возникает из-за проверки соответствия реквизита ОсобенностьУчета. В современных конфигурациях этот реквизит является перечислением, которое может принимать значения: «Без особенностей учета», «Алкогольная продукция», «Маркируемый товар» и так далее.
Проанализируем данные после переноса из старой базы. Часто при программном создании объектов (через внешние обработки или стандартный конвертер) реквизит ОсобенностьУчета в справочнике ВидыНоменклатуры остается пустым (NULL). Однако, когда вы создаете новый вид номенклатуры вручную в интерфейсе 1С, программа автоматически подставляет значение «Без особенностей учета».
Для платформы 1С «пустое значение» и «Без особенностей учета» — это два разных состояния. Срабатывает защитный механизм: система видит различие и блокирует изменение, предполагая, что вы пытаетесь превратить обычный товар, например, в подакцизный, что недопустимо при наличии движений по регистрам.
Самый простой и очевидный способ, который часто выручает пользователей. Рассмотрим его по шагам:
Как отмечают участники профессиональных сообществ, если вы уверены, что и старый, и новый вид по факту являются обычными товарами, никаких негативных последствий для системы не будет. Все механизмы учета продолжат работать в штатном режиме.
Этот метод был найден опытным путем и позволяет «обмануть» проверку системы, не вызывая модальных окон с предупреждениями. Разберем его логику:
Если мы создадим новый вид номенклатуры не «с нуля», а путем копирования того самого старого вида «Товар» (у которого реквизит пустой), то новый объект унаследует это «пустое» значение особенности учета. После этого мы можем беспрепятственно:
Поскольку технически реквизит ОсобенностьУчета останется идентичным исходному («пусто»), программа не увидит конфликта при смене вида в карточках товаров.
Когда позиций тысячи, ручной перенос невозможен — поможет обработка массового исправления и наведения порядка в номенклатуре. Проанализируем использование стандартной обработки ГрупповоеИзменениеРеквизитов. Чтобы успешно обойти проверку через эту обработку, выполним следующие действия:
ПриЗаписи, встроенных в формы, что позволяет массово обновить данные.Несмотря на то, что технически сменить вид несложно, мы должны понимать возможные риски, которые не всегда очевидны сразу. Проанализируем критические участки:
1. Контроль характеристик и серий. Это самый серьезный риск. Если в старом виде номенклатуры характеристики были выключены, а в новом они включены (или наоборот), вы столкнетесь с невозможностью списать остатки. Регистр ТоварыНаСкладах хранит остатки в разрезе характеристик. Если вы меняете правила «на лету», программа начнет требовать характеристику при продаже, хотя на складе товар числится «пустым» по этому измерению.
2. Себестоимость и партионный учет. Процедура «Закрытие месяца» в УТ 11 крайне чувствительна к настройкам распределения и политики учета, которые могут быть привязаны к виду номенклатуры. Если вы меняете вид у товара с остатками, обязательно проверьте корректность формирования движений в регистре СебестоимостьТоваров.
3. Интеграция с 1С-Битрикс. Если целью смены вида является выгрузка на сайт, помните:
4. Маркировка (Честный ЗНАК). Если в будущем вы планируете сделать товар маркируемым, просто сменить вид в карточке с остатками не получится. Система жестко блокирует изменение реквизита ОсобенностьУчета на значения, отличные от «Без особенностей», если в регистрах есть записи. В этом случае потребуется полное списание остатков, смена вида и оприходование заново.
Вместо использования «костылей» с копированием пустых реквизитов, рассмотрим правильный методологический подход:
Программисту рекомендуется один раз запустить небольшую обработку, которая во всех существующих объектах ВидыНоменклатуры заменит пустое значение (NULL) на значение Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностей.
Пример кода для такой обработки:
Выборка = Справочники.ВидыНоменклатуры.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектВида = Выборка.ПолучитьОбъект();
Если ОбъектВида.ОсобенностьУчета = ПредопределенноеЗначение("Перечисление.ОсобенностиУчетаНоменклатуры.ПустаяСсылка") Тогда
ОбъектВида.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностей;
ОбъектВида.Записать();
КонецЕсли;
КонецЦикла;
После приведения базы к единообразию, штатные механизмы 1С перестанут выдавать ошибку о «разных особенностях учета», так как и в старых, и в новых видах будет установлено корректное значение по умолчанию.
Резюме: Смена вида номенклатуры — процедура допустимая, если вы не меняете ключевые настройки детализации учета (характеристики, серии, единицы измерения). Если настройки идентичны, смело используйте любой из предложенных методов, предварительно сделав резервную копию базы.