|
Помогите отобрать по значению реквизита? | ☑ | ||
---|---|---|---|---|
0
NoobiC
30.08.12
✎
16:34
|
Понимаю, что пишу ерунду, но не могу понять, как забахать. При начале выбора из справочника подразделений надо вывести список с отбором по значению реквизита1. Пишу следующее в процедуре НачалоВыбора:
ФормаВыбора = Справочники.ПодразделенияОрганизаций.ПолучитьФормуВыбора(,Элемент); Отбор = ФормаВыбора.Отбор; Отбор.Реквизит1.Использование = Истина; Отбор.Реквизит1.Значение.Установить(ИСТИНА); ФормаВыбора.Открыть(); --- или скажите где прочесть. Первый раз с отбором сталкиваюсь. Спасибо! |
|||
1
MAnt
30.08.12
✎
16:37
|
Отбор.Реквизит1.Значение.Установить(ИСТИНА);
Вместо истина ставьте нужное значение. |
|||
2
NoobiC
30.08.12
✎
16:39
|
(1) нужное значение и есть ИСТИНА :). Там булевый реквизит
Но чото ругается на строку: Отбор.Реквизит1.Значение.Установить(ИСТИНА); Значение не является значением объектного типа (Установить) |
|||
3
MAnt
30.08.12
✎
16:45
|
Отбор.Реквизит1.Значение = Истина;
Отбор.Реквизит1.ВидСравнения = ВидСравнения.Равно; |
|||
4
HEKPOH
30.08.12
✎
16:46
|
Отбор.Реквизит1.Установить(ИСТИНА);
|
|||
5
pessok
30.08.12
✎
16:48
|
(4) +
|
|||
6
NoobiC
30.08.12
✎
16:55
|
Не работает :(
Вот этот код: ФормаВыбора = Справочники.ПодразделенияОрганизаций.ПолучитьФормуВыбора(,Элемент); Отбор = ФормаВыбора.Отбор; Отбор.Реквизит1.Использование = Истина; Отбор.Реквизит1.ВидСравнения = ВидСравнения.Равно; Отбор.Реквизит1.Установить(ИСТИНА); ФормаВыбора.Открыть(); Открывает пустой справочник. Т.е. ни один элемент не попадает в отбор(. |
|||
7
HEKPOH
30.08.12
✎
17:01
|
(6) протестировал. работает, если тип значения строка.
|
|||
8
HEKPOH
30.08.12
✎
17:03
|
+ (7) протестировал и на типе булево. тоже все работает)
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(,Кнопка); Отбор = ФормаВыбора.Отбор; Отбор.Услуга.Использование = Истина; Отбор.Услуга.ВидСравнения = ВидСравнения.Равно; Отбор.Услуга.Установить(истина); ФормаВыбора.Открыть(); |
|||
9
GoldenCalf
30.08.12
✎
17:06
|
А реквизит1 имеет значение Истина хотя бы для одного элемента?
|
|||
10
GoldenCalf
30.08.12
✎
17:07
|
И кстати ПодразделенияОрганизаций скорее всего подчинен Организациям
|
|||
11
HEKPOH
30.08.12
✎
17:08
|
(10) плюспиццот!!! именно в этом все дело! было такое в практике, но забыл)
|
|||
12
HEKPOH
30.08.12
✎
17:12
|
ставь еще отбор на владельца, потому как при таком отборе, как здесь описан, владелец = ПустаяСсылка()
|
|||
13
NoobiC
30.08.12
✎
17:13
|
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ПодразделенияОрганизаций.ПолучитьФормуВыбора(); Отбор = ФормаВыбора.Отбор; Отбор.Владелец.Установить(глЗначениеПеременной("ОсновнаяОрганизация")); Отбор.Реквизит1.Использование = Истина; Отбор.Реквизит1.ВидСравнения = ВидСравнения.Равно; Отбор.Реквизит1.Установить(ИСТИНА); ФормаВыбора.Открыть(); --- Сделал так. Тот же болт(. Да где же я туплю?? |
|||
14
HEKPOH
30.08.12
✎
17:14
|
(13) открой в пердприятии на форме фильтр и увидишь, в чем дело
|
|||
15
MAnt
30.08.12
✎
17:15
|
(10) Я с таким не сталкивался. Чем мешает подчинение? Допустим стоит отбор по Подразделению организации и нет отбора по организации (нет галочки использовать). Почему не должен сработать отбор?
|
|||
16
Ненавижу 1С
гуру
30.08.12
✎
17:16
|
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ПодразделенияОрганизаций.ПолучитьФормуВыбора(); Отбор = ФормаВыбора.Отбор; Отбор.Владелец.Установить(глЗначениеПеременной("ОсновнаяОрганизация")); Отбор.Реквизит1.Установить(ИСТИНА); ФормаВыбора.Открыть(); |
|||
17
HEKPOH
30.08.12
✎
17:18
|
(16) +
|
|||
18
HEKPOH
30.08.12
✎
17:18
|
(15) потому что автоматом проставляется отбор по владельцу при открытии формы подразделений. отбор наследуется из вызывающей формы, т.е. владельца нет
|
|||
19
pessok
30.08.12
✎
17:20
|
(18) а если использование = нет?
|
|||
20
HEKPOH
30.08.12
✎
17:27
|
тогда отбор снимается)
отбор.Владелец.Установить(Организация, ложь); |
|||
21
almakano
30.08.12
✎
17:37
|
Лучше всего отбирать через параметры произвольного запроса.
- на форме в реквизитах выбрать этот список - в свойствах объекта установить галочку "Произвольный запрос" - нажать рядом "Настройка списка: открыть" Текст запроса изменить следующим образом: "Выбрать ... ИЗ ... ГДЕ ВЫБОР КОГДА &ЕстьПарам1 ТОГДА СправочникКлиенты.Наименование ПОДОБНО &Парам1 ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА &ЕстьПарам2 ТОГДА СправочникКлиенты.Моб_тел ПОДОБНО &Парам2 ИНАЧЕ ИСТИНА КОНЕЦ " Далее установить событие формы: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СписокФормы.Параметры.УстановитьЗначениеПараметра("ЕстьПарам1", 0); СписокФормы.Параметры.УстановитьЗначениеПараметра("ЕстьПарам2", 0); СписокФормы.Параметры.УстановитьЗначениеПараметра("Парам1", 0); СписокФормы.Параметры.УстановитьЗначениеПараметра("Парам2", 0); КонецПроцедуры И повесить на РеквизитФормы типа Поле Процедура ПриИзменении(Элемент, Текст = NULL) Текст=?(Текст = NULL,Элемент.ТекстРедактирования, Текст); Вкл=?(Текст = NULL И Элемент.ТекстРедактирования = "", 0, 1); СписокФормы.Параметры.УстановитьЗначениеПараметра(Элемент.Имя, Вкл); СписокФормы.Параметры.УстановитьЗначениеПараметра(Элемент.Заголовок, Текст); КонецПроцедуры + есть нюансы 8=D |
|||
22
Reset
30.08.12
✎
17:40
|
(21) Спецом зарегался, чтоб запостить? :)
У ТС-а форма не управляемая(вроде). |
|||
23
NoobiC
30.08.12
✎
18:05
|
Не, не управляемая, хвала богам.
Блин. Делаю в православном отборе Реквизит1 равно ДА и... ни фига. Пусто. В конфигураторе стоит использовать полнотекстовый поиск, не индексировать и все такое же. Так что самое интересное: делаю Реквизит1 равно НЕТ и..... работает. Шозабред? Спасибо большое всем откликнувшимся. Буду думать, что не так с реквизитом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |