Ищем автора удаления: журнал регистрации, история изменений и техжурнал 1С
Содержание
Кто удалил документ в 1С, показывает журнал регистрации: откройте Администрирование → Обслуживание → Журнал регистрации, задайте отбор по событию Данные. Удаление и по виду документа, и в колонке «Пользователь» будет имя того, кто удалил. Если документ только пометили на удаление, ищите событие Данные. Изменение по этому документу.
Типичная ситуация: в понедельник главбух не находит в списке реализацию за прошлый месяц, а сальдо по 62 счёту уже не сходится с актом сверки. Документ в 1С не пропадает сам. Его либо пометили и удалили обработкой, либо удалил обмен, либо стёр пользователь с полными правами. Журнал регистрации помогает посмотреть, кто и когда это сделал, если он был включён.
Где 1С фиксирует удаление документа
Журнал регистрации ведёт сама платформа 1С:Предприятие 8.3. Он одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях, разница только в том, где лежит команда открытия.
Каждая запись журнала хранит:
- 🕒 дату и время события (по часам сервера или компьютера с файловой базой);
- 👤 пользователя информационной базы;
- 💻 имя компьютера и тип приложения: тонкий клиент, веб-клиент, фоновое задание, COM-соединение;
- 🏷 событие, например
Данные. Добавление,Данные. Изменение,Данные. Проведение,Данные. Удаление; - 📄 метаданные (вид объекта) и представление данных — строку вида «Реализация (акт, накладная) 0000-000123 от 15.03».
Последний пункт главный. Ссылка на удалённый документ уже никуда не ведёт, но текстовое представление сохраняется в записи. По нему вы и узнаете нужный документ.
Где физически лежит журнал:
| Вариант базы | Расположение |
|---|---|
| Файловая | папка 1Cv8Log внутри каталога базы |
| Клиент-серверная | каталог кластера на сервере 1С, например srvinfo\reg_1541\<идентификатор базы>\1Cv8Log |
Если файловую базу когда-то переносили копированием одного файла 1Cv8.1CD без папки 1Cv8Log, вся история до переноса потеряна. Журнал живёт отдельно от данных.
Как посмотреть в журнале регистрации, кто удалил документ
Шаг 1. Откройте журнал
Способы зависят от того, как вы работаете:
| Где | Путь |
|---|---|
| Бухгалтерия 3.0, ЗУП 3.1, УТ 11 | Администрирование → Обслуживание → Журнал регистрации |
| Любая конфигурация на 8.3 | Главное меню → Все функции → Стандартные → Журнал регистрации |
| Конфигуратор | Администрирование → Журнал регистрации |
Если пункта «Все функции» в главном меню нет, включите его: Главное меню → Сервис → Параметры → Отображать команду "Все функции".
Журнал доступен пользователям с административными правами. Обычный бухгалтер его, как правило, не увидит.
Шаг 2. Поставьте отбор
Без отбора журнал за месяц может содержать сотни тысяч строк. Нажмите кнопку отбора в командной панели формы и заполните:
- Период — с даты, когда документ точно был на месте, по текущий день.
- Событие — оставьте только
Данные. Удаление. Чтобы найти пометку, добавьтеДанные. Изменение. - Метаданные — вид документа, например «Реализация (акт, накладная)» или «Поступление (акт, накладная)».
- Пользователь — не трогайте, пока не найдёте запись.
Нажмите «ОК» и подождите. На крупной базе отбор за квартал может считаться несколько минут.
Шаг 3. Прочитайте запись
Найдите строку, где в представлении данных стоит номер и дата пропавшего документа. Откройте её двойным щелчком. В карточке события смотрите:
- Пользователь — кто выполнил удаление;
- Компьютер — с какой машины;
- Приложение — интерактивная работа или фоновое задание;
- Сеанс — номер, по которому можно отобрать все действия этого человека в ту же минуту.
💡 Отбор по номеру сеанса показывает контекст: что пользователь делал до и после удаления. Часто видно, что он сначала открыл документ, потом поставил пометку, а через минуту запустил обработку удаления.
Если не помните ни вид, ни дату документа
Бывает, что известна только сумма или контрагент. Тогда метаданные не задавайте вовсе. Отберите одно событие Данные. Удаление за широкий период, например за квартал, и просмотрите представления данных: удалений в нормальной базе немного, обычно десятки, а не тысячи.
Ещё быстрее сравнить с резервной копией. Разверните копию на дату, когда документ точно был, найдите его там и запишите вид, номер и дату. С этими данными отбор в рабочем журнале занимает минуту.
Пометка удаления и окончательное удаление: кто что сделал
В типовых конфигурациях обычный пользователь документ не удаляет. У него есть право только пометить объект на удаление. Окончательно убирает объекты администратор обработкой Администрирование → Обслуживание → Удаление помеченных объектов.
Поэтому за одним «удалением» стоят два человека и два события:
| Что произошло | Событие в журнале | Кто в колонке «Пользователь» |
|---|---|---|
| Документ пометили на удаление | Данные. Изменение (часто рядом Данные. Отмена проведения) | тот, кто поставил пометку |
| Помеченный документ удалили обработкой | Данные. Удаление | тот, кто запустил обработку |
| Документ удалён сразу, без пометки | Данные. Удаление | пользователь с правом прямого удаления |
| Документ удалён при обмене | Данные. Удаление, приложение — фоновое задание или COM-соединение | пользователь, под которым работает обмен |
Ловушка в первой строке. Журнал пишет факт записи документа, но не говорит, какое поле поменялось. Данные. Изменение одинаково выглядит для правки суммы и для пометки удаления.
Как вычислить того, кто поставил пометку:
- Возьмите время события
Данные. Удалениепо нужному документу. - Отберите
Данные. Изменениепо тому же виду документа за период до этого времени. - Найдите последнюю запись с тем же представлением данных. В представлении помеченного документа часто видно, что он не проведён.
- Подтвердите вывод по истории изменений, если она включена.
История изменений как вторая улика
В Бухгалтерии 3.0 и других конфигурациях на БСП можно хранить версии объектов: Администрирование → Общие настройки, группа «История изменений». Если хранение включено, в версиях видно, кто и когда установил реквизит «Пометка удаления» и что менялось в табличных частях.
Работает это только для документов, которые ещё есть в базе. После окончательного удаления версии такого документа программа может тоже удалить, поэтому смотрите историю, пока объект стоит с пометкой.
Если журнал регистрации пустой: настройки и права
Частая картина: открыли журнал, а событий удаления нет совсем. Причин немного.
Уровень журнала
Настройка находится в Конфигураторе: Администрирование → Настройка журнала регистрации. Варианты: не регистрировать, регистрировать ошибки, ошибки и предупреждения, ошибки, предупреждения и информацию, все события.
События изменения данных относятся к уровню «Информация». Чтобы они попадали в журнал, ставьте как минимум этот уровень, а лучше «Регистрировать все события». Там же задаётся периодичность разделения журнала на файлы.
Настройка действует только с момента изменения. Задним числом журнал удалений не появится.
Права, без которых концы не найти
Журнал бесполезен, если все сидят под одним пользователем. Проверьте в Администрирование → Настройки пользователей и прав:
- у каждого сотрудника своя учётная запись и пароль;
- обмены и регламентные задания работают под отдельным служебным пользователем;
- права «Администратор» и «Полные права» есть только у тех, кому они реально нужны.
Технологический журнал: когда нужен контекст
Журнал регистрации отвечает «кто и когда». Иногда этого мало: документ исчезает регулярно, а в журнале стоит фоновое задание или пользователь обмена. Тогда включают технологический журнал платформы.
Он пишет события на уровне процессов 1С, в том числе запросы к СУБД с именем пользователя и контекстом — строкой стека встроенного языка, откуда пришёл вызов. По контексту видно, какая обработка или модуль удалили данные.
Технологический журнал настраивают файлом logcfg.xml в каталоге conf установленной платформы, например C:\Program Files\1cv8\conf. Для клиент-серверной базы файл кладут на сервер 1С. Пример настройки, которая собирает только запросы на удаление:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event>
<eq property="name" value="DBMSSQL"/>
<like property="sql" value="%DELETE%"/>
</event>
<property name="all"/>
</log>
</config>
Для PostgreSQL событие называется DBPOSTGRS, для файловой базы — DBV8DBEng. Параметр history задаёт, сколько часов хранить файлы.
Технологический журнал пишет много и нагружает диск. Включайте его на время расследования, держите каталог на диске со свободным местом и удаляйте logcfg.xml, когда закончите. Как и журнал регистрации, он не видит прошлого: ловит только удаления, случившиеся после включения.
В логах таблицы называются не по-русски, а служебными именами вроде _Document123. Соответствие имён объектам конфигурации смотрят функцией ПолучитьСтруктуруХраненияБазыДанных().
Как вернуть удалённый документ и что проверить после
Журнал регистрации показывает автора, но документ из него не восстановить. Записи хранят только представление, а не реквизиты и табличные части.
Что реально работает:
| Ситуация | Что делать |
|---|---|
| Документ только помечен | Найдите его в списке (помеченные видны перечёркнутыми), снимите пометку и проведите заново |
| Удалён окончательно, есть резервная копия | Разверните копию в отдельную базу, выгрузите документ через XML и загрузите в рабочую |
| Удалён, копии нет | Ввести документ заново по первичке или по данным контрагента |
| Удалён обменом | Выясните, почему узел передал удаление, иначе при следующем обмене документ снова пропадёт |
Для переноса между копией и рабочей базой подойдёт универсальная обработка выгрузки и загрузки данных в XML. Отберите в ней один документ, выгрузите и загрузите в рабочую базу.
Не восстанавливайте резервную копию поверх рабочей базы ради одного документа. Пропадёт всё, что ввели после даты копии. Копию всегда разворачивают в отдельную базу.
После восстановления проверьте последствия. Вместе с документом исчезли его движения:
- 📉 остатки по счетам и регистрам (склад, расчёты с контрагентами, НДС);
- 🧾 записи книги продаж или покупок;
- 🔁 закрытие месяца, если документ был в закрытом периоде — его придётся перезапустить;
- 📤 сданная отчётность, если документ попал в уже отправленную декларацию.
Если период закрыт датой запрета изменения, загрузка восстановленного документа упрётся в неё. Временно сдвиньте дату запрета для одного пользователя, загрузите документ и верните настройку.
Как не допустить повторных удалений
Расследовать дважды обидно. После находки закройте дыру настройками:
- 🔒 Даты запрета изменения. В Бухгалтерии 3.0:
Администрирование → Проведение документов → Даты запрета изменения. Документы до этой даты нельзя ни изменить, ни пометить, ни удалить без особых прав. - 👥 Права на удаление. Окончательное удаление оставьте одному-двум администраторам. Пометку на удаление у рядовых пользователей можно ограничить через профили групп доступа.
- 🗂 История изменений. Включите хранение версий для ключевых документов: реализаций, поступлений, банковских выписок.
- 📜 Журнал на полную. Уровень «Регистрировать все события», а сокращение журнала — только с выгрузкой в файл.
- 💾 Резервные копии. Ежедневная копия с хранением хотя бы за месяц. Без неё удалённый документ придётся вводить заново.
- 🧹 Регламент удаления помеченных. Удаляйте помеченные раз в месяц после закрытия периода, предварительно просмотрев список. Пометка — это сигнал, а не приговор: бухгалтер мог ошибиться.