Работа с PerCo своими силами
Учетные задачи - Учет рабочего времени
Сейчас предлагаются различные готовые модули для работы 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-мя видами операций (Первичная выдача пропуска, замена пропуска, изменение прав и изъятие карты) и два регистра сведений: в один попадают строки подключения для разных организаций, в другой пишу права доступа. Как видно на скриншоте, при создании документа загружается полное дерево прав доступа и контроллеры к ним, в этом дереве пользователь может галочками расставлять права доступа.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Внешние источники данных Разработчик Аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)
Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.
35000 руб.
15.11.2022 33883 53 49
Монитор заказов Оптовая торговля Розничная торговля Учет рабочего времени Логистика, склад и ТМЦ Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)
Модуль для комплексного управления логистикой в 1С. Расширение совместимо с любыми конфигурациями от 1С:УНФ до 1С:УТ и ERP
105000 руб.
11.08.2016 68899 50 62
Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
85400 руб.
05.10.2022 14616 17 8
Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Аналитик Пользователь Руководитель проекта 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)
Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.
15500 руб.
01.11.2012 108904 137 1
Печатные формы Учет рабочего времени Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Автомобили, автосервисы Транспорт, автопарки, такси Россия Бухгалтерский учет Управленческий учет Платные (руб)
Расширение для 1С:Бухгалтерии 3.0, 1С:УНФ 3.0, 1С:Управления торговлей 11.5 и 11.6, 1С:Комплексной автоматизации 2.5 и 1С:ERP 2.5. Путевые листы по приказу Минтранса № 390, восемь бланков путевых листов (4-С, 4-П, 3, 3 спец., 6 спец., ПГ-1, ЭСМ-2, ЭСМ-7), расход топлива по нормам АМ-23-р, остатки в баке, выручка и начисления водителям. ЭТрН и ЭПЛ — документами самой 1С или файлами в форматах ФНС. Код открыт.
9760 руб.
03.07.2018 46324 230 126
Розничная торговля Внешние источники данных Разработчик Бухгалтер 1С:Предприятие 8 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Бухгалтерский учет Управленческий учет Платные (руб)
Загрузка данных продаж и инкассаций из сервисов Kit Vending/Kit Shop в 1С. Реализовано в виде Расширения. Мониторинг состояний торговых автоматов.
12200 руб.
10.06.2019 34703 49 25
Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)
Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.
25620 руб.
23.07.2025 8024 18 0
Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
122000 руб.
19.08.2020 30681 28 3
Сейчас занимаюсь примерно тем же, связываю КПП с 1С.
Жаль конечно, что не поделились конфигурацией пусть даже пиленной-перепиленной )))
Есть пара вопросов, если не сложно ответьте пожалуйста.
1) Как добавляете новое подразделение в иерархию? Разобрался, что таблица подразделений SUBDIV_REF, но не понятно что за столбцы N_LEFT и N_RIGHT. И где присваивается родительский элемент?
2) Какими запросами присваиваете права? Там какая то каша из соединений таблиц: ACCESS_GROUPS, STAFF_CARDS_AREAS_DEVICE, ACCESS_GROUPS. Как строете дерево подразделений?
3) Получение всех проходов сотрудников по запросу, насколько я понимаю:
Верно ли?
Обращение в тех поддержку результатов не принесло. Поэтому сам ковыряюсь. Тяжело, когда ты не знаешь для чего та или иная таблица была задумана авторами.
Благодарю за любую помощь.
Все изменения произвожу запросами в которых создаю, изменяю, блокирую пропуски, создаю новых сотрудников и т.д. SDK используется лишь для передачи данных в аппаратуру.
Работает все очень быстро и без проблем.
То есть если добавить или изменить запись в таблице STAFF_CARDS_AREAS_DEVICE, то автоматом происходит обмен с контроллерами?
Я написал компоненту на NativeAPI, которая выполняет SELECT-запрос и сохраняет его результаты в XML-файле для последующего чтения из 1С.
В Delphi для доступа к FireBird есть набор компонент "InterBase", и используется только GDS32.DLL (либо FBClient.DLL), и ничего устанавливать не нужно, даже если сам FireBird и его база установлены и находятся на удаленном сервере...
Есть в планах поделиться тут :-)
Функция ПеревестиКодыКарт(ТЗ)
Для каждого Строка из Тз Цикл
Код = Строка.КодКарты;
Запятая = СтрНайти(Код, ",");
Если Запятая = 0 Тогда
Сообщить("Неверный код карты " + Строка.Сотрудник + ": " + Строка.КодКарты);
Продолжить;
КонецЕсли;
ЛевЧасть = Число(Лев(Код, Запятая - 1));
ПравЧасть = Число(Сред(Код, Запятая + 1));
Лев = Прав("00" + Из_10_В_Любую(ЛевЧасть), 2);
Прав = Прав("0000" + Из_10_В_Любую(ПравЧасть), 4);
Итог = "" + Лев + Прав;
Строка.КодКарты10 = Из_Любой_В_10(Итог);
Сообщить("" + Код + Символы.Таб + СтрЗаменить(Строка.КодКарты10, Символы.НПП, ""));
КонецЦикла;
КонецФункции
Функция Из_10_В_Любую(Знач Значение=0,Нотация=16) Экспорт
Если Нотация<=0 Тогда Возврат("") КонецЕсли;
Значение=Число(Значение);
Если Значение<=0 Тогда Возврат("0") КонецЕсли;
Значение=Цел(Значение);
Результат="";
Пока Значение>0 Цикл
Результат=Сред("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Значение%Нотация+1,1)+Результат;
Значение=Цел(Значение/Нотация) ;
КонецЦикла;
Возврат Результат;
КонецФункции
//_________________________________________________________
Функция Из_Любой_В_10(Знач Значение="0",Нотация=16) Экспорт
Если Нотация<=0 Тогда Возврат(0) КонецЕсли;
Значение=СокрЛП(Значение);
Если Значение="0" Тогда Возврат(0) КонецЕсли;
Результат=0;
Длина=СтрДлина(Значение);
Для Х=1 По Длина Цикл
М=1;
Для У=1 По Длина-Х Цикл М=М*Нотация КонецЦикла;
Результат=Результат+(Найти("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Сред(Значение,Х,1))-1)*М;
КонецЦикла;
Возврат Окр(Результат);
КонецФункции
ПоказатьКод перевода из десятичной системы в шестнадцатиричную и обратно взят отсюда:
//Функция переводит в десятиричное
Функция ИзХСчислВЧисло(аф,Шаблон) Экспорт
аф = ВРег(аф); // на всякий случай.
ДлинаШаблона = СтрДлина(Шаблон);
ДлинаСтроки = СтрДлина(аф);
Результат = 0;
Для ТекСимвол = 1 По ДлинаСтроки Цикл
ОбрабатываемыйСимвол = Сред(аф, ТекСимвол,1);
ПозицияВШаблоне = Найти(Шаблон,ОбрабатываемыйСимвол)-1;
Результат = Результат * ДлинаШаблона + ПозицияВШаблоне;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ТекстВЧислоМК(текстоваяСтрокаМК) Экспорт
Число16Ричное1=Из_Число_В_XСчисл(Число(Лев(текстоваяСтрокаМК,СтрНайти(текстоваяСтрокаМК,",")-1)),"0123456789ABCDEF");
Число16Ричное2=Из_Число_В_XСчисл(Число(Сред(текстоваяСтрокаМК,СтрНайти(текстоваяСтрокаМК,",")+1)),"0123456789ABCDEF");
Возврат ИзХСчислВЧисло(Число16Ричное1+Число16Ричное2,"0123456789ABCDEF");
КонецФункции
Функция ЧислоВТекстМК(ЧисловаяСтрокаМК) Экспорт
Число16Ричное=Из_Число_В_XСчисл(ЧисловаяСтрокаМК,"0123456789ABCDEF");
НомерОбъекта=ИзХСчислВЧисло(Лев(Число16Ричное,2),"0123456789ABCDEF");
НомерДоступа=ИзХСчислВЧисло(Сред(Число16Ричное,3),"0123456789ABCDEF");
Возврат ДобавитьЛидирующиеНули(Формат(НомерОбъекта,"ЧГ=0"),3)+","+ДобавитьЛидирующиеНули(формат(НомерДоступа,"ЧГ=0"),5);
КонецФункции ПоказатьА в какой таблице Perco хранит ссылку на карту, которую использовали при проходе? Ну то есть если смотреть таблицу TABLE_INTERMEDIATE, то в ней просто STUFF_ID, а у меня у сотрудника может быть несколько карт и все активные.
Подскажите. Благодарю
У меня с должностями есть проблема, как по всем этим таблицам понять последнюю должность человека т.е. актуальную.
Если это действительно все дубли, то схлопнуть их запросом можно через 1с, можно через IBexpert. А потом уже перед выгрузкой в Перко проверять если есть должность с таким ID, то не добавлять запись. У вас же наверное в коде где то выполняется запрос на добавление должности в таблицу.
Просто я с perco через файл БД делаю сейчас, без использования API
Желательно не кодом 1С, а просто "логику" как это сделать, по тому, что доступа к 1С у нас нет.
А "весь этот путь проделывать" надо по тому, что сторонняя организация запросила эти данные для работы своей программы, и они предоставили вид кода карты(формат в котором они хотят его видеть). Вот по этому приходится преобразовывать то, что хранится в БД в тот формат, который у нас запросили. А доступ к БД, где всё это хранится (чтобы они сами там думали как это преобразовывать), выдать не можем из-за защиты данных.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 154693
Создание 03.10.12 17:43
Обновление 03.10.12 13:41
Просмотры 40488
Загрузки 0
Рейтинг
30
Комментарии 43
Код открыт Не указано
Рубрики Внешние источники данных Учет рабочего времени
Кому
Системный администратор
,
Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
