Имя: Пароль:
1C
1С v8
отбор по форме выбора справочника
0 mpbakunov
 
22.12.12
01:15
Добрый вечер!

код:
ВыбФорма = Справочники.ВидыКонтактнойИнформации.ПолучитьФорму("ФормаВыбора", ВладелецФормы);
   ВыбФорма.РежимВыбора = РежимВыбора;
   
   Если ЗначениеОтбораПоТипу <> Неопределено Тогда
       ВыбФорма.Отбор.Тип.Значение = ЗначениеОтбораПоТипу;
       ВыбФорма.Отбор.Тип.Использование = Истина;
       ВыбФорма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Тип.Доступность = Ложь;
   КонецЕсли;



Метод Получить форму возвращает объект типа ФОРМА. Но смотрю у этого объекта нет свойства ОТБОР! Может ктото объяснит почему можно использовать это свойство?
1 Азат
 
22.12.12
01:25
ну а сфигали у формы должен быть отбор? на форме должен быть элемент типа документсписок или справочник список... вот у него и должен быть отбор
2 ОбычныйЧеловек
 
22.12.12
01:26
В форме есть табличное поле "СправочникСписок" - когда пишешь Выбформа.Отбор то это аналог ВыбФорма.СправочникСписок.Отбор
3 mpbakunov
 
22.12.12
01:32
тоесть в зависимости от того какой основной реквизит формы , то свойства расширяются и свойствами основного реквизита?
4 ОбычныйЧеловек
 
22.12.12
01:36
(3) как-то так.
5 Rom1k06
 
24.12.12
14:44
Добрый день, что бы не плодить темы напишу здесь.
Есть Документ - Расходная накладная у него есть реквизит Контрагент у которого составной тип СправочникСсылка.Контрагенты и СправочникСсылка.СтруктурныеЕдиницы
Есть форма списка.
Мне нужно чтобы при отурытии списка накладывался фильтр по типу значения реквизита.
т.е Контрагент.ТипЗначения = СправочникСсылка.Контрагенты
Как только не пробывал... ну ни как .
пробывал так но не получается ДокументСписок.Отбор.Контрагент.ТипЗначения.Установить(СправочникСсылка.Контрагенты).
6 ale-sarin
 
24.12.12
14:50
(5) Контрагенты.ПустаяССылка()
И использование = Ложь.
7 Rom1k06
 
24.12.12
15:00
Да но так он отбирает документы у которых Контрагент не заполнен.
8 НЕА123
 
24.12.12
15:02
попробовать ИнтервалВключаяГраницы
9 НЕА123
 
24.12.12
15:03
(8)+
ИнтервалВключаяНачало
ЗначениеС = Контрагенты.ПустаяССылка();
ЗначениеПО = СтруктурныеЕдиницы.ПустаяССылка();
10 Rom1k06
 
24.12.12
15:10
СПС Сейчас Попробую
11 Rom1k06
 
24.12.12
15:20
ОтборСе = ДокументСписок.Отбор.Контрагент;
ОтборСе.ЗначениеС(Справочники.Контрагенты.ПустаяСсылка());
ОтборСе.ЗначениеПо(Справочники.СтруктурныеЕдиницы.ПустаяСсылка());
Пишет ЗначениеС метод объекта не обнаружен((
12 Rom1k06
 
24.12.12
15:36
Можно конечно сделать через запрос но не знаю на сколько это будет корректно.
13 НЕА123
 
24.12.12
15:43
(12)
срочно обратитесь к ДенисЧ
, за СП!
14 Rom1k06
 
24.12.12
15:48
Пока сделал так.
ЗапросСЕ = Новый Запрос("ВЫБРАТЬ
                           |    СтруктурныеЕдиницы.Ссылка
                           |ИЗ
                           |    Справочник.СтруктурныеЕдиницы КАК СтруктурныеЕдиницы
                           |ГДЕ
                           |    СтруктурныеЕдиницы.ЭтоГруппа = ЛОЖЬ");
   
   ОтборСе = ДокументСписок.Отбор.Контрагент;
   ОтборСе.ВидСравнения = ВидСравнения.ВСписке;
   СЗ = Новый СписокЗначений;    
   РезСЕ = ЗапросСЕ.Выполнить().Выбрать();
   Пока РезСЕ.Следующий() Цикл        
       ОтборСе.Значение.Добавить(РезСЕ.Ссылка);
   КонецЦикла;
   ОтборСе.Установить();
15 zladenuw
 
24.12.12
15:54
а не проще.
ОтборСе.Значение = ЗапросСЕ.Выполнить().ВыгрузитьКолонку("Ссылка");
16 Rom1k06
 
24.12.12
16:02
СЗ = Справочники.СтруктурныеЕдиницы.Выбрать();
   Пока СЗ.Следующий() Цикл        
       ОтборСе.Значение.Добавить(СЗ.Ссылка);
17 Rom1k06
 
24.12.12
16:02
СПС Попробую
18 Rom1k06
 
24.12.12
16:14
Так не отбирает.

Сделал так.

ОтборСе = ДокументСписок.Отбор.Контрагент;
   ОтборСе.ВидСравнения = ВидСравнения.НеВСписке;
   СЗ = Справочники.СтруктурныеЕдиницы.Выбрать();
   Пока СЗ.Следующий() Цикл
       ОтборСе.Значение.Добавить(СЗ.Ссылка);
   КонецЦикла;
   ОтборСе.Установить();
19 zladenuw
 
24.12.12
16:18
(18) а в СП почитать
Установить(<Значение>, <Использование>)
Описание:

Устанавливает значение отбора и флаг использования. При выполнении данного метода вид сравнения устанавливается в значение Равно.
20 Rom1k06
 
24.12.12
16:21
Но что я тогда посталю в значение?
21 zladenuw
 
24.12.12
16:24
(20) че ?

ЖурналДокументовСписок.Отбор.УровеньДоступа.ВидСравнения = ВидСравнения.ВСписке;
   ЖурналДокументовСписок.Отбор.уровеньДоступа.Значение = СписУД;        
   ЖурналДокументовСписок.Отбор.УровеньДоступа.Использование = Истина;
22 Rom1k06
 
24.12.12
16:37
Список все равно нужно составлять
поэтому чем это отличается от того что написал я?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс