Имя: Пароль:
1C
1С v8
Динамический список. Колонка заполняемая в списке.
0 YF
 
04.09.13
10:23
Задача:

Есть динамический список, отображает список документов. Нужно выделив несколько строк (произвольное количество, в произвольном порядке) затем сделать с выделенными данными какое-то действие, например напечатать отчет по ним.

Вариант с выделением строк с нажатым Ctl не устраивает, так как может быть нужно выбрать много строк и все не вмещаются в один экран.


Хочется:
Ставить галочку (как в списке с пометками), а потом уже нажимать кнопку запускающую нужное действие.


Вопрос: как такую галку в динамическом списке организовать.

Примечание: динамический список можно изменять как угодно, менять источник на произвольный запрос и т.п., главное, чтобы список отображал нужные документы и позволял их редактировать, вводить новые и т.п.
1 Лодырь
 
04.09.13
10:24
Добавь руками реквизит булево в  динамический список. В чем проблема?
2 YF
 
04.09.13
10:27
(1) Прекрасно, а как это сделать? Если в запросе, например:

Истина КАК мое поле,

то как его потом изменять, если оно будет всегда считываться как Истина?
3 Лодырь
 
04.09.13
10:44
Понял.. Кхм.. Есть мнение тчо придется отказываться от динамического списка с переделкой в таблицу или список.
4 Лодырь
 
04.09.13
11:00
Есть еще безумная идея, обрабатывать клик по ячейке с флагом, выбранные сохранять в список, который скармливать запросу динамического списка и выделять их )
5 YF
 
04.09.13
11:19
Хорошо, вопрос по другому:

Как установить выделение строки, при нажатии на нее, но чтобы она выделялась не одна, а добавлялась к выделенным строкам?


так же как с Ctl, но без Ctl
6 Лодырь
 
04.09.13
11:22
(5) Ты задаешь тот же самый вопрос.
7 Classic
 
04.09.13
11:25
(2)
А зачем оно будет потом считываться?
Обновляешь данные - значит и выделение сбрасывать надо.

(5)
Выделяй цветом в условном оформлении:)
Я еще держал список значений, в котором были выделенные строки
8 YF
 
04.09.13
11:27
(6) Не, я добился вот:

&НаКлиенте
Процедура Реквизит1ПриАктивизацииПоля(Элемент)
    
    Элементы.Реквизит1.ВыделенныеСтроки.Добавить(Элементы.Реквизит1.ТекущаяСтрока);
    
    
КонецПроцедуры

Смотрю отладчиком - строки добавляются в массив, но выделение на форме не показывается, блин
9 YF
 
04.09.13
11:28
(7) А как получить цвет фона такой же как и у цвета выделения?
10 YF
 
04.09.13
11:55
+

Хорошо, условное оформление. Т.е.:

1. В условном оформлении если элемент в Списке, то выделяем цветом строку

2. При клике на строке, я добавляю в в список условного оформления новый элемент

Это же будет ужасно тормозить?
11 Лодырь
 
04.09.13
11:57
(10) Не используй динамический список.
12 YF
 
04.09.13
12:01
(11) Ну идею-то с условным оформлением я правильно понял?
13 YF
 
04.09.13
12:03
+
Меня интересует вопрос: как "подсвечивается" стандартное выделение?

Я вот в список выделенных строк строки добавляю, а они не выделяются.

Там же что-то тоже вроде условного оформления - как бы на него воздействовать
14 NicolayNN
 
04.09.13
12:16
(8) Добавляем индекс строки Элементы.Реквизит1.ВыделенныеСтроки.Добавить(0);
Элементы.Реквизит1.ВыделенныеСтроки.Добавить(1); и т.п.
15 NicolayNN
 
04.09.13
12:18
ВыделенныеСтроки (SelectedRows)
Использование:

Только чтение.
Описание:

Тип: Массив.
Содержит массив идентификаторов выделенных строк.
16 YF
 
04.09.13
12:22
(14) Я же написал в (8) что строки добавляются, но выделение цветом в форме нет
17 NicolayNN
 
04.09.13
12:24
добавляй не строки, а индексы строк
18 YF
 
04.09.13
12:27
(17) Сам-то пробовал? тоже самое
19 NicolayNN
 
04.09.13
12:29
пробывал, все выделяется как надо
20 NicolayNN
 
04.09.13
12:31
событие ПриАктивизацииЯчейки
21 YF
 
04.09.13
12:38
(19) Кусочек своего кода выдай, а то у меня вот не получается:

&НаКлиенте
Процедура Реквизит1ПриАктивизацииЯчейки(Элемент)
    
    //Элементы.Реквизит1.ВыделенныеСтроки.Добавить(Элементы.Реквизит1.ТекущаяСтрока);
    Элементы.Реквизит1.ВыделенныеСтроки.Добавить(5);
    Элементы.Реквизит1.ВыделенныеСтроки.Добавить(6);
    
    Сообщить(Элементы.Реквизит1.ВыделенныеСтроки.Количество());

КонецПроцедуры
22 YF
 
04.09.13
12:43
Сообщить() выдает всегда 3, хотя это неправильно, количество должно нарастать
23 NicolayNN
 
04.09.13
12:45
Я ввел тебя в заблуждение, у меня тип реквизита ТаблицаЗначений, сейчас гляну на динамич. списке что можно сделать
24 NicolayNN
 
04.09.13
12:54
типа того

&НаКлиенте
Процедура СписокПриАктивизацииЯчейки(Элемент)
    Элементы.Список.ВыделенныеСтроки.Добавить(ПолучитьСсылку());
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСсылку()
    Возврат Справочники.Прокат.НайтиПоКоду("0000007")
КонецФункции
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший