Имя: Пароль:
1C
 
Отбор по табличной части
,
0 sidrd
 
07.05.11
15:34
Есть табличная часть "ВидыОбъектов", в ней выводятся все документы из конфигурации, заполняется это так:

ВидыОбъектов.Очистить();        
               
Для каждого Док из Метаданные.Документы  Цикл
               
        Выборка = Документы[Док.Имя].Выбрать();
   
    Пока Выборка.Следующий() Цикл
    Выборка.получитьОбъект();
    НоваяСтрока = ВидыОбъектов.Добавить();
    НоваяСтрока.Синоним = Док;
    НоваяСтрока.Номер=Выборка.Номер;
    НоваяСтрока.Дата=Выборка.Дата;
                   
Если НЕ Метаданные().Реквизиты.Найти("Ответственный")= Неопределено Тогда
НоваяСтрока.Ответственный = Выборка.Ответственный Иначе
НоваяСтрока.Ответственный="Нет";
КонецЕсли;
   
Если Выборка.ПометкаУдаления = Истина тогда
НоваяСтрока.ПометкаУдаления = "Да" иначе
НоваяСтрока.ПометкаУдаления = "Нет";
КонецЕсли;
                   
Если Выборка.Проведен = Истина тогда
НоваяСтрока.Проведен = "Да" иначе
НоваяСтрока.Проведен = "Нет";
КонецЕсли;

КонецЦикла;
КонецЦикла;
           
надо в ней сделать отбор, делаю так:

ЭлементОтбора = ВидыОбъектов.Отбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
ЭлементОтбора.Использование = Истина;

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;

ЭлементОтбора.ПравоеЗначение = ЭлементыФормы.НачДата;

Ругается на то что поле объекта "Отбор" не обнаружено!

Делаю свою собсвтенную обработку типа отчета для вывода всех документов в конфигурации и вывода по каждому документу номер,
дата и др. Вот надо сделать отбор по дате документов.
1 Alexandr Puzakov
 
07.05.11
15:47
ОтборСтрок()?
2 sidrd
 
07.05.11
15:48
пробовал тоже не работает
3 Alexandr Puzakov
 
07.05.11
15:51
версия 1С:Предприятие какая?
4 sidrd
 
07.05.11
15:51
отбор не работает почему то, хотя это не виртуальная таблица а созданная и физически существующая Таб часть. А может запросом  вывести список всех документов, но запросом я не знаю как это сделать, тем более там по каждому документу надо получить отдельные реквезиты, хм проще тут отбор уже доделать. Версия 8.1.
5 Alexandr Puzakov
 
07.05.11
15:53
В 8.1 компоновка данных к спискам, и тем более табличным частям никоим боком...
6 sidrd
 
07.05.11
15:55
а как тогжа отбор сделать тут? ну тут не  схемой компоновки данных на самом деле выполнено, всё в ручную таб часть, таблица кинутая на форму с реквезитами из этой таб части
7 sidrd
 
07.05.11
15:56
так тоже делал не работат:
ЭлементОтбора = ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = ЭлементыФормы.НачДата;
8 sidrd
 
07.05.11
16:02
И так тоже не работает:

ЭлементОтбора = ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Использование=Истина;
ЭлементОтбора.ОтборСтрок.Дата.ВидСравнения = ВидСравнения.БольшеИлиРавно;
ЭлементОтбора.ПравоеЗначение = ЭлементыФормы.НачДата.Значение;

Пишет что значение не является значением объектного типа
9 sidrd
 
07.05.11
16:08
Вроде сделал, спасибо!
10 Alexandr Puzakov
 
07.05.11
16:08
Вот пример:

http://zalil.ru/30994844
11 sidrd
 
07.05.11
16:26
(10) Спасибо большое, но я уже сделал, с наступающими праздинками тебя, гы и с прошедшими тоже ))
12 БибиГон
 
07.05.11
16:27
(11) как сделал, скажи хоть? =)
13 sidrd
 
07.05.11
17:51
Если Не ЭлементыФормы.НачДата.Значение=Дата(1, 1, 1) тогда
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Использование=Истина;
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.ВидСравнения = ВидСравнения.БольшеИлиРавно;
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Значение = ЭлементыФормы.НачДата.Значение;
     КонецЕсли;
 
Если Не ЭлементыФормы.КонДата.Значение=Дата(1, 1, 1) тогда
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Использование=Истина;
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.ВидСравнения = ВидСравнения.МеньшеИлиРавно;
     ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Значение = ЭлементыФормы.КонДата.Значение;
КонецЕсли;


Вообще тут по идеи надо было вид сравнения сделать с в интервале типа так:
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.Интервал;
ЭлементыФормы.тпТовары.ОтборСтрок.ВидыОбъектов.ОтборСтрок.Дата.ЗначениеС = ЭлементыФормы.КонДата.Значение;
ЭлементыФормы.тпТовары.ОтборСтрок.ВидыОбъектов.ОтборСтрок.Дата.ЗначениеПо = ЭлементыФормы.КонДата.Значение;

но тогда если поля будут незаполнены то она работать не будет, сделал условием.
14 sidrd
 
07.05.11
17:55
вернее так
ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.Использование=Истина;
ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.ВидСравнения = ВидСравнения.Интервал;
ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.ЗначениеС = ЭлементыФормы.НачДата.Значение;
ЭлементыФормы.ВидыОбъектов.ОтборСтрок.Дата.ЗначениеПо = ЭлементыФормы.КонДата.Значение;

но тут все равно если оба поля будут пустые он не выводит данные
Основная теорема систематики: Новые системы плодят новые проблемы.