Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 и 8.0



Волшебство программирования на 1С:Предприятие 7.7 и 8.0

v8: Авторство обьектов в базе

Добавление в конфигурацию регистрацию, хранение и получение информации о том, кто и когда создавал и редактировал объекты.Автор статьи: PR
Последняя редакция №1 от 16.03.07
URL: http://kb.mista.ru/article.php?id=501

Ключевые слова: Автор, редактор, создание, пользователь


Часто клиент в лице генерального директора, главного бухгалтера или какого-либо другого представителя фирмы просит вещи, связанные с определением того, кто из пользователей и когда создал или отредактировал  какой-либо элемент справочника, документ, запись в регистре сведений и т. д.
Обычно это “разбор полетов” с поиском виновных или разделение прав на объекты по пользователям.
Также можно упомянуть об анализе активности пользователей, выявлении пиков и спадов работы пользователей, построение отчетов с использованием этой информации и т. д.

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

Что же требуется для того, чтобы, скажем, добавить в конфигурацию регистрацию, хранение и получение информации о том, кто и когда создавал объект и кто и когда его последним редактировал?
Для полноты картины предположим также, что у нас несколько распределенных баз данных, список которых хранится в плане обмена “РаспределенныеБазы”.

Итак, для этого нам потребуется несколько вещей.

Во-первых, создать справочник “Пользователи”, если его нет.

Во-вторых, настроить авторизацию пользователей, то есть при запуске программы присваивать параметру сеанса “ТекущийПользователь” элемент справочника “Пользователи”, соответствующий текущему пользователю в конфигураторе.
Пример такой авторизации можно посмотреть в статье Книга знаний: v8: Авторизация пользователей при входе в программу.
Параметр сеанса вместо глобальной переменной лучше использовать хотя бы по двум причинам, это возможность завязки RLS на текущем пользователе и возможность вместо

#Если Клиент Тогда

    ТекущийПользователь = глТекущийПользователь;

#Иначе

    ТекущийПользователь = глОпределитьТекущегоПользователя();
#КонецЕсли


писать

ТекущийПользователь = ПараметрыСеанса. ТекущийПользователь;


В-третьих, в каждый объект метаданных, для которого предполагается делать требуемую функциональность, добавить реквизиты “Автор” и “Редактор” типа “Справочник.Пользователи”, “ДатаСоздания” и “ДатаРедактирования” типа “Дата+Время” и “РаспределеннаяБазаСоздания” и “ РаспределеннаяБазаРедактирования” типа “ПланОбмена. РаспределенныеБазы”.

В-четвертых, в модуль каждого объекта в обработчик “ПередЗаписью” прописать заполнение этих реквизитов.
Делается это с помощью примерно такого кода

Если ЭтоНовый() Тогда
    Автор = ПараметрыСеанса.ТекущийПользователь;
    ДатаСоздания = ТекущаяДата();
    РаспределеннаяБазаСоздания = ПланыОбмена.РаспределенныеБазы.ЭтотУзел();
Иначе
    Редактор = ПараметрыСеанса.ТекущийПользователь;
    ДатаРедактирования = ТекущаяДата();
    РаспределеннаяБазаРедактирования = ПланыОбмена.РаспределенныеБазы.ЭтотУзел();
КонецЕсли;



Собственно, на этом все.

Работа для программистов 1С

Не нам вам рассказывать, что заработная плата — далеко не единственная мотивация для программистов 1С. Важен профессиональный и карьерный рост.

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

Вам хочется, чтобы работа была не только хорошо оплачиваемой, но и интересной?

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

Мы хотим вам предложить именно это!

Наша компания - «1-й Архитектор бизнеса» - уже 10 лет на рынке, входит в тройку лидеров 1С:Франчайзи по России. Более 3000 предприятий являются нашими постоянными клиентами. На данный момент у нас 3 офиса в Москве, и мы не планируем на этом останавливаться.

Все вышеописанное позволяет нам гарантировать нашим сотрудникам 100% загрузку и возможность повышения уровня квалификации.

Обращаем ваше внимание, что мы готовы работать как с матерыми супер-специалистами, так и с теми, кто хочет ими стать. Наши сотрудники могут бесплатно пройти обучение в учебном центре компании.

Итак:


Ну что, вы определились?
Мы ждем вашего звонка!
или заполните анкету на нашем сайте www.1ab.ru!
тел. (495) 937-66-35, rabota@1ab.ru

Официальный сайт рассылки - www.mista.ru
Волшебный форум -
www.forum.mista.ru
Книга знаний - www.kb.mista.ru

С уважением,
Станислав Митичкин (Волшебник)
stasmit@mail.ru



В избранное