//п_Текст - ТекстЗапроса... вернётся соответственно ТЗ Функция Прямой_запрос_к_jabber(п_Текст) Экспорт л_ТЗ = Новый ТаблицаЗначений; л_число_попыток = 0; л_Запрос_выполнен = Ложь; Пока (л_Запрос_выполнен = Ложь) И (л_число_попыток <= 3) Цикл Если (гл_Соединение_jb.State = 0) Или (гл_Соединение_jb.DefaultDatabase <> "log_1c") Тогда гл_Соединение_jb = ""; л_Параметры_соединения = "DRIVER={MySQL ODBC 5.1 Driver};OPTION=3;DATABASE=BAZADANNIH_IMYA;PWD=PAROLLLLL;PORT=3306;SERVER=ip_adres_servera;UID=admin"; гл_Соединение_jb = Новый COMОбъект("ADODB.Connection"); Попытка гл_Соединение_jb.Open(л_Параметры_соединения); Исключение КонецПопытки; КонецЕсли; л_Команда = Новый COMОбъект("ADODB.Command"); л_Команда.ActiveConnection = гл_Соединение_jb; л_Команда.CommandText = п_Текст; л_Команда.CommandType = 1; л_Набор_записей = Новый COMОбъект("ADODB.Recordset"); л_Набор_записей.CursorType = 3; л_число_попыток = л_число_попыток + 1; Попытка л_Набор_записей = л_Команда.Execute(); л_Запрос_выполнен = Истина; Исключение КонецПопытки; КонецЦикла; Если (л_Запрос_выполнен = Ложь) Тогда Сообщить(ОписаниеОшибки()); Возврат(л_ТЗ); Иначе л_Число_колонок = л_Набор_записей.Fields.Count - 1; Если (л_Число_колонок > -1) Тогда Для Ф = 0 По л_Число_колонок Цикл л_Колонка_добавлена = Ложь; л_Префикс = ""; л_сч = 0; Пока (л_Колонка_добавлена = Ложь) Цикл Попытка л_ТЗ.Колонки.Добавить(л_Префикс + л_Набор_записей.Fields(Ф).Name); л_Колонка_добавлена = Истина; Исключение л_Префикс = ?(л_сч = 0, "_", "_" + л_сч + "_"); л_сч = л_сч + 1; КонецПопытки; КонецЦикла; КонецЦикла; Если (л_Набор_записей.EOF() = Истина) И (л_Набор_записей.BOF() = Истина) Тогда Иначе л_Набор_записей.MoveFirst(); Пока (л_Набор_записей.EOF() = 0) Цикл л_стр = л_ТЗ.Добавить(); Для Ф = 0 По л_Число_колонок Цикл л_стр[Ф] = л_Набор_записей.Fields(Ф).Value; КонецЦикла; л_Набор_записей.MoveNext(); КонецЦикла; КонецЕсли; КонецЕсли; Попытка л_Набор_записей.Close(); Исключение КонецПопытки; Возврат(л_ТЗ) КонецЕсли; КонецФункции