Как правильно перейти на учет по характеристикам в 1С:ERP, если уже есть движения?

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

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

В этой статье мы подробно проанализируем архитектурную дилемму перехода на характеристики в системах 1С:ERP Управление предприятием, 1С:Комплексная автоматизация 2 и 1С:Управление торговлей 11. Мы разберем три различных сценария решения этой задачи: от стандартных и безопасных до сложных программных методов.

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

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

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

Рассмотрим по шагам три основных пути решения этой задачи.

---

Вариант 1. Классический метод (Создание новых карточек номенклатуры)

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

Разберем алгоритм действий по шагам:

  1. Создание нового Вида номенклатуры: Перейдем в справочник видов номенклатуры и создадим новую позицию (например, "Обувь (с характеристиками)"). В настройках этого вида обязательно установим флаг "Характеристики" и выберем вариант их использования (индивидуальные или общие).
  2. Создание новых карточек номенклатуры: В созданном виде номенклатуры создаем новые карточки товаров. Рекомендуется временно изменить наименование старых карточек (например, добавить в конец "СТАРАЯ" или "[БЕЗ ХАР]"), чтобы менеджеры не путали их при вводе новых документов.
  3. Подготовка характеристик: Для новых карточек заполняем список возможных характеристик (размеры, цвета и т.д.).
  4. Инвентаризация и перенос остатков: На определенную дату (лучше всего на конец отчетного периода или выходные дни) фиксируем остатки по старым позициям. С помощью документа Перемещение товаров (или пары документов Списание недостач товаров и Оприходование излишков товаров) переносим остатки со старых карточек на новые, распределяя объемы по конкретным характеристикам.

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

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

---

Вариант 2. Гибридный стандартный метод (Без создания новых карточек)

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

Рассмотрим последовательность действий:

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

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

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

---

Вариант 3. Программная корректировка (Написание обработки)

Некоторые разработчики и администраторы баз данных выбирают путь написания обработки, которая должна "задним числом" прописать характеристики во все существующие документы и регистры. Выясним, почему этот путь таит в себе колоссальные угрозы для баз данных под управлением 1С:ERP.

В отличие от старых конфигураций (таких как 1С:УПП 1.3), в современных ERP-системах механизмы проведения документов крайне сложны. Номенклатура и характеристики регистрируются в десятках взаимосвязанных регистров:

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

Если руководство компании все же настаивает на программном пути (например, база ведется всего месяц и прошлые периоды еще не закрыты окончательно), то алгоритм обработки должен выглядеть следующим образом:


// Примерный шаблон алгоритма обработки по замене характеристик в документах
Процедура ЗаменитьНоменклатуруИХарактеристику(СтараяНоменклатура, НоваяНоменклатура, НужнаяХарактеристика)
    
    // Поиск документов, содержащих старую номенклатуру
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |   ТЧ.Ссылка КАК Ссылка
        |ИЗ
        |   Документ.ПеремещениеТоваров.Товары КАК ТЧ
        |ГДЕ
        |   ТЧ.Номенклатура = &СтараяНоменклатура";
    
    Запрос.УстановитьПараметр("СтараяНоменклатура", СтараяНоменклатура);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        ОбъектДок = Выборка.Ссылка.ПолучитьОбъект();
        Модифицирован = Ложь;
        
        Для Каждого СтрокаТЧ Из ОбъектДок.Товары Цикл
            Если СтрокаТЧ.Номенклатура = СтараяНоменклатура Тогда
                СтрокаТЧ.Номенклатура = НоваяНоменклатура;
                СтрокаТЧ.Характеристика = НужнаяХарактеристика;
                Модифицирован = Истина;
            КонецЕсли;
        КонецЦикла;
        
        Если Модифицирован Тогда
            // Проведение документа с пересчетом всех движений
            Попытка
                ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
                Сообщить("Документ " + ОбъектДок + " успешно обработан и проведен.");
            Исключение
                Сообщить("Ошибка проведения документа " + ОбъектДок + ": " + ОписаниеОшибки());
            КонецПопытки;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Предупреждение: Использование подобных обработок в рабочей базе без предварительного тестирования на копии категорически запрещено! После выполнения такой обработки в тестовой базе обязательно запустите процедуру Закрытие месяца и сверьте оборотно-сальдовую ведомость и отчет по себестоимости до и после проведения обработки.

---

Важное архитектурное решение: Общие или Индивидуальные характеристики?

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

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

---

Как работать со спецификациями при переходе на характеристики?

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

---

Рекомендации и выводы

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

← На главную