×
Показано с 1 по 2 из 2
  1. #1
    Статья
    Гость

    Статья: Реализация системы логирования для 1С(SQL)


    <p>Скорее всего многие сталкивались с ситуациями когда шеф просит выяснить кто
    сделал изменения в документе в результате которых фирма потеряла деньги. Другая
    ситуация когда программист пытается доказать пользователю что это он сделал
    изменения а пользователь в свою очередь говорит, что это несовершенная программа
    выполнила эти изменения. Бывают ситуации когда необходимо кого-то поймать на
    воровстве, манипуляции с данными в БД. Иногда просто необходимо получить список
    измененных объектов в той последовательности в которой они изменялись. Все
    эти ситуации попадают под разряд решений аудита и логирования. </p>
    <p>Я не буду в этой статье говорить о всех недостатках существующей системы аудита
    в 1С. Она не выдерживает никакой критики. Пользы практически никакой. </p>
    <p>В этой статье я хочу рассказать об системе логирования для БД под 1С 7.7.(SQL).
    Для начала пожалуй стоит остановится на системе идентификации пользователей
    в среде MSSQL в контексте работы под 1С. Эта статья не про безопасность в среде
    1С поэтому просто расскажу про две возможные реализации идентификации пользователей. </p>
    <p><strong>Первая реализация- </strong></p>
    <p>Создаем линовочную таблицу в которой будет два поля (spid - процесс пользователя
    ,username - имя пользователя(предпочтительно NT)). При начале работы системы
    1С в соответствующей процедуре прописываем процедуру которая будет делать запись
    в линковочную таблицу о соответствии пользователя к процессу. Таким образом
    в дальнейшем при обработке триггера мы сможем из этой таблицы по процессу @@spid
    получить соответствующего ему пользователя. </p>
    <p><strong>Вторая реализация- </strong></p>
    <p>Меняем в библиотеке bkend.dll строку коннекта заменяя server=%s;uid=%s;pwd=%s;
    на trusted_connected=yes; Таким образом все пользователи будут входить с Window
    NT authorization. Это нам дает возможность в триггере идентифицировать пользователя.
    Нужно сказать что такой способ дает еще ряд преимуществ - например при работе
    в терминале можно идентифицировать пользователей из Enterprize Managar. Ну
    и вообще NT безопасность на порядок выше 1С поэтому мне этот способ нравится
    больше. Правда при этой реализации нужно пользователям не забывать выдавать
    права к БД на уровне SQL(кстати используя эту технологию можно на качественно
    другом уровне решить вопросы безопасности в 1С но это пожалуй материал другой
    статьи). А также не забывать использовать хранимые процедуры типа sp_addalias... </p>
    <p>Следующий шаг это реализация собственно самой системы логирования. Реализовать
    ее можно несколькими способами например прописав модулях документов соответствующие
    процедуры которые будут делать записи об изменениях. Но эта технология не надежная
    и неэффективная по ряду причин. По этому остановлюсь на другой технологии.
    Лог таблица-ы об изменениях будет вестись на основании отработки триггеров.

    Читать всю статью: http://www.klerk.ru/soft/1c?8776
    Поделиться с друзьями

  2. #2
    Клерк
    Регистрация
    15.04.2004
    Адрес
    Уфа
    Сообщений
    2
    "Я не буду в этой статье говорить о всех недостатках существующей системы аудита в 1С. Она не выдерживает никакой критики. Пользы практически никакой."
    - всегда легче обгадить существующее.
    1С, это вообще-то учетная система в первую очередь. И соответсвовать вашим требованиям к аудиту не обязано. Ее дело - это в первую очередь проводки, движения регистров, записи в журнале расчетов.
    Ну а если вашим требованиям она не соответствует, то можно все дописать средствами самой 1С. Недостатком вышеперечисленного подхода является то, что она уже не может быть применена в dbf-базе.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)