0. Nas'ka 97 03.10.12 13:14 Сейчас в теме

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

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. DimaP 56 03.10.12 18:42 Сейчас в теме
Хорошо... В старой системе через эксель из перки выгружали, а потом в 1С
2. Wanderer.nk 18 10.10.12 09:16 Сейчас в теме
Можно попросить у Вас конфигурацию для выдачи карт?
3. Nas'ka 97 10.10.12 09:21 Сейчас в теме
(2) Wanderer.nk, что Вы имеете ввиду?
7. Wanderer.nk 18 10.10.12 18:07 Сейчас в теме
(3) Посмотрел внимательнее на скриншоты и понял, что Вы в УПП запихнули это. Это сделано внешней обработкой?
8. Nas'ka 97 10.10.12 18:16 Сейчас в теме
(7) Wanderer.nk, да УПП, нет документ
9. Wanderer.nk 18 10.10.12 18:22 Сейчас в теме
(8) эх, буду сам вписывать в свою конфу. За код и идею спасибо - самому в голову не пришло что-то, а родной софт удручает. Особенно печать бейджиков за 4000 руб.
10. Nas'ka 97 10.10.12 18:49 Сейчас в теме
(9) Wanderer.nk, успехов в Ваших начинаниях. Конфой не делюсь, сами наверное понимаете почему =) Все пилено-перепилено.
12. Diversus 2051 29.12.12 12:10 Сейчас в теме
(10) Уважаемый автор!
Сейчас занимаюсь примерно тем же, связываю КПП с 1С.
Жаль конечно, что не поделились конфигурацией пусть даже пиленной-перепиленной )))

Есть пара вопросов, если не сложно ответьте пожалуйста.
1) Как добавляете новое подразделение в иерархию? Разобрался, что таблица подразделений SUBDIV_REF, но не понятно что за столбцы N_LEFT и N_RIGHT. И где присваивается родительский элемент?

2) Какими запросами присваиваете права? Там какая то каша из соединений таблиц: ACCESS_GROUPS, STAFF_CARDS_AREAS_DEVICE, ACCESS_GROUPS. Как строете дерево подразделений?

3) Получение всех проходов сотрудников по запросу, насколько я понимаю:
SELECT * FROM REG_EVENTS WHERE (identifier is not null) and (identifier <> 0) ORDER BY ID_REG

Верно ли?

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

Благодарю за любую помощь.
13. Diversus 2051 27.03.13 12:57 Сейчас в теме
+(12) У меня получилось привязать это все к своей конфигурации. Единственное с чем столкнулся: необходимо все же использовать SDK от PerCo.
14. Nas'ka 97 27.03.13 13:01 Сейчас в теме
(13) Прошу прощения за то, что молчала. Да, без модуля SDK не происходит передачи в аппаратуру. Да и в принципе с SDK не нужно громоздких запросов.
15. Diversus 2051 27.03.13 13:09 Сейчас в теме
(14) Я пробовал сделать все через SDK, но при таком подходе работа из 1С становится невыносимо долгой... Поэтому остановился на комбинированном варианте.
Все изменения произвожу запросами в которых создаю, изменяю, блокирую пропуски, создаю новых сотрудников и т.д. SDK используется лишь для передачи данных в аппаратуру.

Работает все очень быстро и без проблем.
4. Walker.pro 10.10.12 09:48 Сейчас в теме
Насколько я понимаю, в PERCO после изменения таблиц нужно еще производить обмен с аппаратурой. Какой командой Вы это делаете?
5. Nas'ka 97 10.10.12 09:59 Сейчас в теме
(4) Walker.pro, Если вы имеете ввиду сами контроллеры, то при назначении прав, пишу еще в STAFF_CARDS_AREAS_DEVICE
6. Walker.pro 10.10.12 15:10 Сейчас в теме
(5)
То есть если добавить или изменить запись в таблице STAFF_CARDS_AREAS_DEVICE, то автоматом происходит обмен с контроллерами?
11. DrAku1a 1306 08.11.12 07:55 Сейчас в теме
Эх... Опять что-то устанавливать...
Я написал компоненту на NativeAPI, которая выполняет SELECT-запрос и сохраняет его результаты в XML-файле для последующего чтения из 1С.
В Delphi для доступа к FireBird есть набор компонент "InterBase", и используется только GDS32.DLL (либо FBClient.DLL), и ничего устанавливать не нужно, даже если сам FireBird и его база установлены и находятся на удаленном сервере...
Есть в планах поделиться тут :-)
16. Aleksey58 23.06.14 11:32 Сейчас в теме
Может немножко не по теме, но возникла задача сделать выгрузку из БД firebird СКУД Реверс, нужно вытащить из нее отчет прохода сотрудников, как можно определить какие таблицы нужно использовать, в самой клиентской программе приложение отчет написано сыровато, фильтры в ней не работают. Может кто-то работал с этой БД?
17. kazakoff 08.07.15 11:30 Сейчас в теме
Может кто выложить SDK хочу на него посмотреть?
18. ilychuk 11.03.19 15:14 Сейчас в теме
А может кто из гуру подскажет где в базе PERCo хранятся значения семейства и самого номера карточки. Пока нашел только идентификатор
19. gospodenkods 12.06.19 08:20 Сейчас в теме
20. ilychuk 12.06.19 16:58 Сейчас в теме
(19)да. Там не хранится семейство и номер, а хранится идентификатор который получается преобразованием семейства и номера через шестнадцатеричную систему
21. svilsa 2 10.07.19 16:54 Сейчас в теме
(18) Нашли как получить идентификатор карты по коду?
22. svilsa 2 10.07.19 17:24 Сейчас в теме
(21)Нашелся пример: вот онлайн конвертер: http://guardsaas.com/ru/content/keycode
23. ilychuk 11.07.19 18:50 Сейчас в теме
(21)да. Есть функции на c# для преобразования кода и семейства в идентификатор и наоборот. Могу поделиться
24. svilsa 2 15.07.19 10:56 Сейчас в теме
(23)Спасибо, нашелся алгоритм на 1С перевода кодов карт RFID в десятичную систему как хранятся в БД Perco:
Функция ПеревестиКодыКарт(ТЗ)
	Для каждого Строка из Тз Цикл
		Код = Строка.КодКарты;
		Запятая = СтрНайти(Код, ",");
		Если Запятая = 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)*М;
     КонецЦикла;
     Возврат Окр(Результат);
 КонецФункции
Показать


Код перевода из десятичной системы в шестнадцатиричную и обратно взят отсюда: Перевод
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день

Ведущий программист 1С; Оплачиваемый переезд в Ростов-на-Дону
Краснодар
зарплата от 50 000 руб. до 120 000 руб.
Полный день

Ведущий программист 1С; Оплачиваемый переезд в Ростов-на-Дону
Екатеринбург
зарплата до 120 000 руб.
Полный день

Ведущий программист 1С
Ростов-на-Дону
зарплата от 50 000 руб. до 120 000 руб.
Полный день

Консультант 1С
Москва
зарплата от 100 000 руб. до 140 000 руб.
Временный (на проект)