Работа с журналом регистрации в 1С:Предприятии 7.7 часто вызывает сложности из-за специфического формата файла 1Cv7.mlg и отсутствия удобных встроенных средств для глубокого анализа. Если перед вами встала задача выявления пользователей, вносящих правки в закрытые периоды, давайте разберем, как подойти к этой проблеме системно.
Стандартный журнал регистрации 1С 7.7 представляет собой текстовый файл, который при активной работе пользователей быстро растет. Ручной просмотр такого лога практически невозможен. Для автоматизации процесса мы можем воспользоваться готовыми внешними обработками. Рассмотрим основные способы доступа к этим данным:
1Cv7.mlg, отфильтровать записи по дате, пользователю или виду документа. Это позволяет быстро найти момент, когда конкретный документ был изменен.ПоставщикДанных.Журнал. Данный инструмент позволяет обращаться к журналу как к источнику данных, что значительно упрощает написание алгоритмов поиска и отчетов для анализа активности пользователей.Анализ журнала — это лишь способ «постфактум» узнать о проблеме. Чтобы предотвратить изменение документов, рассмотрим более надежные архитектурные методы:
Первый и самый надежный способ — это использование механизма запрета редактирования. Мы рекомендуем реализовать «граничную дату», при достижении которой платформа 1С 7.7 автоматически блокирует любые изменения в документах за прошлые периоды. Это снимает необходимость в постоянном мониторинге, так как система сама пресекает несанкционированные действия на уровне платформы.
Поскольку журнал регистрации можно очистить или повредить, мы можем реализовать собственный механизм аудита. Разберем создание дополнительного механизма в коде конфигурации:
При записи документа мы можем принудительно фиксировать изменения. Для этого используем предопределенную процедуру ПриЗаписи() в модуле документа. Рассмотрим пример реализации:
Процедура ПриЗаписи()
// Сохраняем информацию об изменении в отдельный текстовый файл или таблицу
ТекстЛога = СоздатьОбъект("Текст");
ТекстЛога.ДобавитьСтроку("Документ изменен: " + ТекущаяДата() + " " + ТекущееВремя());
ТекстЛога.ДобавитьСтроку("Пользователь: " + ИмяПользователя());
ТекстЛога.Записать("C:\Logs\Changes.txt");
КонецПроцедуры
Этот метод позволяет создать независимый от системного журнала реестр изменений, который невозможно удалить стандартными средствами очистки логов 1С.
Если ваша база работает на SQL-версии, мы рекомендуем анализировать изменения непосредственно на уровне базы данных. В случае файловой версии 1С 7.7 (DBF) существуют сторонние библиотеки, позволяющие считывать структуру данных напрямую. Однако будьте осторожны: если пользователь меняет данные через стороннюю обработку, минуя платформу 1С, записи в стандартном 1Cv7.mlg не появится. Именно поэтому контроль прав доступа в конфигураторе является первичным этапом защиты.
Анализируя ситуацию, мы видим, что главная проблема заключается в том, что стандартный журнал:
Для решения вашей задачи мы предлагаем двигаться по пути комбинирования инструментов: используйте ПоставщикДанных для анализа текущего состояния журнала и внедрите жесткую дату запрета редактирования для предотвращения изменений в будущем. Такой подход обеспечит прозрачность работы системы и дисциплину пользователей.