Замена базовой единицы измерения в уже используемой номенклатуре — это задача, которая на первый взгляд кажется простой технической операцией. Однако в системе 1С:Управление торговлей 11.4 она скрывает множество подводных камней, способных привести к полной неконсистентности данных в ваших отчетах и регистрах. Давайте разберем, почему нельзя просто «взять и заменить» КГ на ШТ и какие варианты решения задачи существуют на самом деле.
Первое, что необходимо понять: в архитектуре 1С справочник Номенклатура связан с механизмом упаковок и единиц измерения очень глубоко. Когда вы меняете базовую единицу измерения у элемента, который уже участвовал в операциях (поступление, реализация, списание), вы создаете логический конфликт:
БСП (Библиотеки стандартных подсистем) имеют встроенные проверки. При наличии движений в регистрах накопления ТоварыНаСкладах или ВыручкаИСебестоимостьПродаж, система программно блокирует изменение базовой единицы, предотвращая порчу базы данных.Поиск и удаление дублей или Групповое изменение реквизитов, отчеты за прошлые периоды станут нечитаемыми, так как база «запомнит» все операции как выполненные в новых единицах.Вместо того чтобы пытаться переименовать базовую единицу, разберем более корректный подход, предусмотренный архитектурой УТ 11.4. Мы можем добавить новую единицу измерения в качестве упаковки.
Если вам нужно продавать товар не в килограммах, а в штуках, выполните следующие шаги:
Упаковки.Таким образом, базовая единица измерения КГ остается неизменной, что сохраняет целостность всех исторических данных и складских остатков.
Если бизнес-процесс требует, чтобы товар велся исключительно в штуках, и вы не можете работать с упаковками, единственным надежным способом является создание новой номенклатурной позиции.
Давайте проанализируем процесс перехода:
Списание товаров на дату «Х».Оприходование товаров в штуках на ту же дату.Часто возникает соблазн использовать обработку Поиск и удаление дублей для подмены ссылок. Давайте выясним, почему это плохая идея для данной задачи. Данный механизм предназначен для объединения объектов, которые являются **дублями** (например, создали дважды карточку «Болт М8» с разным кодом). При объединении система заменяет все ссылки на удаляемый объект ссылкой на оставляемый.
Если вы принудительно заставите программу «склеить» КГ и ШТ, вы получите:
// Псевдокод логики, которую пытается провернуть пользователь:
Если Объект.Наименование = "КГ" Тогда
ЗаменитьНа(СсылкаНаШТ); // Это приведет к катастрофе в учете
КонецЕсли;
Система просто перепишет историю всей компании. В отчетах за 2020 год у вас внезапно может оказаться, что вы продавали товар в штуках, хотя физически отгружали килограммы. Мы настоятельно не рекомендуем использовать данный метод для изменения единиц измерения.
Подводя итог нашей работы, проанализируем ситуацию еще раз: если база данных уже наполнена документами, самый безопасный путь — это использование справочника Упаковки. Это штатный механизм 1С:Управление торговлей, который позволяет гибко менять единицы измерения в документах без риска «развала» складского и финансового учета. Если же требуется радикальная смена единицы измерения, используйте метод замены номенклатуры через списание и оприходование остатков.