|
v7: Не получается сделать множественную выборку | ☑ | ||
---|---|---|---|---|
0
maxxxl-ms
27.09.12
✎
13:50
|
Добрых суток. Пишу обработку по выводу документов реализации и сделал по образцу множественную выборку, в результате не происходит никакой выборки:
// инициализация переменных множественного фильтра ТипМФ.УдалитьВсе(); ТипМФ.ДобавитьЗначение("одно из"); ТипМФ.ДобавитьЗначение("все кроме"); ТаблицаМФ.УдалитьСтроки(); Пока ТаблицаМФ.КоличествоКолонок()>0 Цикл ТаблицаМФ.УдалитьКолонку(1); КонецЦикла; Скриншот: http://upwap.ru/d/2851039/ee6968631dfaa88e8dc03e0050642162/33.JPG ТаблицаМФ.НоваяКолонка("Тип"); ТаблицаМФ.НоваяКолонка("Вид"); ТаблицаМФ.НоваяКолонка("ИмяПеременной"); ТаблицаМФ.НоваяКолонка("СписокЭлементов"); // список элементов, по которым производим фильтрацию ТаблицаМФ.НоваяКолонка("ТипМФ"); // текущая строка списка ТипМФ ТаблицаМФ.НоваяКолонка("ФлВкл","Число",1,,"Вкл",5,,); // фильтр включен ("1" или "0") ТаблицаМФ.НоваяКолонка("Представление",,,,"Вид фильтра:"); ТаблицаМФ.ВыводитьПиктограммы("ФлВкл"); ТекСтрокаВТаблице=""; |
|||
1
mikecool
27.09.12
✎
13:55
|
да, я тоже вижу, что никакой выборки не происходит
|
|||
2
DenLaDen
27.09.12
✎
13:58
|
(0) я вообще ничего у тебя не вижу
|
|||
3
miki
27.09.12
✎
14:02
|
зачетно:
ТаблицаМФ.УдалитьСтроки(); Пока ТаблицаМФ.КоличествоКолонок()>0 Цикл ТаблицаМФ.УдалитьКолонку(1); КонецЦикла; |
|||
4
Изучаю1С8
27.09.12
✎
14:04
|
(0) Кури типовые отчеты ТИСа.
|
|||
5
maxxxl-ms
27.09.12
✎
14:10
|
Не курю) Но идею делать это забросил, за неимением готового примера.
|
|||
6
maxxxl-ms
27.09.12
✎
14:18
|
Вот моё условие на фильтр:
Функция ПроверкаУсловияПоТаблицеМФ(ИмяПерем, ТаблицаМФ="", ИмяПоляМФ="", ПолеЕФ, ВидСправочникаСвойства="") Перем Результат; Перем Условие; Перем ПолеМФ, ТипМФ; Перем ПолеМФСвойств, ИмяПоляМФСвойств, ТипМФСвойств; Перем ТЗ; Результат = 1; // априори полагаем, что условие выполняется Если ПустоеЗначение(ПолеЕФ) = 0 Тогда // есть простой фильтр по позициям справочника Если ПолеЕФ.ЭтоГруппа() = 1 Тогда Результат = ИмяПерем.ПринадлежитГруппе(ПолеЕФ); // если выбрана группа в фильтре Иначе Если ИмяПерем = ПолеЕФ тогда Результат = 1; Иначе Результат = 0; КонецЕсли; КонецЕсли; Иначе ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТаблицаМФ.ВыбратьСтроки(); Пока ТаблицаМФ.ПолучитьСтроку()=1 Цикл Если (ТаблицаМФ.СписокЭлементов.РазмерСписка()>0) и (ТаблицаМФ.ИмяПеременной=ИмяПоляМФ) и (ТаблицаМФ.ФлВкл=2) Тогда Если (ТаблицаМФ.Вид<>"ЗначенияСвойств") Тогда ТипМФ = ТаблицаМФ.ТипМФ; Условие = ТаблицаМФ.СписокЭлементов; Если ТипМФ=1 Тогда // принадлежит списку Результат = Условие.Принадлежит(ИмяПерем); Иначе Результат = (Условие.Принадлежит(ИмяПерем)-1)*(-1); // не принадлежит списку КонецЕсли; Иначе // по свойствам ЕстьМФ = 0; ПолеМФ = ТаблицаМФ.СписокЭлементов; ТипМФ = ТаблицаМФ.ТипМФ; Если ТипЗначенияСтр(ПолеМФ)="СписокЗначений" Тогда Если (ПолеМФ.РазмерСписка()>0) Тогда ЕстьМФ = 1; КонецЕсли; КонецЕсли; Если ЕстьМФ = 0 Тогда Результат = 1; Иначе // теперь отбираем позиции по списку свойств ТекстЗапросаСвойств = " |Обрабатывать НеПомеченныеНаУдаление; |КатегорияПозиции = Справочник."+ВидСправочникаСвойства+".ТекущийЭлемент; |Позиция = Справочник."+ВидСправочникаСвойства+".Владелец; |СвойствоПоз = Справочник."+ВидСправочникаСвойства+".ЗначениеСвойства; |Группировка Позиция Без Групп;"; Если ТипМФ=3 Тогда ТекстЗапросаСвойств =ТекстЗапросаСвойств + "Группировка СвойствоПоз Без Групп;"; КонецЕсли; ТекстЗапросаСвойств = ТекстЗапросаСвойств + "Условие (СвойствоПоз в ПолеМФ);"; ТекстЗапросаСвойств = ТекстЗапросаСвойств + "Условие (Позиция = ИмяПерем);"; // выполняем запрос Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапросаСвойств)=0 Тогда Результат = 0; Иначе Запрос.Выгрузить(ТЗ,0); Если (ТЗ.КоличествоСтрок() = 0) и ((ТипМФ=1)или(ТипМФ=3)) Тогда // если запрос ничего не принес и тип фильтра = "входит в список" Результат = 0; Иначе НомерСтроки = 0; Если (ТипМФ=1) или (ТипМФ=3) Тогда // принадлежит списку или одновременно все Результат = ТЗ.НайтиЗначение(ИмяПерем, НомерСтроки, "Позиция"); Иначе Результат = (ТЗ.НайтиЗначение(ИмяПерем, НомерСтроки, "Позиция")-1)*(-1); // не принадлежит списку КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Возврат Результат; КонецФункции // ПроверкаУсловияПоТаблицеМФ |
|||
7
Злопчинский
27.09.12
✎
19:02
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |