Имя: Пароль:
1C
1C 7.7
v7: Выбрать документы с помощью запроса.
0 america2013
 
02.12.13
10:15
Приветствую Вас, уважаемые форумчане!
Прошу помочь мне справиться с такой проблемой: первоначально стоит задача выбрать документы с двумя условиями, по банк. счету и инициатору (мной созданный реквизит); если какой-то параметр не выбран, но его совсем не учитывать. Выборкой по периоду посчитал слишком хлопотно учитывать выбранность реквизитов на форме и исходя из этого состояния указывать условия в выборке, поэтому решил попробовать запрос. Запросы сам никогда не делал. Прошу помощи!

На данный момент имею код, но таблица на выходе пустая:

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с Дата1 по Дата2;
    |ПлатежноеПоручение   = Документ.ПлатежноеПоручение.ТекущийДокумент;  
    |ИнициаторИзДокумента = Документ.ПлатежноеПоручение.ИнициаторПлатежа;  
    |СчетИзДокумента      = Документ.ПлатежноеПоручение.БанковскийСчет;  
    |Группировка ПлатежноеПоручение Без групп;
    |Условие (СчетИзДокумента = РС);
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    ТабСДокументами = "";
    Запрос.Выгрузить(ТабСДокументами,0,0);            
    
    ТабСДокументами.ВыбратьСтроки();
    Пока ТабСДокументами.ПолучитьСтроку()=1 Цикл
        Попытка
            ПП = ТабСДокументами.ПлатежноеПоручение;
            //Сообщить(Значение.НомерДок) ;
            Таб.ВывестиСекцию("Строка");
        Исключение
            ОписаниеОшибки();
        КонецПопытки;
    КонецЦикла;
1 Ёпрст
 
02.12.13
10:19
РС - Это что у тебя ?
Без условия,  |Условие (СчетИзДокумента = РС);
отчет чего кажет ?
2 Ёпрст
 
02.12.13
10:20
+ПлатежноеПоручение - э тебя хоть проведен ?
А то запрос по-умолчанию только проведенные доки смотрит, если че.
3 america2013
 
02.12.13
10:23
(1) РС = реквизит на форме, тип - Справочник.ДенежныеСредства;
ИнициаторПлатежа = реквизит на форме, тип - Справочник.Сотрудники;
Условие убирал - результат такой же - ничего не выбирается, таблица пуста.

(2) ПлатежноеПоручение - не проведен, он не дает проводок. Как учесть, что не проведенные тоже учитывать?
4 Ёпрст
 
02.12.13
10:24
(3):))
5 Ёпрст
 
02.12.13
10:24
чего ты хочешь тогда от запроса ?
6 Ёпрст
 
02.12.13
10:25
смотри в сторону ОбрабатыватьДокументы в тексте запроса.
7 Ёпрст
 
02.12.13
10:26
+ БанковскийСчет в документе, тоже типа Справочник.ДенежныеСредства ?
Сумневаюсь.
8 Mikeware
 
02.12.13
10:26
(0) проблема в том, что ты не читаешь документацию.
9 DmitriyDI
 
02.12.13
10:46
ТабСДокументами = "";
Запрос.Выгрузить(ТабСДокументами,0,0);    
ТабСДокументами.ВыбратьСтроки();
вот тут напиши
ТабСДокументами = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТабСДокументами,0,0);
а тут    
ТабСДокументами.ВыбратьСтрокУ();
и отлаживай запрос
10 DmitriyDI
 
02.12.13
10:47
Группировка ПлатежноеПоручение Без групп, а разве документы могут быть с группами ?
11 america2013
 
02.12.13
11:01
(6) Изменил запрос на и все получилось, как надо:

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с Дата1 по Дата2;
    |ОбрабатыватьДокументы Все;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ПлатежноеПоручение   = Документ.ПлатежноеПоручение.ТекущийДокумент;  
    |ИнициаторИзДокумента = Документ.ПлатежноеПоручение.ИнициаторПлатежа;  
    |СчетИзДокумента      = Документ.ПлатежноеПоручение.БанковскийСчет;  
    |Группировка ПлатежноеПоручение Без групп;
    //|Условие (СчетИзДокумента = РС);
    |"//}}ЗАПРОС
    ;
    
    
    //Проверка на 1 параметр:
    Если РС.Выбран()=1 Тогда
    ТекстЗапроса = ТекстЗапроса +     "Условие (СчетИзДокумента = РС);
    |";
    КонецЕсли;

    //Проверка на 2 параметр:
    Если Инициатор.Выбран()=1 Тогда
    ТекстЗапроса = ТекстЗапроса +     "Условие (ИнициаторИзДокумента = Инициатор);
    |";
    КонецЕсли;
    
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    

(7) Не сомневайтесь, это так (Бухгалтерия для Казахстана 268, возможно кем-то дописанная в этом месте, с коробочной поставкой не сравнивал).

(8) Я готов читать документацию и большая часть моих вопросов решается с помощью разных справочных материалов. Но некоторые решения меня загоняют в откровенный ступор((( причина возможно не в желании самостоятельно разбираться, хотя именно самостоятельно приходилось решать и не такое... Ну и увидеть решение конкретных гуру, считаю для себя подобием прикосновения к прекрасному : )

(10) Эта строка досталась от запроса, который я брал для себя в качестве примера.


Благодарю всех за помощь и желаю всяческих благ!!!