Каталог решений - Работа с PerCo своими силами

Работа с PerCo своими силами

Работа с PerCo своими силами

В наличии

Сейчас предлагаются различные готовые модули для работы PerCo с 1С. Но не всегда решение простых задач требует установки дополнительного модуля. Рассмотрим подключение для создания и изменения карт сотрудников.

Категория:

Описание

Сейчас предлагаются различные готовые модули для работы PerCo с 1С, как, например, вот этот http://www.perco.ru/products/sistemy-kontrolya-dostupa/sistema-kontrolya-dostupa-s-20/programmnoe-obespechenie/setevoe/1s-modul-uchet-rabochego-vremeni/. Но не всегда решение простых задач требует установки дополнительного модуля. Рассмотрим подключение для создания и изменения карт сотрудников.

Допустим перед нами стоит задача подключиться и создать новую карту (пропуск) для сотрудника. Для этого нам нужно подключится через СОМ объект к базе:

 

        БД = Новый COMОбъект(«ADODB.Connection»);
       
БД.Provider = «LCPI.IBProvider»;
       
БД.ConnectionString = стрПодключения;
        Попытка
           
БД.Open();
        Исключение
           
Сообщить(«Не удалось подключиться к БД PerCo. » + ОписаниеОшибки());
        КонецПопытки;


Соответственно необходимо, что бы был установлен IBProvider.

В строке подключения должно быть что-то такое:

 

        стрПодключения = «data source = ПутьКФайлу:\Файл.fdb; ctype = WIN1251; User ID = sysdba; Password = masterkey; auto_commit = true»;

 

Затем с помощью запросов обращаемся к базе и оперируем данными. Рассмотрим добавление карты в базу, как одно из самых простых.

 

            ЗапросНаДобавление = Новый COMОбъект(«ADODB.Recordset»);
           
ЗапросНаДобавление.ActiveConnection = БД;
           
ТекстЗапросаНаДобавление «Insert INTO STAFF (ID_STAFF, LAST_NAME, FIRST_NAME, MIDDLE_NAME, TABEL_ID, DATE_BEGIN, VALID, TEMPORARY, DELETED) » +
                                       
«VALUES (» + СокрЛП(ID_STAFF) + «, ‘» + Фамилия + «‘, ‘» + Имя + «‘, ‘» + Отчество + «‘, ‘»  + СокрЛП(ТабельныйНомер) + «‘, ‘» + ДатаБезВремени + «‘ , 1, 0, 0)»;
           
ЗапросНаДобавление.Open(ТекстЗапросаНаДобавление);
           
ЗапросНаДобавление.Close();

 

            ЗапросНаДобавлениеКарты = Новый COMОбъект(«ADODB.Recordset»);
           
ЗапросНаДобавлениеКарты.ActiveConnection = БД;
           
ТекстЗапросаНаДобавлениеКарты = «Insert INTO STAFF_CARDS (ID_CARD, STAFF_ID, VALID, DATE_BEGIN, DATE_END, TEMPORARY, DOCUMENTS_ID, HISTORY_DATE, PROHIBIT, IDENTIFIER, TYPE_IDENTIFIER, IDENTIFIER_TRANSFORMED) » +
           
«values (» + СокрЛП(ID_CARD) + «, » + ID_STAFF + «,  1, ‘» + ДатаНачалаДействия + «‘, ‘» + ДатаОкончанияДействия + «‘, 0, 0, ‘» + ТекущаяДата() + «‘, 0, ‘» + НомерКарты + «‘, 0, ‘» + НомерКарты + «‘ )»;
           
ЗапросНаДобавлениеКарты.Open(ТекстЗапросаНаДобавлениеКарты);
           
ЗапросНаДобавлениеКарты.Close();

 

Не забывайте, что мало добавить пользователя и карту, необходимо назначить ему заданные права и права доступа к контроллерам.

При замене пропуска так же нужно заменять права, при изъятии карты удаляем карту и ее права, а также помещаем карту в стоп-лист с описанием причины изъятия. В работе Вам очень пригодится программа IBExpert. В ней очень удобно просматривать таблицы, результаты своих действий, а также можно посмотреть стандартные процедуры.

 

В моем случае я создала отдельный документ с 4-мя видами операций (Первичная выдача пропуска, замена пропуска, изменение прав и изъятие карты) и два регистра сведений: в один попадают строки подключения для разных организаций, в другой пишу права доступа. Как видно на скриншоте, при создании документа загружается полное дерево прав доступа и контроллеры к ним, в этом дереве пользователь может галочками расставлять права доступа.

has been added to your cart:
Оформление заказа