Как внедрить характеристики номенклатуры в работающей базе 1С:УТ 11.4 без потери данных и ошибок в старых документах?

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

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

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

---

Почему «ломается» проведение документов при включении характеристик?

Давайте выясним техническую причину этой проблемы. В конфигурациях на платформе 1С:Предприятие 8, использующих современную архитектуру (УТ 11, ERP 2, Комплексная автоматизация 2), учет товаров в регистрах ведется не напрямую по справочнику Номенклатура, а через специальный служебный разрез — Ключи аналитики учета номенклатуры.

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

Как только мы включаем опцию «Использовать характеристики» для существующего вида номенклатуры, поведение системы кардинально меняется:

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

Рассмотрим подробнее три основных сценария, которые позволяют решить эту проблему на практике.

---

Сценарий 1. Разделение видов номенклатуры и ручной перезапуск (Метод чистой инвентаризации)

Этот способ является наиболее безопасным с точки зрения целостности старых данных, так как мы не вмешиваемся в структуру старых карточек товаров.

Разберем этот процесс по шагам:

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

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

Недостатки: Требуется ручная работа по созданию новых карточек, переносу цен и штрихкодов. Также в отчетах по продажам история разделится на две разные карточки товара.

---

Сценарий 2. Написание программного конвертора (Автоматизированный перенос)

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

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

Пример структуры кода для программного создания характеристики:


НоваяХарактеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
НоваяХарактеристика.Владелец = СсылкаНаНоменклатуру;
НоваяХарактеристика.Наименование = "Размер S, Цвет Черный";
// Заполнение дополнительных реквизитов, если они используются
НоваяХарактеристика.Записать();

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

---

Сценарий 3. Использование «дефолтной» характеристики и групповое изменение данных

Этот метод применяется, когда компания хочет сохранить старые карточки товаров, не создавая новые, но при этом необходимо избежать ошибок при перепроведении прошлых документов.

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

  1. Для существующего вида номенклатуры включаем ведение характеристик.
  2. Создаем одну общую служебную характеристику со значением «Без характеристики» (или «Базовая», «Основная»).
  3. С помощью типовой обработки Групповое изменение реквизитов (раздел НСИ и администрирование — Обслуживание — Корректировка данных) находим все документы за предыдущие периоды по нашей номенклатуре.
  4. В табличных частях этих документов принудительно проставляем созданную дефолтную характеристику «Без характеристики» вместо пустого значения.
  5. Запускаем групповое перепроведение документов, чтобы обновить ключи аналитики учета номенклатуры в регистрах. Теперь система не будет выдавать ошибки, так как поле характеристики везде заполнено базовым значением.

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

---

Как обезопасить закрытые периоды?

Чтобы избежать искажения данных в прошлых периодах при внедрении характеристик, настоятельно рекомендуется придерживаться следующих правил:

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

← На главную