|
|
|
Множественный выбор из ТЗ | ☑ | ||
|---|---|---|---|---|
|
0
Neutron
12.05.06
✎
10:11
|
Есть таблица значений. Необходимо дать пользователю возможность выбрать несколько строк из неё.
Попробывал через общую форму таким образом: Форма = ПолучитьОбщуюФорму("ВыборИзТз"); Форма.ЭлементыФормы.ТабличноеПоле.Значение=УслугиДляВыбора; Форма.ЭлементыФормы.ТабличноеПоле.СоздатьКолонки(); Форма.РежимВыбора=Истина; Форма.ЗакрыватьПриВыборе=Истина; Форма.МножественныйВыбор=Истина; РезультатВыбора = Форма.ОткрытьМодально(); Что то выбор не получается, происходит редактирование строки, что я пропустил? Может тут нужен другой подход? |
|||
|
1
Волшебник
модератор
12.05.06
✎
10:12
|
||||
|
2
Neutron
12.05.06
✎
10:15
|
(1)Это выбор из прикладных объектов (справочник,документ и т.д) это я знаю, а как быть если произвольная Таблица значений
|
|||
|
3
Neutron
12.05.06
✎
10:24
|
Я не пойму, сильно глупый вопрос или нет вариантов для ответа :).
|
|||
|
4
Волшебник
модератор
12.05.06
✎
10:24
|
(3) Не хватает слов русского могучего языка.
|
|||
|
5
123
12.05.06
✎
10:33
|
На табличное поле надо назначить обработчик события "Выбор" и в нем прописать:
СтанднартнаяОбработка = Ложь; |
|||
|
6
Neutron
12.05.06
✎
11:20
|
(4)Нужно не слова искать а попытаться вникнуть в вопрос если есть желание помочь. Просидел 20мин тупо изучая то что и так знал, думал что я после года практике по 1С 8.0 вообще отупел, просто такой проблемы у меня не возникало.
Что я должен был подчерпнуть из (1) того что я не написал в примере только ОбработкаВыбора и форма но это второе. А проблема в том что в Общей форме имеющей табличное поле с данными таблица значение не происходит множественный выбор. Инструкция типа указанная в (1) как я уже говорил в (2) Форма = Справочники.Абоненты.ПолучитьФормуВыбора(,ЭтаФорма); Форма.МножественныйВыбор = Истина; Форма.ЗакрыватьПриВыборе = Ложь; Форма.ОткрытьМодально(); Работала, работает и будет работать (я даже для надежности у себя проверил). |
|||
|
7
Neutron
12.05.06
✎
11:28
|
Ещё раз, можно помочь на пальцах, как это сделал 123 в (5).
У меня есть Общая форма, в ней ТабПоле с данными тапа значения ТаблицаЗначений. Необходимо организовать выбор пользователем нескольких значений из этой формы и получить соответсвенно их. Для этого я пишу Форма = ПолучитьОбщуюФорму("ВыборИзТз",ЭтаФорма); // загружаю нужную ТЗ Форма.ЭлементыФормы.ТабличноеПоле.Значение=УслугиДляВыбора; Форма.ЭлементыФормы.ТабличноеПоле.СоздатьКолонки(); //пробывал Ложь не помогает выбора всё равно нет Форма.ЗакрыватьПриВыборе=Истина; Форма.МножественныйВыбор=Ложь; Форма.ОткрытьМодально(); Как подсказал 123 в общей форме Процедура ТабличноеПолеВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) СтандартнаяОбработка=Ложь; КонецПроцедуры А дальше что? Множественный выбор с CTL не работает, форма при выборе не закрывается сама, соответсвенно и ОбработкаВыбора не вызывается |
|||
|
8
Волшебник
модератор
12.05.06
✎
11:32
|
Процедура ТабличноеПолеВыбор(...)
СтандартнаяОбработка=Ложь; //тут надо еще что-нибудь написать //... КонецПроцедуры |
|||
|
9
Neutron
12.05.06
✎
11:38
|
(8)Спасибо за понимание :-)
Да можно так Результат=Форма.ОткрытьМодально(); а в Процедура ТабличноеПолеВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) СтандартнаяОбработка=Ложь; Закрыть(ВыбраннаяСтрока); КонецПроцедуры и в итоге в результате строка, можно конечно сделать переменную массив и ТабличноеПолеВыбор добавлять в массив, а затем по кнопке закрывать с параметром, но мне кажется это ПЕРЕМУДРЁЖ, если я ошибаюсь просто скажите ято это единственный варимнт и я спокойно продолжу жальще(но мне кажется должно быть проще!) |
|||
|
10
Neutron
12.05.06
✎
11:42
|
Вообще можно по пунктам, а то мне кажется мы друг друга не понимаем.
Нужно произвести множественный выбор строк из ТаблицыЗначение (выбирать конечно будет пользователь, тобишь инерактивно) и обработать их. Как рекомендуете поступить ... и по пунктам плиз! может не обязательно использовать общую форму? |
|||
|
11
Волшебник
модератор
12.05.06
✎
11:43
|
(9) Посмотри тип параметра "ВыбраннаяСтрока"
|
|||
|
12
Волшебник
модератор
12.05.06
✎
11:44
|
(10) См. также обработку marks.epf на ИТС и статью "Реализация отметки строк флажками в табличном поле"
|
|||
|
13
Neutron
12.05.06
✎
11:48
|
(11)Выбранная строка тип СтрокаТаблицыЗначений. Я же говорю вся проблема что не получается множественный выбор, т.е. хотелось бы CTL зажал и выбраешь на здоровье, ан нет, а ТабличноеПолеВыбор срабатывает только по двойному щелчку по строке
(12)Хороше другое решение с флажками, но его можно принять если множественный выбор точно не работает, просто юзерам то флажки, то CTL, хочется однообразия. До этого при выборе всегда делал интерфейс с множественным выбором |
|||
|
14
123
12.05.06
✎
11:49
|
все получается.
|
|||
|
15
Волшебник
модератор
12.05.06
✎
11:50
|
(13) Множественный выбор точно работает. Юзер должен выбирать с нажатым шифтом или контролом, а затем нажать кнопку "Выбрать", которую ты запрограммируешь.
|
|||
|
16
123
12.05.06
✎
11:51
|
в реквизитах формы делаем таблицу значений, в которую(см.(8)) именно
//тут надо еще что-нибудь написать //... добавляем в нее строки. при закрытии - Закрыть(ТаблицаПодбора); |
|||
|
17
Волшебник
модератор
12.05.06
✎
11:52
|
(16) Можно и без реквизита формы
|
|||
|
18
123
12.05.06
✎
11:54
|
(17) можно и без ревизита. переменной. но тогда где же наши замечательные всплывающие подсказки в коде? тип переменной не сразу определится внутренним языком
|
|||
|
19
Волшебник
модератор
12.05.06
✎
11:58
|
(18) если переменная создается в процедуре
ТЗ = Новый ТаблицаЗначений то подсказки работают |
|||
|
20
123
12.05.06
✎
12:03
|
(19) Ладно, на будущее может так и буду делать.
|
|||
|
21
123
12.05.06
✎
12:07
|
Просто вариант когда через реквизит формы проще в поддержке. К примеру, из документа в форму подбора можно будет всякие гадости в этот параметр писать и т.п. В-общем, можно (нужно) все от задачи, которая в (0) описана абстрактно.
минусы у реквизитов формы есть? Отличия по контексту - это понятно, а производительность/косяки/поддержка и т.п.? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |