![]() |
![]() |
![]() |
|
Отбор в спике управляемой формы | ☑ | ||
---|---|---|---|---|
0
Мятежник
03.02.12
✎
10:01
|
Есть форма выбора (управляемая). Есть реквизит на ней (массив). Как сделать, чтобы при выборе реквизита делался отбор в списке согласно массиву? Тип списка ТаблицаЗначений.
пробовал //ДанныеКомплета - Массив Элементы.ОС.ОтборСтрок = Новый ФиксированнаяСтруктура("Ссылка", ДанныеКомплекта); но список полностью очищается и все. |
|||
1
vmv
03.02.12
✎
10:08
|
не помню лень смотреть свои обработки.
вроде я отказался от идеи использовать отборы на реквизит формы типа "Таблица значений", там не взлетает. Использую табличные части либо из набора реквизитов основного реквизита формы, либо подключаю к форме основного реквизита табличную часть из служебной обработки, почему нет?) |
|||
2
Мятежник
03.02.12
✎
10:11
|
нашел, проблема с массивом. поставил вместо массива одно значение с типом Справочники.ОССсылка. Заработало.
Тогда как сделать с массивом? может где то надо переключить на тип сравнения "В списке"? |
|||
3
vmv
03.02.12
✎
10:12
|
тю, вопрос должен был звучать так...
как сделать ограничение выбора значений поля ввода на управлямой форме согласно массиву выбора? Ответ инициализировать ПриНачалеВыбора() свойство список выбора согласно значениям массива. вроде так, короче копать свойства поля ввода список выбора, доступные значения. можно их задать прямо в конфигураторе или програмно |
|||
4
vmv
03.02.12
✎
10:13
|
кароче я бред написал, мне можно)
|
|||
5
vmv
03.02.12
✎
10:15
|
делался отбор в списке согласно выбранному значению из рекввизита поля ввода, где значения задаються массивом?
*Приносит утюг, клещи, вилы* будем добиваться еще более лаконичной и правильной формулировки вопроса, чтобы у людей с диким воображением не было шанска понять не верно) |
|||
6
Мятежник
03.02.12
✎
10:21
|
&НаКлиенте
Процедура ПерезаполнитьТаблицуФормы(Комплект); ДанныеКомплекта = ПолучитьКомплект(Комплект); //ТаблицаЗначений = ОС.Выгрузить(); Элементы.ОС.ОтборСтрок = Новый ФиксированнаяСтруктура("Ссылка", ДанныеКомплекта); //Элементы.ос.Обновить(); //Элементы.ОС.ОтборСтрок = неопределено; //ОС.Очистить(); //Для Каждого СтрокаТаблицыЗначений Из ТаблицаЗначений Цикл // Для Каждого ЭлементМассива Из ДанныеКомплекта Цикл // Если СтрокаТаблицыЗначений.Ссылка = ЭлементМассива Тогда // Элементы.ОС.ОтборСтрок = Новый ФиксированнаяСтруктура("Ссылка", Элемент.ТекущиеДанные.Позиция); // // // НоваяСтрока = ОС.Добавить(); // НоваяСтрока.Ссылка = СтрокаТаблицыЗначений.Ссылка; // НоваяСтрока.Количество = СтрокаТаблицыЗначений.Количество; // НоваяСтрока.НаличиеВТЧОС = СтрокаТаблицыЗначений.НаличиеВТЧОС; // КонецЕсли; // КонецЦикла; //КонецЦикла; КонецПроцедуры &НаСервере Функция ПолучитьКомплект(Комплект) МассивНаВыходе=новый Массив; //ТаблицаДанныхКомплекта = Комплект.ТЗКомплектующие.Выгрузить(); //МассивНаВыходе = ТаблицаДанныхКомплекта.ВыгрузитьКолонку("Комплектующие"); Эл = СПравочники.ОСУпр.НайтиПоКоду("0000000256"); Возврат МассивНаВыходе; Возврат МассивНаВыходе; КонецФункции |
|||
7
Мятежник
03.02.12
✎
10:22
|
блин не то скинул
|
|||
8
Мятежник
03.02.12
✎
10:22
|
&НаКлиенте
Процедура ПерезаполнитьТаблицуФормы(Комплект); ДанныеКомплекта = ПолучитьКомплект(Комплект); Элементы.ОС.ОтборСтрок = Новый ФиксированнаяСтруктура("Ссылка", ДанныеКомплекта); КонецПроцедуры &НаСервере Функция ПолучитьКомплект(Комплект) МассивНаВыходе=новый Массив; //ТаблицаДанныхКомплекта = Комплект.ТЗКомплектующие.Выгрузить(); //МассивНаВыходе = ТаблицаДанныхКомплекта.ВыгрузитьКолонку("Комплектующие"); Эл = СПравочники.ОСУпр.НайтиПоКоду("0000000256"); //Возврат МассивНаВыходе; Возврат Эл; КонецФункции |
|||
9
Мятежник
03.02.12
✎
10:22
|
вот так работает
|
|||
10
Мятежник
03.02.12
✎
10:24
|
а вот так уже нет!
&НаКлиенте Процедура ПерезаполнитьТаблицуФормы(Комплект); ДанныеКомплекта = ПолучитьКомплект(Комплект); Элементы.ОС.ОтборСтрок = Новый ФиксированнаяСтруктура("Ссылка", ДанныеКомплекта); КонецПроцедуры &НаСервере Функция ПолучитьКомплект(Комплект) МассивНаВыходе=новый Массив; ТаблицаДанныхКомплекта = Комплект.ТЗКомплектующие.Выгрузить(); МассивНаВыходе = ТаблицаДанныхКомплекта.ВыгрузитьКолонку("Комплектующие"); //Эл = СПравочники.ОСУпр.НайтиПоКоду("0000000256"); Возврат МассивНаВыходе; //Возврат Эл; КонецФункции |
|||
11
vmv
03.02.12
✎
10:33
|
читаем "библию"
Расширение таблицы формы для таблицы значений (Form table extension for value table) ОтборСтрок (RowFilter) Использование: Чтение и запись. Описание: Тип: Неопределено; ФиксированнаяСтруктура. Позволяет установить отбор по значению колонки. В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. Кто ничего не понял, произведем повотор В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. В качестве ключа используется имя колонки, а в качестве значения - значение, по которому осуществляется отбор. понятно? |
|||
12
Мятежник
03.02.12
✎
10:35
|
блин, я же спросил, как сделать отбор, если несколько значений!!!! хранятся в массиве!!!
|
|||
13
vmv
03.02.12
✎
10:36
|
(12) в ТЗ никак, полный и достаточный ответ дан в (1) )
|
|||
14
vmv
03.02.12
✎
10:40
|
подсказка, в управляемой форме можно объявить реквизит типа "ОбработкаОбъект", а уже из него на эту форму "бросить"
табличную чать из этой обработки. Таких служебных обработок можно сделать сколько угодно и пользоваться всеми прелестями более гибкого отбора из табличной части. Причем совсем не обязательно иметь реальную табличную часть в основном реквизите формы. Кто ничего не понял - идите вон, мне надоело толочь воду в ступе. У меня все, спасибо за внимание |
|||
15
Мятежник
03.02.12
✎
10:43
|
да пошел ты
|
|||
16
vmv
03.02.12
✎
10:49
|
У нас морозы были два дня крепкие.
В Киевском ззопарке есть ангорский казел - длинная шерсть, витые рага, борода...Бегал гадил по снегу, пугал детищек. Добрые тетеньки его закрыли на ночь в кладовке чтобы не замерз, положили там сено, тряпье - уважили, так сказать, козла. И что? Утром они пришли и увидели, что лопата, которой через окно поперли дверь выбита рогами, калитка во двор на защелке распахнута, видимо тоже рогами и в сугробе катаеться ангорский козлище, опять пугая детищек. Все что сказала егерша зоопарка - Ну настоящий казел! |
|||
17
DexterMorgan
03.02.12
✎
10:55
|
Ну это изврат=) но все же: добавить реквзиит в ТЗ типа булева. Если нужно сделать отбор - установить по условию в нужных строках Истина.Ну а потом ОтборСтрок =))
|
|||
18
Мятежник
03.02.12
✎
12:37
|
(17) вот эта мысль хорошая. Спасибо, попробую!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |