В работе с 1С:Предприятие часто возникает ситуация, когда нужно выяснить, кто последний открывал документ — будь то для аудита изменений, контроля доступа или расследования ошибок. Стандартные механизмы платформы не всегда предоставляют эту информацию в явном виде, но существуют как встроенные инструменты, так и обходные пути через конфигуратор, журналы регистрации и даже прямые SQL-запросы к базе данных.
В этой статье мы разберём 5 рабочих методов определения пользователя, открывшего документ в 1С, включая нюансы для разных версий платформы (8.2, 8.3) и конфигураций (Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и др.). Особое внимание уделим ограничениям стандартных механизмов и способам их обхода с помощью расширений и внешних обработок.
1. Стандартный журнал регистрации: что он показывает и где искать
Самый очевидный способ — журнал регистрации 1С, который фиксирует действия пользователей. Однако здесь есть подводные камни: по умолчанию журнал может не сохранять информацию об открытии документов, а только об их изменении или проведении. Чтобы это исправить:
- 🔧 Настройте уровень детализации журнала в
Администрирование → Журналы регистрации → Настройки. Выберите уровень "Минимум + открытие форм" или "Максимум". - 📊 Проверьте, включено ли ведение журнала для конкретной базы:
Администрирование → Поддержка и обслуживание → Журналы регистрации. - ⏳ Учтите, что журнал хранит данные ограниченное время (по умолчанию — 30 дней). Для длительного хранения настройте архивацию.
Чтобы найти, кто открывал документ:
- Откройте журнал регистрации (
Все функции → Стандартные → Журнал регистрации). - Установите фильтр по типу события: "Открытие формы" или "Чтение данных".
- В поле "Объект" укажите имя документа (например,
Документ.РеализацияТоваровУслуг). - Отсортируйте по дате и пользователю.
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ERP) журнал может не фиксировать открытие документов в списочных формах — только при открытии карточки документа.
2. Расширения конфигурации: добавление отслеживания открытий
Если стандартного журнала недостаточно, можно дописать функционал отслеживания через расширение конфигурации. Этот метод подходит для 1С 8.3.10+ и не требует изменения основной конфигурации (что важно для типового решения).
Алгоритм создания расширения:
- Откройте конфигуратор и создайте новое расширение (
Конфигурация → Расширения → Добавить). - В расширении добавьте обработчик события "ПриОткрытии" для формы документа:
&НаКлиентеПроцедура ДокументОбъектПриОткрытии(Отказ, СтандартнаяОбработка)
ЗаписатьВЖурналОткрытий(ЭтотОбъект.Ссылка, ТекущийПользователь());
КонецПроцедуры
- Создайте регистр сведений (например,
ЖурналОткрытийДокументов) с ресурсами:- 📅 ДатаОткрытия (тип: Дата)
- 👤 Пользователь (тип: СправочникСсылка.Пользователи)
- 📄 Документ (тип: Ссылка)
- Реализуйте процедуру
ЗаписатьВЖурналОткрытий, которая будет добавлять записи в регистр. - 🔄 Не нарушает поддержку типовой конфигурации.
- 📈 Позволяет гибко настраивать период хранения данных.
- 🔍 Можно добавить отслеживание дополнительных параметров (например, IP-адрес или время сеанса).
- 🖥️ Вы используете клиент-серверный вариант 1С (PostgreSQL, MS SQL, IBM DB2).
- 🔐 У вас есть права на выполнение запросов к базе.
- 📊 Нужен разовый анализ без изменения конфигурации.
- 🔧 Требует знания структуры базы данных 1С (таблицы
_DocumentLog,_Usersи др.). - 🛡️ Не рекомендуется для регулярного использования — лучше автоматизировать через внешнюю обработку.
- 📉 В файловом варианте 1С этот метод неприменим.
- 📊 "Журнал просмотра документов" (доступен на Инфостарт и 1С-Сообщество) — показывает историю открытий с фильтрацией по пользователям и типам документов.
- 🔍 "Аудит действий пользователей" — расширенный инструмент с возможностью экспорта в Excel.
- 📈 "Мониторинг активности" — отслеживает не только открытия, но и время работы с документом.
Преимущества метода:
⚠️ Внимание: Расширения могут конфликтовать с обновлениями конфигурации. Перед установкой обновлений проверяйте совместимость в Конфигураторе.
Создать новое расширение|Добавить обработчик ПриОткрытии|Создать регистр сведений|Написать процедуру записи в журнал|Протестировать на копии базы-->
3. SQL-запросы к базе данных: прямой доступ к данным
Для опытных пользователей и администраторов доступен метод прямого запроса к SQL-базе. Он подходит, если:
Пример запроса для MS SQL Server, чтобы найти, кто открывал документы РеализацияТоваровУслуг за последний месяц:
SELECT
u.Descr AS Пользователь,
d.Reference AS СсылкаНаДокумент,
l.Moment AS ДатаОткрытия
FROM
_DocumentLog l
JOIN
_Users u ON l.UserID = u._ID_RRef
JOIN
_Document80 d ON l._ObjectID_RRef = d._ID_RRef
WHERE
d._Type = (SELECT _ID_RRef FROM _DocumentTypes WHERE Descr = 'РеализацияТоваровУслуг')
AND l.Moment >= DATEADD(month, -1, GETDATE())
ORDER BY
l.Moment DESC
Особенности метода:
| Тип базы | Таблица с логами | Поле "Пользователь" | Поле "Документ" |
|---|---|---|---|
| MS SQL | _DocumentLog |
UserID |
_ObjectID_RRef |
| PostgreSQL | v8log |
userref |
objref |
| IBM DB2 | V8LOG |
USERREF |
OBJREF |
Перед выполнением SQL-запросов к базе 1С сделайте резервную копию! Ошибка в запросе может нарушить целостность данных.
4. Внешние обработки и отчёты: готовые решения
Если нет времени или навыков для создания расширений, можно воспользоваться готовыми внешними обработками. Некоторые из них:
Как подключить внешнюю обработку:
- Скачайте файл обработки (
.epfили.erf). - В 1С откройте
Файл → Открыть → Выбрать файл обработки. - Запустите обработку и настройте параметры (период, пользователи, типы документов).
Пример интерфейса обработки "Журнал просмотра документов":
Пример отчёта из обработки
Отчёт содержит колонки: "Дата/время", "Пользователь", "Тип документа", "Номер документа", "Длительность просмотра (сек)".
Дополнительно можно группировать данные по отделам или ролям пользователей.
⚠️ Внимание: Внешние обработки могут содержать вредоносный код. Скачивайте их только с проверенных источников (Инфостарт, 1С:ИТС, официальные партнёры 1С).
5. Логи операционной системы: альтернативный способ
В редких случаях, когда доступ к 1С ограничен, можно попробовать проанализировать логи операционной системы (для клиент-серверного варианта). Например, в Windows можно посмотреть:
- 📁 Логи
Event Viewer(Журналы Windows → Приложение) — искать события от1Cv8илиragent. - 🖥️ Логи SQL Server (если используется MS SQL) — в них могут оставаться следы подключений пользователей.
- 🌐 Логи веб-сервера (для веб-клиента 1С) — в
IISилиApache.
Пример запроса к логам Windows Event Viewer через PowerShell:
Get-WinEvent -FilterHashtable @{
LogName = 'Application'
ProviderName = '1Cv8'
StartTime = (Get-Date).AddDays(-7)
} | Where-Object { $_.Message -like 'Открытие формы' } | Select-Object TimeCreated, Message
Ограничения метода:
- 🔍 Логи ОС не содержат детализации по конкретным документам — только факты подключения к базе.
- 🕒 Требуется доступ к серверу, где развёрнута 1С.
- 📉 В файловом варианте 1С этот метод бесполезен.
Логи ОС — это последний резервный вариант. Они не заменят специализированные инструменты 1С, но могут помочь в отсутствие других данных.
6. Обходные пути для файлового варианта 1С
В файловом варианте 1С (когда база хранится в файле .1CD) возможности отслеживания сильно ограничены. Стандартный журнал регистрации здесь работает, но не фиксирует открытия документов. Решения:
- 🔄 Переход на клиент-серверный вариант — радикальное, но надёжное решение. Позволяет использовать все методы, описанные выше.
- 📁 Резервные копии: если документ был изменён, можно сравнить резервные копии базы (например, через 1С:Ревизор) и выяснить, кто внёс изменения.
- 🔧 Внешние утилиты: например, "1С:Логгер" — программа для мониторинга действий в файловой базе (требует установки на все рабочие станции).
Для временного решения можно использовать триггеры на события документов:
- Создайте обработчик
ПриЗаписидля документа, который будет записывать данные об открытии в отдельный регистр. - Используйте механизм подписок на события (доступен в 1С 8.3.6+), чтобы не модифицировать конфигурацию.
⚠️ Внимание: В файловом варианте 1С нет гарантированного способа отследить только открытие документа без его изменения. Все обходные пути имеют ограничения.
Сравнение методов: какой выбрать
| Метод | Тип базы | Требуемые права | Сложность | Ограничения |
|---|---|---|---|---|
| Журнал регистрации | Любой | Администратор | ⭐ | Не всегда фиксирует открытия |
| Расширение конфигурации | Любой | Конфигуратор | ⭐⭐⭐ | Требует навыков программирования |
| SQL-запросы | Клиент-сервер | Доступ к СУБД | ⭐⭐⭐⭐ | Риск повреждения данных |
| Внешние обработки | Любой | Пользователь | ⭐⭐ | Зависимость от стороннего ПО |
| Логи ОС | Клиент-сервер | Администратор сервера | ⭐⭐⭐⭐ | Минимальная детализация |
Выбор метода зависит от:
- 📌 Версии 1С (8.2 или 8.3).
- 📌 Типа базы (файловая или клиент-серверная).
- 📌 Уровня доступа (есть ли права на конфигуратор или SQL).
- 📌 Цели отслеживания (разовый анализ или постоянный мониторинг).
Для большинства задач оптимально сочетание журнала регистрации (настроенного на максимум детализации) и внешней обработки для анализа данных.
FAQ: Частые вопросы по отслеживанию открытий документов
Можно ли узнать, кто открывал документ в 1С:Бухгалтерия 8.3, если журнал регистрации отключён?
Если журнал регистрации не вёл записи, то стандартными средствами — нет. Альтернативы:
- Проверьте историю изменений документа (если он редактировался).
- Используйте SQL-запрос к таблице
_DocumentLog(для клиент-серверного варианта). - Настройте расширение для будущего отслеживания.
Как отследить открытие документа в мобильном приложении 1С?
Мобильное приложение 1С не ведёт отдельный журнал открытий. Решения:
- Настройте синхронизацию с сервером и анализируйте логи на серверной части.
- Используйте расширение, которое будет отправлять данные об открытиях на сервер.
Ограничение: в офлайн-режиме данные об открытиях не сохраняются.
Можно ли увидеть, кто открывал документ в 1С:УТ 11, если он не был изменён?
В 1С:Управление торговлей 11 стандартный журнал регистрации фиксирует открытия документов только если:
- Уровень детализации установлен на "Максимум".
- Документ открывался в карточке (не в списке).
Если эти условия не выполнены, используйте расширение или SQL-запрос.
Как экспортировать историю открытий документов в Excel?
Способы экспорта:
- Через внешнюю обработку (например, "Журнал просмотра документов" с функцией экспорта).
- Из журнала регистрации: выделите нужные строки →
Ещё → Выгрузить в Excel. - Через SQL-запрос: выполните запрос в MS SQL Management Studio и экспортируйте результаты.
Есть ли разница в отслеживании для 1С 8.2 и 8.3?
Да, ключевые различия:
| Функционал | 1С 8.2 | 1С 8.3 |
|---|---|---|
| Расширения конфигурации | ❌ Нет | ✅ Да (с 8.3.10+) |
| Подписки на события | ❌ Нет | ✅ Да (с 8.3.6+) |
| Детализация журнала регистрации | Ограничена | Гибкая настройка |
В 8.2 для отслеживания открытий чаще приходится использовать SQL-запросы или модификацию конфигурации.