0. 🅵🅾️🆇 13.10.17 12:56 Сейчас в теме

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. 🅵🅾️🆇 19.10.17 10:14 Сейчас в теме
Обращаю внимание, что публикация упорно съедает знаки "<>" - в техпотдержку написал, надеюсь исправят.
2. 🅵🅾️🆇 19.10.17 15:02 Сейчас в теме
(1)Исправили, оперативненько :3
3. 🅵🅾️🆇 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. 🅵🅾️🆇 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

Показать


.
5. Reftp 29.08.18 06:13 Сейчас в теме
Добрый день, подскажите удалось ли реализовать выгрузку фото в Сигур?
6. 🅵🅾️🆇 29.08.18 13:28 Сейчас в теме
(5)
Привет.
Фотки в сигуре не вели.
И Я на том месте уже не работаю.
Так что вряд ли смогу подсказать)
Но это 100% реально сделать.
7. user1043249 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 70 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. 🅵🅾️🆇 11.10.18 14:16 Сейчас в теме
10. Kontakt 70 11.10.18 14:43 Сейчас в теме
11. Kontakt 70 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 70 11.10.18 15:01 Сейчас в теме
(11)
substr(HEX(logdata), 1, 2)


разобрался.
Может помнишь как достать из 0xFE0700010103000000001800F20C00000000FFFF код карты 000,61664
13. 🅵🅾️🆇 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:аниматор 423 02.11.18 11:03 Сейчас в теме
Нет функций
СтрШаблон()
СтрРазделить()
15. 🅵🅾️🆇 435 02.11.18 11:07 Сейчас в теме
(14) У вас очень старая платформа?
СтрШаблон - подставляет параметры в строку. Аналог в других языках - format
СтрРазделить - разбивает строку в массив подстрок по заданому разделителю. Аналог в других языках - split
16. Re:аниматор 423 02.11.18 11:13 Сейчас в теме
(15) 1С:Предприятие 8.3 (8.3.9.2170)
17. 🅵🅾️🆇 435 02.11.18 11:14 Сейчас в теме
18. Re:аниматор 423 02.11.18 11:14 Сейчас в теме
Понял режим совместимости Версия 8.2.13
19. Re:аниматор 423 02.11.18 11:15 Сейчас в теме
Функция СтрРазделить(Строка, Разделитель, ВключатьПустые = Ложь)
    МассивЗначений = Новый Массив();
    Символ = Найти(Строка, Разделитель);
    Пока Символ > 0 Цикл
        Если ВключатьПустые или (СтрДлина(Лев(Строка, Символ - 1)) > 0) Тогда
            МассивЗначений.Добавить(Лев(Строка, Символ - 1));
        КонецЕсли;
        Строка = Прав(Строка, СтрДлина(Строка) - Символ);
        Символ = Найти(Строка, Разделитель);
    КонецЦикла;
    Если (ВключатьПустые или СтрДлина(Строка) > 0) Тогда
        МассивЗначений.Добавить(Строка);
    КонецЕсли;
    Возврат МассивЗначений;
КонецФункции
Показать
20. 🅵🅾️🆇 435 02.11.18 11:16 Сейчас в теме
(19) Ну да, можете поискать эти функции в общем модуле бсп по работе со строками.
Но с 8.3.6 это включено в платформу.
Re:аниматор; +1 Ответить
21. Re:аниматор 423 02.11.18 11:17 Сейчас в теме
СтрШаблон заменил на СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку()
22. Re:аниматор 423 02.11.18 11:20 Сейчас в теме
СтрРазделить это СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок()
23. Re:аниматор 423 09.12.18 14:06 Сейчас в теме
(0) Подскажите как называется имя базы по умолчанию? Представители установили, а имя базы для подключения не знают, доступа у меня к серверам нет.

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

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

Очевидно же все.
4iga-buga; +1 Ответить
35. 4iga-buga 02.04.19 03:17 Сейчас в теме
(34) разобрался уже, спасибо. кому нибудь точно пригодится, в инете в большинстве ресурсов как то коряво написано или не полностью
36. kievol 29.05.19 15:06 Сейчас в теме
Возможно ли с помощью данной обработки выгружать данные в табель, если да то подскажите пожалуйста как? как её применить в управляемых формах? Спасибо.
37. 🅵🅾️🆇 435 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. 🅵🅾️🆇 435 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. 🅵🅾️🆇 435 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. 🅵🅾️🆇 435 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. 🅵🅾️🆇 435 07.06.19 11:54 Сейчас в теме
(45) Поставьте себе какойнить удобный запросник или phpmyadmin или datagrip. Там и эксперементируйте.
47. kievol 07.06.19 11:58 Сейчас в теме
Эксперементировал там отрабатывает правильно в 1с нет
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству