Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Не выполняется  запрос к итогам (число прочтений - 1018 )
meanmachine
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 09. Июля 2009
Не выполняется  запрос к итогам
10. Июля 2009 :: 04:58
Печать  
Доброго времени суток!
Подскажите, пож-та, с запросом:

     ЛокODBC = СоздатьОбъект("AccountsRecordset");
     ТекстЗапроса = "
           |SELECT
           |   ОсновнойОстатки.Счет [Счет $Счет.Основной]
           |      , ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
           |      , ОсновнойОстатки.Субконто1_вид
           |      , ОсновнойОстатки.Субконто2 [Субконто2 $Субконто]
           |      , ОсновнойОстатки.Субконто2_вид
           |      , ОсновнойОстатки.СуммаОстатокДт
           |      , ОсновнойОстатки.СуммаОстатокКт
           |      , ОсновнойОстатки.КоличествоОстатокДт
           |      , ОсновнойОстатки.КоличествоОстатокКт
           |FROM $БИОстатки.Основной(:КонДата,,
           |            (Счет = :ВыбСчет),(Контрагенты,Заказы),
           |            (РазделительУчета = :ВыбФирма)";
           Если Суб1.Выбран() = 1 Тогда
                 ТекстЗапроса = ТекстЗапроса + "
                 |            and (Субконто1 in (select val from #Суб1))";
                 ЛокODBC.УложитьСписокОбъектов(Суб1,"#Суб1");
           КонецЕсли;
           Если Суб2.Выбран() = 1 Тогда
                 ТекстЗапроса = ТекстЗапроса + "
                 |            and (Субконто2 in (select val from #Суб2))";
                 ЛокODBC.УложитьСписокОбъектов(Суб2,"#Суб2");
           КонецЕсли;
           ТекстЗапроса = ТекстЗапроса + "
           |) AS ОсновнойОстатки";
           
           ЛокODBC.УстановитьТекстовыйПараметр("ВыбФирма",ВыбФирма);
           ЛокODBC.УстановитьТекстовыйПараметр("ВыбСчет", ВыбСчет);
           ЛокODBC.УстановитьТекстовыйПараметр("КонДата", КонДата);
           локТЗ = СоздатьОбъект("ТаблицаЗначений");
           Если ЛокODBC.ВыполнитьИнструкцию(ТекстЗапроса,локТЗ, 1) = 0 Тогда
                 Сообщить("Запрос не выполнен!", "!!!");
                 Возврат;
           КонецЕсли;
           локТЗ.ВыбратьСтроку();
Если выбрать 2-е субконто, то запрос выводить пустышку. Я так понимаю что дело в "Заказе" (тип Документ), но не пойму что сделать Улыбка
И еще один вопросик: если в качестве субконто выбрана не группа, а элемент - то можно не использовать УложитьСписокОбъектов (как это отобразить в запросе)?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не выполняется  запрос к итогам
Ответ #1 - 10. Июля 2009 :: 07:30
Печать  
meanmachine писал(а) 10. Июля 2009 :: 04:58:
Если выбрать 2-е субконто, то запрос выводить пустышку. Я так понимаю что дело в "Заказе" (тип Документ), но не пойму что сделать Улыбка

Если Суб2.Выбран() = 1 Тогда
     ТекстЗапроса = ТекстЗапроса + "
     |            and (Субконто2 = :Суб2 ~))";
     ЛокODBC.УстановитьТекстовыйПараметр("Суб2", Суб2);
КонецЕсли;


meanmachine писал(а) 10. Июля 2009 :: 04:58:
И еще один вопросик: если в качестве субконто выбрана не группа, а элемент - то можно не использовать УложитьСписокОбъектов (как это отобразить в запросе)?

Если Суб1.Выбран() = 1 Тогда
     Если Суб1.ЭтоГруппа() = 1 Тогда
           ТекстЗапроса = ТекстЗапроса + "
           |            and (Субконто1 in (select val from #Суб1))";
           ЛокODBC.УложитьСписокОбъектов(Суб1,"#Суб1");
     Иначе
           ТекстЗапроса = ТекстЗапроса + "
           |            and (Субконто1 = :Суб1))";
           ЛокODBC.УстановитьТекстовыйПараметр("Суб1", Суб1);
     КонецЕсли;
КонецЕсли;
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
meanmachine
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 12
Зарегистрирован: 09. Июля 2009
Re: Не выполняется  запрос к итогам
Ответ #2 - 10. Июля 2009 :: 07:52
Печать  
Спасибо! Все, как всегда, просто!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать