Имя: Пароль:
1C
1C 7.7
v7: Проблема с множественным фильтром
, , ,
0 Kupogun
 
24.09.13
10:27
Здравствуйте! Решил себе сделать вывод поставщика номенклатуры в прайс-лист. В справочнике номенклатура создал поле поставщика ссылкой на поставщика из контрагентов.
А с фильтром в обработке вывода прайса вышла проблема - все равно выводит все позиции. В стандартную обработку прайса добавил только это:

глДобавитьВТаблицуМФ("ТаблицаМФ,"Справочник","Контрагенты","Поставщик","По поставщикам");

НеОШ = Неош * ГлФильтрПоПеременнойЗапроса(ТаблицаМФ, "Поставщик", , ,ТекстЗапросаПоставщиков, ,"Поставщик");

и сам запрос
ТекстЗапросаПоставщиков = "
|Номенклатура = Справочник.Номенклатура.Наименование;
|Поставщик = Справочник.Номенклатура.Поставщик;
|Группировка Номенклатура без групп;";

Кто-нибудь знает в чем косяк? Стыдно с такой мелочью идти искать программиста.
1 Стрелок
 
24.09.13
10:33
я вижу нехватающую ковычку
2 Стрелок
 
24.09.13
10:34
а фильтр по поставщику есть на форме обработки прайса?
3 Kupogun
 
24.09.13
10:37
кавычка это мой копи-паст неудачный
да, на форме есть фильтр по поставщикам, только он весь прайс выводит.
4 Aleksey
 
24.09.13
10:39
(3) не на форме, а в ТаблицаМФ
5 Aleksey
 
24.09.13
10:39
и НеОШ  - это тоже опечатка? Потому что в типовой НетОш
6 Стрелок
 
24.09.13
10:40
я пас. в наших типовых нет процедур

глДобавитьВТаблицуМФ

и

ГлФильтрПоПеременнойЗапроса
7 КапЛей
 
24.09.13
10:41
(1) Я вижу одну лишнюю кавычку. :)
8 КапЛей
 
24.09.13
10:42
(6) почему? глДобавитьВТаблицуМФ вроде как в ТиС встречал неоднократно.
9 Стрелок
 
24.09.13
10:43
(8) только что глянул ТиС не нашёл. хз
10 Стрелок
 
24.09.13
10:43
у нас

глФильтрПоСправочнику
11 PuhUfa
 
24.09.13
10:47
//******************************************************************************
// глФильтрПоПеременнойЗапроса(ТаблицаМФ, ИмяПеремЗапроса,ПолеЕФ,ИмяПоляЕФ,ТекстЗапроса,ТекстЗаголовка,ВидСправочникаСвойства="")
//
// Параметры:
//  ТаблицаМФ       - таблица значений множественного фильтра (не обязательный параметр),
//  ТекстЗапроса    - переменная, в которой содержится текст формируемого запроса,
//    ТекстЗаголовка  - переменная, в которой содержится заголовок отчета,
//    ПолеЕФ          - Значение элемента диалога, в котором вводится значение фильтра,
//    ИмяПоляЕФ       - Название элемента диалога, в котором вводится значение фильтра,
//    ИмяПеремЗапроса - название переменной запроса, к которой применить фильтр,
//
// Возвращаемое значение:
//     0  - в случае ошибки, не 0 - все ОК.
//
// Описание:
//  Дополняет текст запроса и заголовок отчета по переданному фильтру.
12 Ёпрст
 
24.09.13
10:52
(0) если это типовой ТиС, то в обработке печати прайсЛиста нет МФ.. и писать ГлФильтрПоПеременнойЗапроса лишено смысла.
13 Ёпрст
 
24.09.13
10:58
Хотя не, не ту конфу посмотрел,
вот так напиши:

НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Поставщик", ,, ТекстЗапроса,,);

И воткни это сразу после
    НетОш = 1; // нет ошибок при наложении фильтров
    НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Номенклатура", ВыбТМЦ, "ВыбТМЦ", ТекстЗапроса, , "СвойстваНоменклатуры");


Наслаждайся
14 Ёпрст
 
24.09.13
10:59
Ну и в текст запроса

    ТекстЗапроса = "//{{ЗАПРОС(ОтборЦен)
    |Период с ДатаОтчета по ДатаОтчета;
    |Номенклатура    = Справочник.Цены.Владелец;
    |Тип            = Справочник.Цены.ТипЦен;
  ....

Воткни

    |Поставщик = Справочник.Цены.Владелец.Поставщик;
15 Kupogun
 
24.09.13
11:30
оо Ёпрст, спасибо. Помогло