В работе бухгалтера нередко возникают ситуации, когда при открытии документа прошлых периодов обнаруживается, что товары в нем стали называться иначе или вовсе заменены. Такая ситуация вызывает обоснованное беспокойство: ведь данные в закрытых периодах должны быть неизменными. Давайте разберем, почему это происходит и как выявить виновников изменений.
Чаще всего причина кроется не в программном сбое, а в особенностях работы пользователей со справочником Номенклатура. Рассмотрим основные сценарии, с которыми сталкиваются специалисты:
СправочникСсылка.Номенклатура), а не строковое значение, во всех документах — и новых, и старых — наименование товара мгновенно обновится на новое.Групповое изменение реквизитов с неверно настроенным отбором может привести к тому, что реквизит Номенклатура будет перезаписан сразу в сотнях документов.Если вы столкнулись с такой проблемой, первым делом необходимо использовать инструменты аудита, встроенные в платформу 1С:
Справочник.Номенклатура или по конкретным документам. Ищите действия Изменение, совершенные в конкретный период времени. Вы увидите, под чьей учетной записью были внесены правки.Номенклатура.Чтобы в будущем подобные ситуации не повторялись, рекомендуем внедрить следующие меры защиты:
Номенклатура для обычных пользователей. Разрешите создание новых позиций, но запретите изменение наименования у уже существующих элементов.Номенклатура и критически важных документов. Это позволит быстро восстановить прежние данные и понять, кто внес корректировки.Для продвинутых пользователей и разработчиков можно предложить создание защиты на уровне кода. Например, использование события ПередЗаписью в модуле объекта Номенклатура, чтобы запретить переименование, если товар уже имеет историю в документах:
// Пример блокировки переименования в модуле объекта
Процедура ПередЗаписью(Отказ)
Если ЭтоГруппа = Ложь И Не ЭтоНовый() Тогда
// Проверяем, был ли изменен реквизит Наименование
Если Ссылка.Наименование <> ЭтотОбъект.Наименование Тогда
// Здесь можно добавить логику проверки наличия ссылок в документах
// и выдать сообщение об ошибке
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Подводя итог: в 90% случаев проблема вызвана человеческим фактором. Проведите инструктаж с сотрудниками, настройте права доступа, и вы обеспечите сохранность своей учетной базы на долгие годы.