Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Полезная функция выполнения запроса (число прочтений - 966 )
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Полезная функция выполнения запроса
19. Октября 2009 :: 10:45
Печать  
Давно пользуюсь для выполнения прямых запросов. Решил поделиться.
Использовать так:

ТекстЗапроса = "....";
Парам = СоздатьОбъект("СписокЗначений");
Парам.Установить("НачДата",НачДата);
Парам.Установить("#СписокНоменклатура",сзНоменкл);
Тз = глВыполнитьЗапрос(ТекстЗапроса,Парам);
ну  а когда юзаю OLAP (http://infostart.ru/public/15116/), то след строчка
глПостроитьКуб(тз,"Тестовый отчет");


Сама функция в глобальном модуле
Функция глВыполнитьЗапрос(Текст,сзПараметры=-1) Экспорт
     Результат = СоздатьОбъект("ТаблицаЗначений");
     Запрос = СоздатьОбъект("ODBCRecordSet");
     Запрос.УстБД1С();
     Если (НазваниеНабораПрав() = "Администратор") И (Константа.ОтладкаЗапросов = 1) Тогда
           Запрос.Отладка(1);
     КонецЕсли;
     // уставливаем параметры
     Если сзПараметры <> -1 Тогда
           Для Ном = 1 По сзПараметры.РазмерСписка() Цикл  
                 Имя = "";
                 Значение = сзПараметры.ПолучитьЗначение(Ном,Имя);
                 Если Лев(Имя,1) = "#" Тогда
                       Если ТипЗначенияСтр(Значение) = "СписокЗначений" Тогда
                             Запрос.УложитьСписокОбъектов(Значение,Имя);
                       Иначе
                             // это значение группы и в имени передается тип значения
                             Запрос.УложитьСписокОбъектов(Значение,Имя,Значение.Вид());
                       КонецЕсли;      
                 Иначе
                       Запрос.УстановитьТекстовыйПараметр(Имя,Значение);      
                 КонецЕсли;      
           КонецЦикла;      
     КонецЕсли;
     Запрос.ВыполнитьИнструкцию(Текст,Результат,1);
     Возврат Результат;
КонецФункции
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Полезная функция выполнения запроса
Ответ #1 - 19. Октября 2009 :: 11:04
Печать  
Цитата:
Если ТипЗначенияСтр(Значение) = "СписокЗначений" Тогда
                            Запрос.УложитьСписокОбъектов(Значение,Имя);
                      Иначе
                            // это значение группы и в имени передается тип значения
а что в списке группы не допускаются? или их разворачивать не нужно?
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать