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

13.10.17

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Обработка получения данных из СКУД Сигур (бывш. Сфинкс)
.epf 17,45Kb
105
105
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-системе.

15.11.2022    18335    17    SQV0    49    

37

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

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

84000 руб.

19.08.2020    23732    22    1    

24

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

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

60000 руб.

05.10.2022    10098    11    8    

13

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

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

10200 руб.

24.06.2021    20037    55    53    

33

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

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

48000 руб.

16.11.2018    30499    21    31    

22
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 записей по данному пользователю нет. :(
Смысл - получение новых заведенных пропусков, хотят такой отчет
Оставьте свое сообщение