Поиск автора пометки удаления в 1С 8.3: журнал регистрации, версии и файл лога

· 10 мин

Содержание

Узнать, кто пометил объект на удаление в 1С, можно через журнал регистрации: Администрирование → Обслуживание → Журнал регистрации, отбор по полю «Данные» (сам документ или элемент справочника) и по событию «Данные. Изменение». В строке события видны пользователь, компьютер, время и программа, через которую сделано изменение.

Частое заблуждение — искать автора в карточке объекта. Поле «Ответственный» или «Автор» в документе показывает, кто его создал, а не кто поставил пометку. Сама пометка удаления — это просто флаг. В таблицах базы хранится только его значение, без имени пользователя. Поэтому ответ ищут в журнале регистрации или в истории изменений объекта, если она была включена заранее.

Что фиксирует 1С при пометке на удаление

Пометка удаления — это запись объекта с изменённым реквизитом ПометкаУдаления. Платформа пишет такое действие в журнал регистрации как обычное изменение данных. Отдельного события «Пометка удаления» в стандартном журнале нет.

Что это значит на практике:

  • 📝 для справочника пометка выглядит как событие «Данные. Изменение»;
  • 📄 для проведённого документа пометка ещё и снимает проведение, поэтому в журнале рядом может оказаться событие «Данные. Отмена проведения»;
  • 🗑️ физическое удаление через обработку удаления помеченных объектов пишется как «Данные. Удаление» — так видно, кто удалил объект окончательно;
  • 👥 если пометили группу справочника, пометку получают и все вложенные элементы — в журнале будет серия изменений в одну секунду.

Отсюда главный приём: ищем последнее изменение объекта перед тем, как пометку заметили. Если после пометки объект больше никто не трогал, последняя запись «Изменение» и есть нужное действие.

Журнал покажет действие, только если в базе включена регистрация событий уровня «Информация». В Конфигураторе это Администрирование → Настройка журнала регистрации. Если там выбрано «Регистрировать ошибки», изменений данных в журнале не будет — восстановить их задним числом нельзя.

Как найти пользователя в журнале регистрации

Журнал регистрации открывается из пользовательского режима. Нужны права администратора или роль, дающая доступ к журналу.

КонфигурацияГде открыть журнал
Бухгалтерия предприятия 3.0Администрирование → Обслуживание → Журнал регистрации
ЗУП 3.1Администрирование → Обслуживание → Журнал регистрации
Управление торговлей 11НСИ и администрирование → Администрирование → Обслуживание → Журнал регистрации
Любая конфигурацияВсе функции → Стандартные → Журнал регистрации

Меню «Все функции» появляется после включения флага «Отображать команду “Все функции”» в настройках программы (меню с тремя полосками в заголовке окна → Сервис → Параметры).

Шаг 1. Задайте период

Откройте журнал и сузьте период до дней, когда пометка могла появиться. Журнал крупной базы за год содержит миллионы записей. Без периода отбор работает долго, а клиент может зависнуть.

Шаг 2. Отберите сам объект

Откройте настройку отбора (ссылка или кнопка «Отбор» над списком) и заполните:

  1. Метаданные — вид объекта, например «Документ. Реализация (акт, накладная, УПД)» или «Справочник. Номенклатура».
  2. Данные — конкретный документ или элемент. Его выбирают из списка, как в обычном поле ввода.
  3. События — «Данные. Изменение» и «Данные. Отмена проведения».
  4. Примените отбор.

Шаг 3. Прочитайте нужную строку

Отсортируйте список по дате и посмотрите последние записи. В каждой строке есть:

  • 👤 Пользователь — имя из списка пользователей базы;
  • 💻 Компьютер — имя рабочей станции;
  • 🧩 Приложение — «Тонкий клиент», «Веб-клиент», «Фоновое задание», «COM-соединение» и т.д.;
  • 🕐 Дата и время с точностью до секунды.

Откройте строку двойным щелчком: внизу окна будет представление данных и номер сеанса. По номеру сеанса удобно найти соседние действия того же человека — что он делал до и после.

Если в колонке «Приложение» стоит «Фоновое задание» или «COM-соединение», пометку поставил не человек, а обмен данными, регламентное задание или внешняя обработка. Пользователь в этом случае — служебная учётная запись, под которой работает обмен. Ищите источник в настройках синхронизации или в списке регламентных заданий.

Если объект уже удалён

Когда объект удалили физически, выбрать его в поле «Данные» нельзя — ссылка битая. Тогда отбирайте только по «Метаданным» и событию «Данные. Удаление» за нужный период. В колонке «Данные» останется представление объекта: номер и дата документа или наименование элемента. По нему и находят строку.

История изменений: кто и когда сменил пометку

Второй источник — история изменений объектов (версионирование). Механизм есть во всех типовых конфигурациях на БСП. Он хранит копии объекта при каждой записи вместе с автором версии.

История работает только с момента включения. Если её не включили заранее, для уже помеченных объектов версий не будет.

Как включить историю изменений

  1. Откройте Администрирование → Общие настройки (в УТ 11 — НСИ и администрирование → Администрирование → Общие настройки).
  2. В группе «История изменений» установите флаг «Хранить историю изменений».
  3. Перейдите по ссылке «Настроить» и для нужных видов документов и справочников выберите вариант хранения версий.
  4. Задайте срок хранения, чтобы регистр не разрастался.

Как посмотреть версии объекта

Откройте документ или элемент справочника. Команда «История изменений» находится в меню «Ещё» формы или на панели навигации объекта. В списке версий видны номер, дата, автор и комментарий.

Выделите две соседние версии и сравните их. В отчёте о различиях отражается, какие реквизиты поменялись. Версия, в которой пометка удаления сменилась с «Нет» на «Да», и даст автора.

История изменений надёжнее журнала в одном случае: журнал периодически сокращают, а версии хранятся по своему сроку. Для критичных справочников (контрагенты, номенклатура, договоры) имеет смысл держать версии хотя бы год.

Запрос в консоли: найти все помеченные объекты и их авторов

Консоль запросов не покажет автора пометки напрямую — в таблицах объектов его нет. Но она быстро собирает список всего помеченного, а при включённой истории — и авторов последних версий.

Консоль запросов — внешняя обработка. Её открывают через меню с тремя полосками → Файл → Открыть. В типовых базах для этого нужны права администратора, а в некоторых настройках безопасности — подтверждение запуска внешних обработок.

Запрос всех помеченных документов одного вида:

ВЫБРАТЬ
    Док.Ссылка,
    Док.Дата,
    Док.Номер,
    Док.Ответственный
ИЗ
    Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
    Док.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
    Док.Дата УБЫВ

«Ответственный» здесь — тот, кто вёл документ, а не тот, кто его пометил. Поле полезно как подсказка, к кому идти с вопросом.

Если история изменений включена, авторов версий можно взять из регистра сведений «Версии объектов»:

ВЫБРАТЬ
    Версии.Объект,
    Версии.НомерВерсии,
    Версии.ДатаВерсии,
    Версии.АвторВерсии
ИЗ
    РегистрСведений.ВерсииОбъектов КАК Версии
ГДЕ
    Версии.Объект В
        (ВЫБРАТЬ
            Док.Ссылка
        ИЗ
            Документ.РеализацияТоваровУслуг КАК Док
        ГДЕ
            Док.ПометкаУдаления)
УПОРЯДОЧИТЬ ПО
    Версии.Объект,
    Версии.НомерВерсии УБЫВ

Последняя версия каждого помеченного документа почти всегда и есть пометка. Состав полей регистра зависит от версии БСП — если запрос выдаёт ошибку, откройте регистр в Конфигураторе и сверьте имена.

Выгрузка журнала кодом

Для разовой проверки по многим объектам журнал удобно выгрузить программно. Код выполняется на сервере, например во внешней обработке:

Отбор = Новый Структура;
Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()) - 7 * 86400);
Отбор.Вставить("Событие", "_$Data$_.Update");

Таблица = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Таблица, Отбор);

Для Каждого Запись Из Таблица Цикл
    Сообщить(Формат(Запись.Дата, "ДФ='dd.MM.yyyy HH:mm:ss'") + " | " + Запись.ИмяПользователя + " | " + Запись.ПредставлениеДанных);
КонецЦикла;

_$Data$_.Update — внутреннее имя события «Данные. Изменение». Отбор за 7 дней по крупной базе может вернуть десятки тысяч строк, поэтому добавьте в отбор ключ Метаданные или сузьте период.

Чтение файла журнала через SQL

Этот способ нужен, когда журнал не открывается из 1С: база повреждена, журнал огромный или нужен анализ сразу по многим базам.

Журнал регистрации хранится не в СУБД базы, а в отдельных файлах:

  • 📁 файловая база — папка 1Cv8Log рядом с файлом 1Cv8.1CD;
  • 🖥️ клиент-серверная база — папка 1Cv8Log внутри каталога базы на сервере 1С, обычно srvinfo\reg_1541\<GUID базы>\1Cv8Log.

В формате .lgd (используется с платформы 8.3.5) журнал — это база SQLite. Её открывают любым клиентом SQLite, например DB Browser for SQLite или утилитой sqlite3.

Работайте с копией файла .lgd, а не с рабочим. Платформа держит файл открытым и пишет в него; запросы к живому файлу могут его заблокировать.

Пример запроса по копии:

SELECT
  datetime(e.date / 10000 - 62135596800, 'unixepoch') AS event_time,
  u.name AS user_name,
  ev.name AS event_name,
  e.dataPresentation
FROM EventLog e
LEFT JOIN UserCodes u ON u.code = e.userCode
LEFT JOIN EventCodes ev ON ev.code = e.eventCode
WHERE ev.name = '_$Data$_.Update'
  AND e.dataPresentation LIKE '%0000-000123%'
ORDER BY e.date DESC;

В dataPresentation подставьте фрагмент номера документа или наименования элемента. Перед выводами сверьте время одной-двух записей с журналом в 1С: так вы убедитесь, что пересчёт даты и часовой пояс совпадают.

Если вместо .lgd в папке лежат файлы .lgp и .lgf — это старый текстовый формат. SQL к нему не применить; такие журналы читают из 1С или сторонними парсерами.

В таблицах самой базы на MS SQL или PostgreSQL пометка хранится в поле _Marked — только флаг, без пользователя и времени. Искать автора в СУБД базы бесполезно.

Как вернуть объект и не допустить повторной пометки

Снять пометку

Пока объект только помечен, вернуть его просто:

  1. Найдите объект в списке. Помеченные строки отмечены перечёркнутым значком.
  2. Выделите строку и нажмите Del — повторное нажатие снимает пометку. То же делает команда «Пометить на удаление / Снять пометку» в меню «Ещё».
  3. Для документа: пометка сняла проведение. Откройте документ и проведите его заново, иначе движения по регистрам не вернутся.

Для элемента справочника, помеченного вместе с группой, снимите пометку с группы — платформа предложит снять её и с подчинённых.

Если объект уже удалён

После удаления помеченных объектов вернуть объект можно только из резервной копии. Порядок такой: развернуть копию в отдельную базу, найти там объект и перенести его в рабочую базу выгрузкой в XML или обработкой переноса данных. Восстанавливать рабочую базу из копии целиком нельзя — пропадут все данные, введённые после неё.

Профилактика

Набор мер, который реально снижает число «загадочных» пометок:

МераЧто даётГде настроить
Уровень журнала «Регистрировать все»Видно каждое изменениеКонфигуратор: Администрирование → Настройка журнала регистрации
История измененийАвтор и состав каждой версииАдминистрирование → Общие настройки
Даты запрета измененияНельзя пометить документ закрытого периодаВ разделе Администрирование, группа «Пользователи и права»
Ограничение права «Интерактивная пометка удаления»Пометить может только узкий кругРоль в расширении конфигурации
Ручной запуск удаления помеченныхЕсть время найти и вернуть объектРегламентные задания в разделе Администрирование → Обслуживание

Отдельно проверьте регламентное задание удаления помеченных объектов. Если оно включено по расписанию, помеченный объект может исчезнуть ночью — и у вас останется только журнал.

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

Почему автор не находится: разбор частых ситуаций

Диагностика: выберите симптом

Частые вопросы

Видит ли обычный пользователь, кто пометил документ?
Нет. Журнал регистрации и история изменений по умолчанию доступны администраторам. Пользователю без прав нужно обратиться к администратору базы.
Сколько хранится журнал регистрации?
Пока его не сократят. Сокращение журнала делают вручную в Конфигураторе или через обработки обслуживания. После сокращения старые записи остаются только в выгруженном архиве, если его сохранили.
Можно ли увидеть автора пометки в 1С:Фреш или облачной базе?
Да, через журнал регистрации внутри приложения, если у вашей учётной записи есть права администратора. Доступа к файлам журнала на сервере в облаке нет.
Фиксирует ли журнал, кто снял пометку удаления?
Да. Снятие пометки — такое же изменение объекта, оно пишется событием «Данные. Изменение» с пользователем и временем.
Повлияет ли включение «Регистрировать все» на скорость работы?
Журнал растёт быстрее и занимает больше места на диске. На скорость работы пользователей это заметно влияет редко; следите за размером каталога 1Cv8Log и сокращайте журнал по графику.