Синхронизация 1с и сигур

1. ciberden1 23.09.21 16:03 Сейчас в теме
Добрый день. Подскажите, пожалуйста, как настроить выгрузку данных посещаемости их СИГУРа в 1С.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. succub1_5 93 23.09.21 16:08 Сейчас в теме
(1) Из 1С подключаться к БД СИГУРа и забирать. Либо выгрузку в файл (экспорт) настроить и 1С парсить файлы.
А они до сих пор чтоль не сделали интеграцию с учетными системами?
4. Rokky78 42 24.09.21 09:00 Сейчас в теме
(2) Если мне память не изменяет, БД СИГУРа в MySQL.

Вот кусок рабочего кода, правда из 7.7, но смысл, думаю, понятен. Предварительно на ПК настроен источник данных и в БД написана хранимая процедура, которая и вызывается из кода 1С. В итоге имеем ТЗ и крутим уже как хотим.

	Сообщить("Согласование с базой СКУД. Пожалуйста, подождите... "  + ТекущееВремя(),"i");
	
    /////////////////////////////////////////////////
    //Обновление по данным СКУД "СИГУР" (БД MySQL)//
    /////////////////////////////////////////////////
	
	Соединение = СоздатьОбъект("ADODB.Connection");
	Соединение.ConnectionString = ("DSN=Данные СКУД");

	Попытка 
		Соединение.Open();
		
		Команда = СоздатьОбъект("ADODB.Command");
		Команда.ActiveConnection = Соединение;
		Команда.CommandType = 4;
		Команда.CommandText = "get_data";
		                                                
		НаборЗаписей = Команда.Execute("get_data");
		                        
		ТЗ = СоздатьОбъект("ТаблицаЗначений");
		КоличествоПолей = НаборЗаписей.Fields.Count - 1;
		
		// Циклом пробегаем по всем полям в наборе данных 
		// и  создаем поля в таблице значений
		Для ПолеСч = 0 по КоличествоПолей Цикл 
			//firma, podr, fio, dolgn, tabid, codekey, id
			ИмяКолонки = НаборЗаписей.Fields.item(ПолеСч).name;
			ТЗ.ВставитьКолонку(ИмяКолонки);
		КонецЦикла;
		
		// Заполнение таблицы значений
		НаборЗаписей.MoveFirst();

		Пока НаборЗаписей.Eof()=0 Цикл
			ТЗ.НоваяСтрока();
			Для ПолеСч = 0 по КоличествоПолей Цикл
				Если ПолеСч = 5 Тогда
					HEXКодКарты = Сред(НаборЗаписей.Fields(ПолеСч).Value, 3, 6);
					ТекстКодКарты = глПолучитьТекстовыйКодКарты(HEXКодКарты);
					ТЗ.УстановитьЗначение(ТЗ.НомерСтроки, ПолеСч+1, ТекстКодКарты);
				Иначе
					ТЗ.УстановитьЗначение(ТЗ.НомерСтроки, ПолеСч+1, НаборЗаписей.Fields(ПолеСч).Value);
				КонецЕсли;
			КонецЦикла;
			НаборЗаписей.MoveNext();
		КонецЦикла;
	Исключение
		Для счет = 1 По Соединение.Errors.Count Цикл
			Сообщить(Соединение.Errors.Item(счет - 1).Description);
		КонецЦикла;
		Соединение.Errors.Clear();
	КонецПопытки;  
	
	НаборЗаписей.Close();
	Соединение.Close();
Показать
5. ciberden1 24.09.21 10:19 Сейчас в теме
Через объект внешние источники данных плохой вариант?
(4)
6. Rokky78 42 24.09.21 12:10 Сейчас в теме
(5) Может и неплохой, я не пробовал. Просто показал рабочий вариант для 1С 7.7. В ней нет объекта внешние источники данных.

P.S. ну и я немного извиняюсь, утром не на Ваше сообщение ответил. Не проснулся толком :)
7. MaxS 2986 26.09.21 11:37 Сейчас в теме
(1) Как вариант. На стороне СИГУРа сделать выгрузку в файл в формате EnterpriseData.
В этом случае на стороне 1С практически ничего не нужно делать - там есть загрузка из ED. При обновлении версии конфигурации 1С дорабатывать выгрузку из СИГУРа в ED не потребуется.
3. homer_ 79 23.09.21 16:43 Сейчас в теме
Как правило разработчики СКУДа дают документацию по таблицам или готовую обработку загрузки.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот