Получение данных из СКУД Сигур (бывш. Сфинкс)

13.10.17

Интеграция - Внешние источники данных

Обработка содержит функции получения данных из СКУД Сигур (бывш. Сфинкс) хранящиеся в MySQL. Пример позволяет получать информацию по сотрудникам в заданных отделах и по нахождению на рабочем месте. Обработка тестировалась на последней версии 1С (8.3.10.2561) и Win Server 2012 R2, использует только стандартные возможности платформы 1С + драйвер для СУБД MySQL.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка получения данных из СКУД Сигур (бывш. Сфинкс)
.epf 17,45Kb ver:0.1
109
109 Скачать (1 SM) Купить за 1 850 руб.

Обработка содержит функции получения данных из СКУД Сигур (бывш. Сфинкс) хранящиеся в MySQL.

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

Обработка тестировалась на версии 1с (8.3.10.2561) и Win Server 2012 R2, использует только стандартные возможности платформы 1с + драйвер для СУБД MySQL. Создавалась для самописной конфигурации.

Внимание, если вам интересно получать информацию по номерам карточек отличных от стандарта Wiegand-26 (код карты вида XXX,YYYYY) - допишите процедуру "РасшифроватьКарту(Код)", на вход она получает HEX значение из БД. Если вам не интересна информация по номерам карт, то на остальном функционале это никак не отразиться. 

 
 Переменные

Примеры использования:

 
 Примеры использования

Конструктор и деструктор

Использование обработки всегда должно начинаться с вызова конструктора!
 

...
Сигур    = Обработки.Сигур.Создать();
Если Не Сигур.Конструктор(Драйвер) Тогда Возврат КонецЕсли;
...
Сигур.Деструктор();
...
 
 Листинг конструктора и деструктора

Основные функции:

ВыполнитьЗапрос()

ПолучитьСотрудников()

ПолучитьПосещаемость()

 
 Листинг основных функций

ЕСЛИ У ВАС ВОЗНИКЛИ ВОПРОСЫ, С УДОВОЛЬСТВИЕМ ОТВЕЧУ В КОММЕНТАРИЯХ ИЛИ ЛС

Обработка СКУД MySql СУБД Сфинкс Сигур Sigur

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20696    21    49    

38

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13748    13    48    

25

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

48000 руб.

24.04.2017    51071    101    165    

89

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    10795    13    8    

15

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    25062    23    1    

25

Производство готовой продукции (работ, услуг) Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник 1С "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

10200 руб.

24.06.2021    20712    57    53    

35
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 🅵🅾️🆇 524 19.10.17 10:14 Сейчас в теме
Обращаю внимание, что публикация упорно съедает знаки "<>" - в техпотдержку написал, надеюсь исправят.
2. 🅵🅾️🆇 524 19.10.17 15:02 Сейчас в теме
(1)Исправили, оперативненько :3
3. 🅵🅾️🆇 524 23.10.17 17:34 Сейчас в теме
Вот пример для расшировки карт в запросе для W26:

SELECT
  NAME,
  if(substr(HEX(CODEKEY), 1, 2) = 18, 
    CONCAT(
      RIGHT(CONCAT('000', CONV(substr(HEX(CODEKEY), 3, 6), 16, 10) DIV 65536),3),
      ',',
      RIGHT(CONCAT('00000', CONV(substr(HEX(CODEKEY), 3, 6), 16, 10) % 65536), 5)), 
    NULL)
FROM
  `tc-db-main`.personal
WHERE
  TYPE = 'EMP'
  AND STATUS = 'AVAILABLE'
  AND NAME LIKE '%Фамилия%'
LIMIT 10
Показать
4. 🅵🅾️🆇 524 30.10.17 12:07 Сейчас в теме
(3) А вот на примере карточки '076,07591' как "запихнуть" обратно:
CAST(UNHEX(LEFT(CONCAT('18', CONV((076*65536)+07591, 10, 16), '0000000000000000'), 16)) AS BINARY)


Может в будующем сделаю статью по загрузке данных в СКУД.

Но вообще добавление через MySQL запрос в целом выглядит следующим образом:


# Добавляем сотрудника
INS ERT INTO
  `tc-db-main`.personal
SET
  PARENT_ID=829, TYPE='EMP', NAME='<Имя>',
  DESCRIPTION='Добавлен напрямую в MySQL',
  POS='<Должность>', TABID='<Номер по табелю>', STATUS='AVAILABLE',
  CODEKEY=CAST(UNHEX(LEFT(CONCAT('18', CONV((076*65536)+07591, 10, 16), '0000000000000000'), 16)) AS BINARY),
  CODEKEY_DISP_FORMAT='W26', SOAA_KEY_STATUS='UPDATE_REQUIRED',
  CREATEDTIME='2017-10-30 10:54:23';

# Последний добавленный id
SEL ECT LAST_INSERT_ID() INTO @a;

# Добавляю разрешение на первую дверь
INS ERT INTO
  `tc-db-main`.devbindings
SET
  EMP_ID=@a,
  DEV_ID=1;

# Добавляю в режимы
INS ERT IN TO
  `tc-db-main`.rulebindings
SET
  PERSONAL_ID=@a,
  RULE_ID=1;

# Инициализирую синхронизацию бд
/*
# До этого было импортирован в бд следующий файл:
USE `TC-DB-MAIN`;
UPD ATE PARAMI SE T PARAMVALUE=1 WHERE NAME='SYNCDB_REQUEST_ENABLED';
 */
UPDATE `TC-DB-MAIN`.PARAMI SE T PARAMVALUE=1 WHERE NAME='SYNCDB_REQUEST';

#Смотрим результат
SELE CT
  *
FR OM
  `tc-db-main`.personal AS P
WHERE
  Name like '%<Имя>%'
  AND STATUS = 'AVAILABLE'
LIMIT 100

Показать


.
51. user100000 17.02.21 17:40 Сейчас в теме
(3) вот такой же код бы для w-36 увидеть
53. user100000 17.02.21 18:44 Сейчас в теме
5. Reftp 29.08.18 06:13 Сейчас в теме
Добрый день, подскажите удалось ли реализовать выгрузку фото в Сигур?
6. 🅵🅾️🆇 524 29.08.18 13:28 Сейчас в теме
(5)
Привет.
Фотки в сигуре не вели.
И Я на том месте уже не работаю.
Так что вряд ли смогу подсказать)
Но это 100% реально сделать.
7. alexander_ryzhov 04.09.18 10:57 Сейчас в теме
(5)
Выгрузку фото сделать несложно. Кроме вставки в таблицу PERSONAL надо еще добавлять строку в таблицу PHOTO, колонки:
ID - ID объекта. =PERSONAL.ID.
PREVIEW_RASTER - Уменьшенная копия фотографии в формате JPEG в цветовом пространстве RGB *1.
HIRES_RASTER - Полноразмерная фотография в формате JPEG в цветовом пространстве RGB *1.
TS - «Версия фотографии». Целое число, которое меняется тогда и только тогда, когда меняется сама фотография (поля _RASTER). Может быть, например, хешем от изображения или временем его создания. Используется в работе кеша фотографии на стороне клиентских мест, а также кеша биометрических дескрипторов, которые строятся системой автоматически для добавляемых или изменяемых фотографий.

*1 Уменьшенная копия фотографии используется в интерфейсе системы там, где область ее отображения минимальна. Рекомендуется в качестве уменьшенной копии записывать версию фотографии, не превышающую размера 256x256 пикселей, в качестве полноразмерной — не превышающую размера 1920x1080 пикселей.
Допускается записывать в качестве уменьшенной копии тоже самое, что и в качестве полноразмерной, в т.ч. изображение достаточно большого размера.
8. Kontakt 109 11.10.18 14:12 Сейчас в теме
Просто достать все карты за период в формате 000,0000. время входа, выхода. справочник персонал не ведется.
Знаем только номер карты. пример 000,12345.
Хотим получить данные по этой карте.

