Home
1С Код для конструктора

//Соединение  - ADODB.Connection

//СписПарам - список параметров для параметризированного запроса (последний раз пользовался еще в 1с77)

//ТипЗапроса - установка параметра переменой CommandType

Функция ВыполнитьЗапрос(Соединение,Запрос="",СписПарам="",ТипЗапроса="") Экспорт
    
    ТЗ = Новый ТаблицаЗначений;
    Если ПустаяСтрока(Запрос)=1 Тогда
        Сообщить("Запрос пуст!");
        Возврат ТЗ;
    КонецЕсли;
    
    СоздЗапрос = Новый COMObject("ADODB.Command");
    СоздЗапрос.ActiveConnection = Соединение;
    
    Если ЗначениеЗаполнено(ТипЗапроса) Тогда
        СоздЗапрос.CommandType = Число(ТипЗапроса);
    КонецЕсли;
    
    СоздЗапрос.CommandText =  Запрос;
    РезЗапроса = Новый COMObject("ADODB.RecordSet");
    РезЗапроса.CursorType=0;
    РезЗапроса.CursorLocation = 2;
    
    Если ЗначениеЗаполнено(СписПарам) Тогда     
        Если СписПарам.Количество()<>0 Тогда
            Для й=0 по СписПарам.Количество()-1 Цикл
                
                Зн = СписПарам.Получить(й).Значение;
                Стр= СписПарам.Получить(й).Представление;
                СоздЗапрос.Parameters.Append(СоздЗапрос.CreateParameter(Стр, 200, 1, СтрДлина(Зн), Зн));
                
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
    
    Попытка
        РезЗапроса = СоздЗапрос.Execute();
    Исключение
        Сообщить(Запрос);
    КонецПопытки;
    
    Если РезЗапроса.Fields.Count>0 Тогда
        Если РезЗапроса.BOF()=0 Тогда
            Для й=0 По РезЗапроса.Fields.Count-1 Цикл
                Колонка = РезЗапроса.Fields.Item(й);
                ТЗ.Колонки.Добавить(Колонка.Name);
            КонецЦикла;
            РезЗапроса.MoveFirst();
            Пока РезЗапроса.EOF()=0 Цикл
                СтрТб=ТЗ.Добавить();
                Для й=0 По РезЗапроса.Fields.Count-1 Цикл
                    
                    СтрТб[й]=Строка(РезЗапроса.Fields(РезЗапроса.Fields.Item(й).Name).Value);
                    
                КонецЦикла;
                РезЗапроса.MoveNext();
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
    Возврат ТЗ;
КонецФункции

 

 
Яндекс.Метрика
   
 
 
  Top