В процессе работы с базами данных 1С:Предприятие часто возникают ситуации, когда необходимо выяснить историю происхождения того или иного объекта. Особенно это актуально для справочника Номенклатура, где случайное создание папки или изменение структуры иерархии может привести к путанице в учете. Рассмотрим подробно, как вычислить «автора» папки, используя штатные инструменты системы и более глубокие технические методы.
Самый очевидный и стандартный способ — использование Журнала регистрации. Однако именно здесь пользователи чаще всего допускают ошибки при настройке фильтров. Разберем по шагам, как правильно настроить отбор, чтобы найти событие создания папки (группы номенклатуры).
Войдем в раздел Администрирование — Обслуживание — Журнал регистрации. Для эффективного поиска нам не стоит полагаться только на текстовое представление папки, так как оно могло измениться. Выполним следующие действия:
Справочники.Номенклатура. Это сузит круг поиска до конкретного справочника.Номенклатура. Это позволит системе искать записи по внутреннему идентификатору объекта, а не по его строковому названию.Данные.Добавление. Если мы ищем только момент создания, этого будет достаточно. Если нужно увидеть и последующие изменения — выберем также Данные.Изменение.Важный нюанс: Если поиск не дает результатов, проанализируем ситуацию. Рассмотрим причины, по которым журнал может быть пуст. Во-первых, проверьте настройки самого журнала в Конфигураторе. Если установлен уровень Регистрировать только ошибки, то информация о создании объектов просто не записывается. Во-вторых, если база переносилась или восстанавливалась из бэкапа без файлов лога (файлы с расширением .lgp или .lgf), история будет утеряна.
Бывают ситуации, когда объект был удален и повторно создан, или его представление в журнале отображается некорректно. В таких случаях проанализируем ситуацию через UUID (GUID). Каждый объект в 1С имеет уникальный внутренний номер. Даже если папку переименовали 10 раз, её UUID остается неизменным с момента создания.
Чтобы узнать UUID папки, мы можем воспользоваться консолью запросов или простым кодом. Выясним идентификатор с помощью небольшого фрагмента кода:
СсылкаНаПапку = Справочники.Номенклатура.НайтиПоНаименованию("Вредная папка", Истина);
Идентификатор = Строка(СсылкаНаПапку.УникальныйИдентификатор());
Сообщить(Идентификатор);
Получив этот набор символов, мы можем программно перебрать записи журнала регистрации или использовать его в расширенном поиске. Это гарантирует, что мы найдем именно ту самую запись о создании, даже если текущее имя папки не совпадает с тем, которое было в момент записи в лог.
В современных конфигурациях (ERP, УТ 11, КА) предусмотрен механизм История изменений. Если этот функционал включен, то задача упрощается в разы. Проверим настройки по пути: Администрирование — Общие настройки — История изменений.
Если версионирование для справочника Номенклатура включено, выполним следующие действия:
Преимущество этого метода в том, что данные версионирования хранятся непосредственно в таблицах базы данных в сжатом виде, и они не исчезают при очистке текстовых файлов журнала регистрации.
Рассмотрим еще одну возможность. В некоторых доработанных или новых типовых конфигурациях разработчики включают стандартные реквизиты Автор и ДатаСоздания непосредственно в состав справочника. Проверим их наличие:
Автор, Пользователь создания или аналогичных.Если в пользовательском режиме эти поля не видны, заглянем в Конфигуратор. Проанализируем состав реквизитов справочника Номенклатура. Если конфигурация находится на поддержке с возможностью изменения, мы можем сами добавить такие реквизиты и заполнять их в подписке на событие ПередЗаписью, чтобы в будущем не сталкиваться с подобными проблемами.
Если журнал регистрации очищен, а версионирование не велось, попробуем применить метод «дедукции». Выясним дату создания папки. Это можно сделать, посмотрев на соседние объекты. Часто объекты создаются пачками.
Рассмотрим пример: если мы знаем примерное время появления папки, сделаем в журнале регистрации (даже если он частично очищен) широкий отбор по всем событиям за этот период. Ищите создание документов Поступление товаров и услуг или Установка цен. Часто пользователь сначала создает папку, а затем сразу начинает наполнять её карточками номенклатуры или вводить документы. Имя пользователя, который создавал документы в этот же период времени, с высокой долей вероятности и будет искомым автором папки.
Проанализируем технические аспекты, которые могут мешать поиску:
.lgf или новом .lgp (SQLite). При конвертации или фрагментации файлов по периодам (день/месяц) поиск может не охватывать старые архивы, если они физически перемещены в другую папку на сервере.Фоновое задание или Внешнее соединение. В этом случае имя конкретного человека может отсутствовать, и придется анализировать, какая именно обработка и под чьим запуском работала в это время.Подводя итог, можно сказать: наиболее надежным способом является сочетание поиска по UUID в журнале регистрации и проверка истории изменений. Если же данные утеряны, рекомендуем настроить регулярное архивирование журнала регистрации и включить версионирование для критически важных справочников.