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