Синхронизация 1с и сигур
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Если мне память не изменяет, БД СИГУРа в MySQL.
Вот кусок рабочего кода, правда из 7.7, но смысл, думаю, понятен. Предварительно на ПК настроен источник данных и в БД написана хранимая процедура, которая и вызывается из кода 1С. В итоге имеем ТЗ и крутим уже как хотим.
Вот кусок рабочего кода, правда из 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();
Показать
(1) Как вариант. На стороне СИГУРа сделать выгрузку в файл в формате EnterpriseData.
В этом случае на стороне 1С практически ничего не нужно делать - там есть загрузка из ED. При обновлении версии конфигурации 1С дорабатывать выгрузку из СИГУРа в ED не потребуется.
В этом случае на стороне 1С практически ничего не нужно делать - там есть загрузка из ED. При обновлении версии конфигурации 1С дорабатывать выгрузку из СИГУРа в ED не потребуется.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот