Имя: Пароль:
1C
1С v8
УФ Флажок в динамическом списке.
0 Паучог
 
21.04.12
09:19
На форме размещен динамический список. Как в дин.списке разместить колонку флажок, и затем обработать выбранные?
1 Паучог
 
21.04.12
18:48
up
2 Агент Инфостарта
 
22.04.12
01:23
(0) В динамическом списке элементы для непосредственного редактирования недоступны. Печально, но факт.
3 NcSteel
 
22.04.12
11:29
(0) Добавляем колонку и прикрепляем коллекцию картинок (есть галка; нет галки). При выборе пихаем строку в параметр запроса.
4 aleks-id
 
22.04.12
12:08
а в запрос добавить поле "ЛОЖЬ Как Флажок" не катит?
5 Паучог
 
22.04.12
12:16
(3) Оригинально. Надо попробовать. А, при обновлении динамического списка не потеряется фокус на выбранной строке?
6 Юрий Лазаренко
 
22.04.12
12:39
(5) Зависит от привязки ДС к основной таблице. Даже если теряется, его легко установить принудительно.
7 Юрий Лазаренко
 
22.04.12
12:41
(3) Я бы к этому делу добавил бы еще список значений, куда надо класть ссылки на выделенные элементы ДС. Таким образом картинки или флажки используются для обозначения факта выделения строки, а действия с элементами ДС производятся через список выбранных значений.
8 NcSteel
 
22.04.12
14:29
(7) Не против, но все описывать было лень
9 Паучог
 
23.04.12
08:16
(3) Непонятно по какому событию динамического списка обрабатывать изменение параметров.
По событию "Выбор" в ВыбраннаяСтрока - число - номер строки, как получить строку динамического списка по индексу строки?
10 aleks-id
 
23.04.12
09:32
(9) чем тебя (4) не устроило?
11 vmv
 
23.04.12
09:44
(9) понятие индекс строки у дсиска не существует, почитай про иднтифкатор строки

(10) он хочет, чтобы флаг был как непосредственная булевая колонка дсписка в стиле 8.1
12 aleks-id
 
23.04.12
10:31
(11) ну звиняйте. можно только так
http://depositfiles.com/files/cosr4sbnf
13 Паучог
 
23.04.12
10:37
Вопрос снят. (3) вполне устраивает. Всё работает. Правда небыстро.

Всем спасибо.
14 experimentator76
 
23.04.12
11:00
(0) как предлагали - использую массив ссылок в ДС
работает медленно - буду переписывать на ТЗ
15 Паучог
 
23.04.12
11:12
(14) Таблица значений не существует в тонком клиенте.

Доступность: Сервер, толстый клиент, внешнее соединение.
16 Юрий Лазаренко
 
23.04.12
11:53
(15) Существует, можно сделать реквизит формы с типом ТЗ
17 Паучог
 
23.04.12
12:02
(16) Можно, да. Только при заполнении таблицы получите:

Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
18 Агент Инфостарта
 
23.04.12
12:57
(17) Не получите, если ТЗ заполнять на сервере, как нормальные пацаны. Учите матчасть.
19 experimentator76
 
23.04.12
13:21
+(14) при установке такого флажка в ДС сбрасывает быстрый отбор (ctrl+F)
неудобно
20 experimentator76
 
23.04.12
13:23
++(14) хотя есть множественное выделение но массам простого люда оно чуждо и наглядно работает на небольших списках
а вот выбрать вначале и в конце и в середине выделением ненаглядно и ненадежно
ИМХО однаэс тут не доработал
21 vmv
 
23.04.12
15:50
(20) да все доработала, просто дсписок есть дсписок и нужно делать на его понятиях.

все решение уместилось в один рисунок(для людей уважающих Ван Гога) и пару строк кода - для сухарей)

http://dl.dropbox.com/u/7750370/mista/_607317/ФлагВДсписке.PNG

&НаКлиенте
Перем мВыбраныСсылки;
&НаКлиенте
Процедура ПриОткрытии(Отказ)
   мВыбраныСсылки=Новый Массив; ркКоличествоВыбранных=0;
   Список.Параметры.УстановитьЗначениеПараметра("мВыбраныСсылки",мВыбраныСсылки);
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   Если Поле.Имя="Флаг" Тогда
       СтандартнаяОбработка=Ложь; мИндекс=мВыбраныСсылки.Найти(ВыбраннаяСтрока);
       Если мИндекс=Неопределено Тогда
           мВыбраныСсылки.Добавить(ВыбраннаяСтрока);      
       Иначе    
           мВыбраныСсылки.Удалить(мИндекс);
       КонецЕсли;
   КонецЕсли;
   ркКоличествоВыбранных=мВыбраныСсылки.Количество();
   Список.Параметры.УстановитьЗначениеПараметра("мВыбраныСсылки",мВыбраныСсылки);
КонецПроцедуры
22 vmv
 
23.04.12
15:55
вот ссыло на картинку, ту убил, что-то там было лишним

http://dl.dropbox.com/u/7750370/mista/_607317/ФлагВДсписке.PNG

будет висеть дня три, мож неделю
23 vmv
 
23.04.12
16:08
при выборе всех флажков или снятии всех флажков(аналогично привычным конопкам) естественно не нужно заполнять весь массив ссылок - это будут тормоза.

Нужно просто оптимизировать запрос для установки флаг в ИСТИНА или Флаг в Ложь безусловно.

кароче ничего тормозить особо не должно, по крайней мере рисовка катринок точно медленнее, чем просто булек
24 experimentator76
 
23.04.12
16:37
(23) имхо заполнять и чистить массив имеет смысл всегда
массиы ведь для понимания что обрабатывать ?
ДС может обновиться и что-то проскользнуть в обработку несанкционировано
25 Паучог
 
23.04.12
21:10
(18) Что должно находиться на форме, чтобы отобразить ТЗ?
26 acsent
 
23.04.12
21:13
а может условное оформление?
27 Паучог
 
23.04.12
21:13
(21) Код получился точно такой же. Работает правда медленно.
28 Паучог
 
23.04.12
21:18
(18) Даже если вы правы - какой объем данных будет передаваться с сервера на клиента? В отличие дин.списка - который передаёт данные на клиента порциями.
29 Агент Инфостарта
 
23.04.12
23:17
(23) Известно, что. Элемент формы, связанный с реквизитом формы таблицей значений  в качестве источника данных.
Независимо от того, куда вы едете — это в гору и против ветра!