Где хранится вес номенклатуры в 1С:УТ 10.3 и как отследить историю его изменений?

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

При работе с конфигурацией 1С:Управление Торговлей 10.3 (УТ 10.3) часто возникает ситуация, когда в документы, например, в заказы покупателей, не подтягивается вес товаров. Возникает логичный вопрос: как вычислить период, когда пользователи добавили или изменили вес в карточке номенклатуры? Чтобы решить эту задачу, разберем архитектуру хранения данных в 1С, выясним, к какой таблице базы данных обращается программа, и проанализируем доступные способы отслеживания изменений.

Где физически хранится вес номенклатуры?

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

В УТ 10.3 вес не привязан к самой карточке номенклатуры (справочнику Номенклатура) напрямую. Он является реквизитом подчиненного справочника ЕдиницыИзмерения. У одной позиции номенклатуры может быть несколько единиц измерения (штуки, коробки, паллеты), и для каждой из них задается свой вес, объем и коэффициент по отношению к базовой единице измерения.

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

Почему вес может не попадать в Заказ покупателя?

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

  1. Создание документа до указания веса: Когда пользователь подбирает товар в документ, система единоразово считывает реквизит Вес из выбранной единицы измерения (часто это ЕдиницаХраненияОстатков.Вес). Если на момент добавления строки в справочнике вес был равен нулю, в документ он попадет нулевым.
  2. Отсутствие автоматического обновления: Если кто-то позже добавит вес в карточку (в справочник ЕдиницыИзмерения), в уже созданных, записанных и проведенных документах он автоматически не обновится. Значение фиксируется в момент подбора.
  3. Копирование старых документов: При вводе нового документа путем копирования старого, в новый документ переносятся данные из табличной части документа-основания. Если в старом заказе вес не был рассчитан, то и в скопированном документе он останется пустым, даже если в справочнике данные давно актуализированы.

Как отследить изменения веса?

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

Метод 1. Использование Журнала регистрации

Если в базе не настроены дополнительные механизмы логирования, единственным штатным инструментом остается Журнал регистрации.

Журнал фиксирует сам факт записи или изменения объекта базы данных и пользователя, который выполнил действие. Однако есть существенный минус: вы не увидите, какой именно реквизит был изменен. Если пользователь просто пересохранил единицу измерения, изменил ее наименование или штрихкод, журнал зафиксирует событие "Изменение", но не покажет, что вес остался прежним.

Как использовать этот метод на практике:

  1. Откройте проблемный документ (Заказ покупателя) и посмотрите дату его создания.
  2. Откройте Журнал регистрации и отфильтруйте события по справочнику ЕдиницыИзмерения для конкретной номенклатуры.
  3. Сравните дату создания документа с датами изменения справочника. Если справочник активно менялся после создания документа (или после даты копируемого документа), высока вероятность, что на момент формирования заказа вес еще не был заполнен.

Метод 2. Подсистема "Версионирование объектов"

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

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

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

  1. Откройте карточку нужной единицы измерения.
  2. Нажмите на кнопку перехода к истории изменений (Версионирование).
  3. Перед вами откроется отчет, в котором построчно указано: кто, когда и какое конкретно значение изменил. Вы сможете наглядно увидеть старое значение (например, 0 кг) и новое значение (например, 5 кг).

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

Подведем итоги

Мы выяснили, что данные о весе физически лежат в справочнике ЕдиницыИзмерения. Если вы столкнулись с проблемой пустых колонок веса в заказах, в первую очередь обращайте внимание на хронологию ввода данных пользователями и факты создания документов копированием. Для строгого контроля изменений рекомендуется внедрить механизм версионирования, который раз и навсегда снимет вопросы о том, "кто и когда стер или добавил вес".

← На главную