Работа с 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-мя видами операций (Первичная выдача пропуска, замена пропуска, изменение прав и изъятие карты) и два регистра сведений: в один попадают строки подключения для разных организаций, в другой пишу права доступа. Как видно на скриншоте, при создании документа загружается полное дерево прав доступа и контроллеры к ним, в этом дереве пользователь может галочками расставлять права доступа.


