Имя: Пароль:
1C
 
Запрос 1с 7.7 Группировка
,
0 Eeelena
 
24.10.14
08:19
Здравствуйте, делаю запрос, чтобы отбирались все контрагенты у которых есть договор, необходимо сделать отбор по группе контрагента, никак не получается, подскажите, что делаю не так, вот текст запроса

    "//{{ЗАПРОС(Запрос)
    |Без итогов;
    |Договоры = Справочник.Контрагенты.ОсновнойДоговор;
    |ТекущийЭлемент = Справочник.Контрагенты.Текущийэлемент;
    |Наименование = Справочник.Контрагенты.Наименование;
    |Отсрочка =Справочник.Контрагенты.ОсновнойДоговор.ГлубинаКредита;
    |НомерДоговора = Справочник.Контрагенты.ОсновнойДоговор.НомерДоговора;
    |ДатаДоговора = Справочник.Контрагенты.ОсновнойДоговор.ДатаДоговора;
    |ДоговорПодписан = Справочник.Контрагенты.ОсновнойДоговор.ДоговорПодписан;
    |ДопСоглашение =Справочник.Контрагенты.ОсновнойДоговор.ДопСоглашение;
    |Группировка Наименование без групп;
    |Условие(Договоры<>ПустаяСсылка);
    |//}}ЗАПРОС";
    
    
    Если ГруппыКонтрагентов.РазмерСписка() > 0 Тогда
        ТекстЗапроса = ТекстЗапроса + "Условие(ТекущийЭлемент в ГруппыКонтрагентов);";
    КонецЕсли
1 Eeelena
 
24.10.14
08:19
выбираю группу на форме, он все равно выводит весь список
2 Looser-1c
 
24.10.14
08:21
Текст не соответствует высказыванию в (1)
3 Eeelena
 
24.10.14
08:22
(2) то есть ?
4 Looser-1c
 
24.10.14
08:22
(3) "выбираю группу на форме" и "ГруппыКонтрагентов.РазмерСписка()"
5 Eeelena
 
24.10.14
08:23
у меня на форме расположен список называется ГруппыКонтрагентов (4)
6 Eeelena
 
24.10.14
08:24
я в список добавляю группу контрагентов и по ней он должен отбирать, но у меня это не работает (4)
7 Gepard
 
24.10.14
08:27
если тут не нужен, при пустом он и так всех выберет.

проблема может бытт в безИтогов, и стоит попробовать добавить хотя бы счетчик
8 Eeelena
 
24.10.14
08:28
(7) это как?
9 Gepard
 
24.10.14
08:28
(7) добавить хотя бы одну функцию, или попробовать выгружать в таблицу значений с параметром 3
10 Eeelena
 
24.10.14
08:29
я просто в первые сталкиваюсь с запросами в 7.7 можно по точнее?)
11 DCKiller
 
24.10.14
08:30
Попрбуй так:

ТекстЗапроса = ТекстЗапроса + "Условие((ТекущийЭлемент в ГруппыКонтрагентов) ИЛИ (ТекущийЭлемент.ПринадлежитГруппе(ГруппаКонтрагентов)));";
12 Gepard
 
24.10.14
08:31
(10) с телефона неудобно код писать)
13 Gepard
 
24.10.14
08:35
(1) не увидел сообщение это. Если список пустой, то он тоже всех выберет. может список на форме не так называется, а тот что в запросе всегда пустой?
14 Eeelena
 
24.10.14
08:37
нет, я проверяла размер списка (13) он не пустой
15 Gepard
 
24.10.14
08:40
(14) и там точно только одна группа?
16 Eeelena
 
24.10.14
08:41
может быть одна, может быть несколько (15)
17 Gepard
 
24.10.14
08:42
(16) для проверки нужно выбрать одну и убедиться что она в переменной одна)
18 Eeelena
 
24.10.14
08:44
выбрала группу сделала проверку
    Для к=1 по Группы.РазмерСписка() Цикл
    Группы.ПолучитьЗначение(к);    
        КонецЦикла;

ничего не вывел((((
19 Gepard
 
24.10.14
08:45
К проблеме наверное отношение не имеет, но группировку надо сделать по текущему элементу с упорядочеванием по ТекушийЭлемент.Наименование
20 Gepard
 
24.10.14
08:47
(18) Группы (в запросе по-другому обзывается)? Получить значение и не должен выводить, сообщить выводит)
21 Eeelena
 
24.10.14
08:48
(20) я просто сейчас там изменила, теперь он везде называется Группы. Упс))) сейчас попробую с сообщить)
22 Eeelena
 
24.10.14
08:49
(20) не выводит все равно(
23 Eeelena
 
24.10.14
08:50
вот у меня процедуры которые прописаны на кнопках при добавлении, удалении групп
Процедура ДобавитьОдну()
    
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.ВыборГруппы(1);
    Если Спр.Выбрать("Выберите группу","ДляВыбора") = 1 Тогда
        Группы.ДобавитьЗначение(Спр.ТекущийЭлемент());
    
    КонецЕсли;
    
КонецПроцедуры

Процедура ДобавитьВсе()
    
    Спр = "Справочник.Контрагенты";
    
    ФормаПодбора = Форма;
    
    ОткрытьПодбор(Спр,"ДляВыбора", ФормаПодбора, 1);
                                              
    ФормаПодбора.ВыборГруппы(1);
    
КонецПроцедуры        

Процедура УдалитьОдну()
              
    Если Группы.ТекущаяСтрока() > 0 Тогда
        Группы.УдалитьЗначение(Группы.ТекущаяСтрока());
    КонецЕсли;
    
КонецПроцедуры

Процедура УдалитьВсе1()
              
    Группы.УдалитьВсе();
    
КонецПроцедуры
24 Eeelena
 
24.10.14
08:51
почему то в группах не сохраняется значение(
25 Eeelena
 
24.10.14
08:53
нет, все выводит, но не отбирается
26 Eeelena
 
24.10.14
08:54
добавила в сам запрос, все начал отбирать) (20) спасибо за помощь)
27 DCKiller
 
24.10.14
08:55
да-а-а... тяжелый случай.