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С
Екатеринбург
зарплата до 120 000 руб.
Полный день

Консультант-аналитик 1С
Рязань
зарплата до 80 000 руб.
Полный день

Программист 1С
Калининград
зарплата от 60 000 руб. до 80 000 руб.
Полный день

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день

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