например запрос
select id,logtime,devhint,logdata,ord(substr(logdata,5,2)) as dir from logs where substr(logdata,1,2)=0xFE07

известен только номер xxx,12345
9. 🅵🅾️🆇 524 11.10.18 14:16 Сейчас в теме
10. Kontakt 109 11.10.18 14:43 Сейчас в теме
11. Kontakt 109 11.10.18 14:56 Сейчас в теме
if(substr(HEX(logdata), 1, 2) = 18,
CONCAT(
RIGHT(CONCAT('000', CONV(substr(HEX(logdata), 3, 6), 16, 10) DIV 65536),3),
',',
RIGHT(CONCAT('00000', CONV(substr(HEX(logdata), 3, 6), 16, 10) % 65536), 5)),
NULL)

а что данное условие делает? substr(HEX(logdata), 1, 2) = 18
12. Kontakt 109 11.10.18 15:01 Сейчас в теме
(11)
substr(HEX(logdata), 1, 2)


разобрался.
Может помнишь как достать из 0xFE0700010103000000001800F20C00000000FFFF код карты 000,61664
13. 🅵🅾️🆇 524 11.10.18 16:35 Сейчас в теме
(12)
Насколько помню, проверяет является ли карта в формате Wiegand-26, в противном случае возвращает null, но это было давно и не правда.

Вот как расшифровать в mysql запросе:
SEL ECT
  NAME,
  if(substr(HEX(CODEKEY), 1, 2) = 18, 
    CONCAT(
      RIGHT(CONCAT('000', CONV(substr(HEX(CODEKEY), 3, 6), 16, 10) DIV 65536),3),
      ',',
      RIGHT(CONCAT('00000', CONV(substr(HEX(CODEKEY), 3, 6), 16, 10) % 65536), 5)), 
    NULL)
FR OM
  `tc-db-main`.personal
WHERE
  TYPE = 'EMP'
  AND STATUS = 'AVAILABLE'
  AND NAME LIKE '%Фамилия%'
LIMIT 10
Показать

Смысл тут - взять кусочек HEX, превратить его в число. Поделить на 65536 и записать в формате 000
Затем взять еще кусочек HEX, снова в число, получить остаток от деления на 65536 и записать в формате 00000
Затем объединить это дело в 000,00000


Вот так функцией 1с:
// Алгоритм дан только для карт Wiegand-26
Функция РасшифроватьКарту(Знач Код)
	Если ТипЗнч(Код) = Тип("Строка") 
	И Лев(Код, 2) = "18" Тогда // Wiegand-26
		Код	= ЛюбаяДес(Сред(Код, 3, 6), 16);
		Возврат СтрШаблон("%1,%2",
						Формат(Цел(Код/65536), "ЧЦ=3; ЧВН=; ЧГ=0"),
						Формат(Код%65536, "ЧЦ=5; ЧВН=; ЧГ=0"));
	Иначе
		Возврат Неопределено;
	КонецЕсли;	
КонецФункции // РасшифроватьКарту()
Показать
14. Re:аниматор 338 02.11.18 11:03 Сейчас в теме
Нет функций
СтрШаблон()
СтрРазделить()
15. 🅵🅾️🆇 524 02.11.18 11:07 Сейчас в теме
(14) У вас очень старая платформа?
СтрШаблон - подставляет параметры в строку. Аналог в других языках - format
СтрРазделить - разбивает строку в массив подстрок по заданому разделителю. Аналог в других языках - split
16. Re:аниматор 338 02.11.18 11:13 Сейчас в теме
(15) 1С:Предприятие 8.3 (8.3.9.2170)
17. 🅵🅾️🆇 524 02.11.18 11:14 Сейчас в теме
(16) http://v8.1c.ru/o7/201408str/index.htm
Значит режим совместимости стоит)
18. Re:аниматор 338 02.11.18 11:14 Сейчас в теме
Понял режим совместимости Версия 8.2.13
19. Re:аниматор 338 02.11.18 11:15 Сейчас в теме
Функция СтрРазделить(Строка, Разделитель, ВключатьПустые = Ложь)
    МассивЗначений = Новый Массив();
    Символ = Найти(Строка, Разделитель);
    Пока Символ > 0 Цикл
        Если ВключатьПустые или (СтрДлина(Лев(Строка, Символ - 1)) > 0) Тогда
            МассивЗначений.Добавить(Лев(Строка, Символ - 1));
        КонецЕсли;
        Строка = Прав(Строка, СтрДлина(Строка) - Символ);
        Символ = Найти(Строка, Разделитель);
    КонецЦикла;
    Если (ВключатьПустые или СтрДлина(Строка) > 0) Тогда
        МассивЗначений.Добавить(Строка);
    КонецЕсли;
    Возврат МассивЗначений;
КонецФункции
Показать
20. 🅵🅾️🆇 524 02.11.18 11:16 Сейчас в теме
(19) Ну да, можете поискать эти функции в общем модуле бсп по работе со строками.
Но с 8.3.6 это включено в платформу.
Re:аниматор; +1 Ответить
21. Re:аниматор 338 02.11.18 11:17 Сейчас в теме
СтрШаблон заменил на СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку()
22. Re:аниматор 338 02.11.18 11:20 Сейчас в теме
СтрРазделить это СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок()
23. Re:аниматор 338 09.12.18 14:06 Сейчас в теме
(0) Подскажите как называется имя базы по умолчанию? Представители установили, а имя базы для подключения не знают, доступа у меня к серверам нет.

Сервер = есть
Порт = есть
Имя Базы = НЕТ
Пользователь = есть
Пароль = есть
24. 🅵🅾️🆇 524 09.12.18 14:08 Сейчас в теме
(23)

`tc-db-main` - справочники
`tc-db-log` - события
Re:аниматор; +1 Ответить
25. user869223 01.03.19 15:17 Сейчас в теме
Здравствуйте. Подскажите, пожалуйста, где хранятся номера пропусков, если пропуск не один? В таблице personal хранится только одна запись по сотруднику. Соответственно, одна запись CODEKEY и одно значений пропуска. В самом приложении СИГУР вводим по сотруднику несколько пропусков. Как найти номер второго пропуска?
26. 🅵🅾️🆇 524 01.03.19 15:20 Сейчас в теме
(25) Привет, честно говоря, не помню и сугура под рукой нет уже давно.
Но точно получал и выводил несколько пропусков по сотруднику.
Возможно в списке сотрудников по одному человеку прям несколько записей.
27. user869223 01.03.19 16:03 Сейчас в теме
(26)Запросом по сотруднику только одну строку получаем. И ID сотрудника - это ключевое поле по таблице.
28. 🅵🅾️🆇 524 01.03.19 16:04 Сейчас в теме
29. user869223 04.03.19 11:18 Сейчас в теме
Все оказалось очень просто: первый пропуск хранится в таблице Personal. Все последующие номера пропусков находятся в таблице personal_key.
🅵🅾️🆇; +1 Ответить
30. 4iga-buga 28.03.19 08:34 Сейчас в теме
"ЛюбаяДес " что за функция?
31. 🅵🅾️🆇 524 28.03.19 09:48 Сейчас в теме
(30) Перевод в десятичную систему счисления из шестнадцатиричной.
32. 4iga-buga 28.03.19 12:10 Сейчас в теме
А можете помочь с преобразованием номера карты em-marine вида "0008599310" в код Wiegand "000003066E1D"?=) буду крайне признателен, самому знаний не хватает и где взять найти не могу)
33. 🅵🅾️🆇 524 28.03.19 17:57 Сейчас в теме
(32) Неа, не знаю я как формируется emmarine.
По поводу виганда - просил у саппорта СКУДа скинуть мне данные.
Они скинули экселевский файл с формулой.
34. alexander_ryzhov 01.04.19 16:28 Сейчас в теме
(32)
1) переводите 0008599310 в двоичную форму, получается:
100000110011011100001110

2) дополняете слева нулями до 24 бит:
100000110011011100001110 (в данном случае их и так было 24)

3) разбиваете по-середине на две части по 12 бит:
100000110011 011100001110

4) считаете кол-во единиц в левой и правых частях:
100000110011 => N1=5
011100001110 => N2=6

5) C1 = N1%2, т.е. остаток от деления N1 на 2.
C1 = 1

6) C2 = (N2+1)%2, т.е. остаток от деления (N2+1) на 2.
C2 = 1

7) добававляете C1 слева двоичного представления, C2 - справа:
1 100000110011 011100001110 1

8) воспринимаете результат как 26-и битное целое, переводите его в hex:
3066E1D

9) дополняете слева нулями до 12 знаков:
000003066E1D

Очевидно же все.
ong1990; Созинов; 4iga-buga; +3 Ответить
35. 4iga-buga 02.04.19 03:17 Сейчас в теме
(34) разобрался уже, спасибо. кому нибудь точно пригодится, в инете в большинстве ресурсов как то коряво написано или не полностью
36. kievol 29.05.19 15:06 Сейчас в теме
Возможно ли с помощью данной обработки выгружать данные в табель, если да то подскажите пожалуйста как? как её применить в управляемых формах? Спасибо.
37. 🅵🅾️🆇 524 29.05.19 15:10 Сейчас в теме
(36) Это скорее полуфабрикат для разработчиков.
Сигурда под рукой уже с год нету.
Вообще это реализуемо естественно.
38. kievol 29.05.19 15:42 Сейчас в теме
Спасибо за ответ. Пытаюсь собрать обработку в управляемых формах на основе выложенного кода но есть проблемы с некоторыми данными, подскажите пожалуйста, чего не хватает. Заранее благодарен. Извините если вам покажется абсурдным этот вопрос, но мне очень нужен ваш ответ.
Вот ошибки;
Обработка.Сигур.Форма.Форма.Форма(118,3)}: Переменная не определена (Connection)
<<?>>Connection.Close(); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(132,62)}: Переменная не определена (Connection)
Подключение = ТипЗнч(Recordset) = Тип("COMОбъект") И ТипЗнч(<<?>>Connection) = Тип("COMОбъект"); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(155,31)}: Переменная не определена (Connection)
Recordset.Open(ТекстЗапроса, <<?>>Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(221,31)}: Переменная не определена (Connection)
Recordset.Open(ТекстЗапроса, <<?>>Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(394,31)}: Переменная не определена (Connection)
Recordset.Open(ТекстЗапроса, <<?>>Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(132,23)}: Переменная не определена (Recordset)
Подключение = ТипЗнч(<<?>>Recordset) = Тип("COMОбъект") И ТипЗнч(Connection) = Тип("COMОбъект"); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(155,2)}: Переменная не определена (Recordset)
<<?>>Recordset.Open(ТекстЗапроса, Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(221,2)}: Переменная не определена (Recordset)
<<?>>Recordset.Open(ТекстЗапроса, Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(394,2)}: Переменная не определена (Recordset)
<<?>>Recordset.Open(ТекстЗапроса, Connection, 1); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(219,11)}: Переменная не определена (Limit)
|LIMIT "+<<?>>Limit+" (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(392,11)}: Переменная не определена (Limit)
|LIMIT "+<<?>>Limit+" (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(440,6)}: Переменная не определена (Соединение)
Если <<?>>Соединение.Конструктор("MySQL ODBC 5.3 ANSI Driver") (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(441,3)}: Переменная не определена (Соединение)
И <<?>>Соединение.Деструктор() Тогда (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(451,7)}: Переменная не определена (Соединение)
ТЗ = <<?>>Соединение.ПолучитьСотрудников("Gebau", "1"); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(461,13)}: Переменная не определена (Соединение)
Структура = <<?>>Соединение.ПолучитьПосещаемость( Период.ДатаНачала, (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(450,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(457,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер, , , , , , Структура); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(472,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(457,38)}: Переменная не определена (Структура)
Сигур.Конструктор(Драйвер, , , , , , <<?>>Структура); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(466,11)}: Переменная не определена (Структура)
ТабДок = <<?>>Структура.ТабДок; (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(461,46)}: Переменная не определена (Период)
Структура = Соединение.ПолучитьПосещаемость( <<?>>Период.ДатаНачала, (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(462,13)}: Переменная не определена (Период)
<<?>>Период.ДатаОкончания, (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(464,13)}: Переменная не определена (Сотрудник)
<<?>>Сотрудник, (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(156,7)}: Процедура или функция с указанным именем не определена (НаборЗаписейВТаблицу)
ТЗ = <<?>>НаборЗаписейВТаблицу(); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(222,7)}: Процедура или функция с указанным именем не определена (НаборЗаписейВТаблицу)
ТЗ = <<?>>НаборЗаписейВТаблицу(); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(395,7)}: Процедура или функция с указанным именем не определена (НаборЗаписейВТаблицу)
ТЗ = <<?>>НаборЗаписейВТаблицу(); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(230,13)}: Процедура или функция с указанным именем не определена (КонкатенацияМассивов)
Отделы = <<?>>КонкатенацияМассивов(Новый Структура("Отделы,Строки", Отделы, Строки), Истина); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(238,14)}: Процедура или функция с указанным именем не определена (КонкатенацияМассивов)
Отделы = <<?>>КонкатенацияМассивов(Новый Структура("Отделы,Строки", Отделы, Строки), Истина); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(260,3)}: Процедура или функция с указанным именем не определена (РасшифроватьКарту)
<<?>>РасшифроватьКарту(Строка.CODEKEY); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(399,3)}: Процедура или функция с указанным именем не определена (РасшифроватьКарту)
<<?>>РасшифроватьКарту(Строка.CODEKEY); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(400,3)}: Процедура или функция с указанным именем не определена (РасшифроватьКарту)
<<?>>РасшифроватьКарту(Строка.EventCodeKey); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(261,22)}: Процедура или функция с указанным именем не определена (ПолучитьСотрудникаПоТабелю)
Строка.Сотрудник = <<?>>ПолучитьСотрудникаПоТабелю(Строка.TABID); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(421,24)}: Процедура или функция с указанным именем не определена (ПолучитьСотрудникаПоТабелю)
Работник.Сотрудник = <<?>>ПолучитьСотрудникаПоТабелю(Работник.Табель); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(270,2)}: Процедура или функция с указанным именем не определена (РусифицироватьКолонкиТаблицы)
<<?>>РусифицироватьКолонкиТаблицы(ТЗ); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(404,2)}: Процедура или функция с указанным именем не определена (РусифицироватьКолонкиТаблицы)
<<?>>РусифицироватьКолонкиТаблицы(ТЗ); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(422,19)}: Процедура или функция с указанным именем не определена (РассчитатьПосещаемость)
Посещаемость = <<?>>РассчитатьПосещаемость(вДанные, ДатаНачала, ДатаОкончания); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(429,11)}: Процедура или функция с указанным именем не определена (СформироватьТабДокПосещаемости)
ТабДок = <<?>>СформироватьТабДокПосещаемости(МассивРаботников, ДатаНачала, ДатаОкончания); (Проверка: Сервер)
{Обработка.Сигур.Форма.Форма.Форма(439,9)}: Переменная не определена (Обработки)
Сигур = <<?>>Обработки.Сигур.Создать(); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(449,9)}: Переменная не определена (Обработки)
Сигур = <<?>>Обработки.Сигур.Создать(); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(456,10)}: Переменная не определена (Обработки)
Сигур = <<?>>Обработки.Сигур.Создать(); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(471,9)}: Переменная не определена (Обработки)
Сигур = <<?>>Обработки.Сигур.Создать(); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(440,6)}: Переменная не определена (Соединение)
Если <<?>>Соединение.Конструктор("MySQL ODBC 5.3 ANSI Driver") (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(441,3)}: Переменная не определена (Соединение)
И <<?>>Соединение.Деструктор() Тогда (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(451,7)}: Переменная не определена (Соединение)
ТЗ = <<?>>Соединение.ПолучитьСотрудников("Gebau", "1"); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(461,13)}: Переменная не определена (Соединение)
Структура = <<?>>Соединение.ПолучитьПосещаемость( Период.ДатаНачала, (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(450,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(457,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер, , , , , , Структура); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(472,19)}: Переменная не определена (Драйвер)
Сигур.Конструктор(<<?>>Драйвер); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(457,38)}: Переменная не определена (Структура)
Сигур.Конструктор(Драйвер, , , , , , <<?>>Структура); (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(466,11)}: Переменная не определена (Структура)
ТабДок = <<?>>Структура.ТабДок; (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(461,46)}: Переменная не определена (Период)
Структура = Соединение.ПолучитьПосещаемость( <<?>>Период.ДатаНачала, (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(462,13)}: Переменная не определена (Период)
<<?>>Период.ДатаОкончания, (Проверка: Тонкий клиент)
{Обработка.Сигур.Форма.Форма.Форма(464,13)}: Переменная не определена (Сотрудник)
<<?>>Сотрудник, (Проверка: Тонкий клиент)
39. 🅵🅾️🆇 524 29.05.19 15:48 Сейчас в теме
(38)
Судя по всему вы не объявили переменные в модуле объекта:

Обработка содержит публичные переменные/реквизиты:
ВремяДома (Целое число [2]), Limit (Строка [10]), Табель (Строка [100])
Их описание дано в функции "Конструктор"

Приватные переменные:
Connection - COM Объект ADODB.Connection
Recordset   - COM Объект ADODB.Recordset
40. kievol 29.05.19 16:05 Сейчас в теме
Огромное спасибо. Теперь намного лучше, но появились ещё 2 ошибки помогите пожалуйста разобраться и с ними
инициализации модуля: Обработка.Сигур.Форма.Форма.Форма
по причине:
{Обработка.Сигур.Форма.Форма.Форма(5,12)}: Неопознанный оператор
Connection <<?>>- COM Объект ADODB.Connection
{Обработка.Сигур.Форма.Форма.Форма(51,1)}: Определения процедур и функций должны размещаться перед операторами тела модуля
<<?>>Функция Конструктор( Знач Драйвер,
41. 🅵🅾️🆇 524 29.05.19 16:07 Сейчас в теме
(40)

1) наверное забыли установить драйвер для работы с MySQL

2) не там переменные объявили.
Они должны объявлятся в самом начале модуля объекта.
42. kievol 29.05.19 16:35 Сейчас в теме
Вот не задача, драйвер установлен и переменные указаны правильно, да вот всё равно ошибки не прекращаются
{Обработка.Сигур.МодульОбъекта(2,12)}: Неопознанный оператор
Connection <<?>>- COM Объект ADODB.Connection (Проверка: Сервер)
{Обработка.Сигур.МодульОбъекта(48,1)}: Определения процедур и функций должны размещаться перед операторами тела модуля
<<?>>Функция Конструктор( Знач Драйвер = "SQL Server", (Проверка: Сервер)
43. 🅵🅾️🆇 524 29.05.19 16:37 Сейчас в теме
(42)
Определения процедур и функций должны размещаться перед операторами тела модуля


Либо переменные объявили не там где надо, либо точку с запятой установили после "КонецПроцедуры"
44. kievol 29.05.19 16:57 Сейчас в теме
Спасибо конечно за подсказки, но увы не чего не получается с этими ошибками, быстрее всего нужно смотреть саму обработку для полного анализа
45. kievol 07.06.19 11:47 Сейчас в теме
Добрый день! Подскажите пожалуйста как выполнить загрузку из mysql с определенного id при попытке запроса WHERE ID > '2570' 1с всё равно обходит все записи. Спасибо.
46. 🅵🅾️🆇 524 07.06.19 11:54 Сейчас в теме
(45) Поставьте себе какойнить удобный запросник или phpmyadmin или datagrip. Там и эксперементируйте.
47. kievol 07.06.19 11:58 Сейчас в теме
Эксперементировал там отрабатывает правильно в 1с нет
48. wandergraf 23.11.19 13:00 Сейчас в теме
49. wandergraf 23.11.19 13:05 Сейчас в теме
Добрый день!

Настраиваю новую базу данных сигура.
помню что для работы с персоналом нужна таблица personal в tc-db-main

Но не могу подключиться к базе

логин root
а пароль какой? Пустой, sphinx и т.п. не подходят....
50. 🅵🅾️🆇 524 23.11.19 23:49 Сейчас в теме
(49) Позвони в саппорт, они вежливо и сразу отвечали на все вопросы.
Также на оффсайте есть ман.
Я уже два года не занимаюсь сфинксом-сигуром, ничего не помню)
57. alexander_ryzhov 25.06.23 22:21 Сейчас в теме
(49)
логин root
а пароль какой


узнать пароль способ не предоставляется, но можно его поменять на свой в "программе управления сервером", сам Сигур при этом никак не сломается
52. user100000 17.02.21 17:41 Сейчас в теме
вот такой же код бы для w-36 увидеть
54. user100000 17.02.21 18:45 Сейчас в теме
58. alexander_ryzhov 25.06.23 22:26 Сейчас в теме
(54) wiegand-34 обычно в десятичном виде не пишется, пишется везде сразу в шестнадцатеричном, и не встречал чтобы к нему надо было бы руками добавлять биты контрольной суммы.
если вопрос будет еще актуален у кого, напишите точнее где конкретно берете исходный код, пример как он выглядит, куда конкретно хотите его записать.
55. user1805730 06.07.22 12:17 Сейчас в теме
Подскажите, пожалуйста, как называется таблица с оправдательными документами? Где записывают, какой пропуск выдан (временный), кому выдан и диапазон дат (начало действия пропуска, окончание действия пропуска)
59. alexander_ryzhov 25.06.23 22:28 Сейчас в теме
(55)
как называется таблица с оправдательными документами?

oditems - в ней сами документы.
и есть еще odtypes - в ней типы документов.
56. user1037751 24.04.23 18:29 Сейчас в теме
После добавления пользователя с номером пропуска через sql запрос, как заставить сервер перечитать изменения и загрузить их на контроллер?

По логам видно, что серверная часть постоянно запрашивает SELECT PARAMVALUE FROM PARAMI WHERE NAME='SYNCDB_REQUEST'.

Если дописать туда "1", затирает на "0" но изменения не загружает в контролер.
60. alexander_ryzhov 25.06.23 22:34 Сейчас в теме
(56)
раз SYNCDB_REQUEST сбрасывается в 0 значит Сигур его увидел и исполнил запрос на синхронизацию памяти контроллеров.
можно посмотреть что в таблице PARAMI в параметре SYNCDB_REQUEST_POLICY. Если там 1 или 3, у вас контроллеры с относительно свежей прошивкой, и относительно свежий софт (где-то с 2018 года и выше), то это должно работать.
кстати это нестандартная функция, штатно она отключена, кто-то у вас ее включил, раз вообще есть запросы к SYNCDB_REQUEST.

если не разберетесь, можем включить лог сервера и понять все по нему.
61. user1600314 10.08.23 16:01 Сейчас в теме
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию


как подключится ?
62. alexcw@list.ru 26.01.24 20:54 Сейчас в теме
Добрейшего времени суток.
А есть ли возможность определить когда пользователю в системе было создан пропуск?
Изначально наколхозили
select 
objid,
substring(text,locate('"', text)+1, locate('"', text, locate('"', text)+1)-locate('"', text)-1) codekey,
fr om `tc-db-main`.userlog
	where
		logtime>=@from_date and
		logtime<=date_add(date_add(date(@to_date), interval 1 DAY), interval -1 SECOND)
		and text like 'Пропуск "%" добавлен%'
Показать

и оно даже работало, но есть пользователи у которых пропуск есть, в personal прописан codekey и время его создания, однако в userlog записей по данному пользователю нет. :(
Смысл - получение новых заведенных пропусков, хотят такой отчет
Оставьте свое сообщение