Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 июн 2024, 06:36

Установка текущих данных в динамическом списке

Автор Yulenka, 06 авг 2015, 00:29

0 Пользователей и 1 гость просматривают эту тему.

Yulenka

Здравствуйте! Я наверное, хочу невозможного, но все, может кто-то сталкивался с этим. У меня есть обработка с динамическим списком, в этот динамический список я добавила колонку "Обрабатывать" (тип булево), флаг нормально устанавливается по одной строчке (в обработке выбора все хорошо). Но мне нужно добавить кнопку "Выделить все". И вот тут я застопорилась. В одиночном режиме проблем нет, Реквизит2.ТекущиеДанные.Обрабатвать=истина (Реквизит2- это мой динамический список), все срабатывает. А вот как мне перебрать все строки в моем списке и установить флаг, не знаю. Я начала, рассуждать логически, если мне удалось сделать это через текущиеДанные, значит от этого и нужно плясать. Соответственно, я ничего более умного не придумала, как программно обойти мой список с помощью клавиши "down". вот код:
&НаКлиенте
Процедура ВыделитьВсе(Команда)
Кол=ПолучитьКолТаблицы();
wsh = Новый COMОбъект("WSCript.Shell");
ЭтаФорма.ТекущийЭлемент = Элементы.Реквизит2;
ОтмеченныеСтроки.Очистить();
ТекДанные = Элементы.Реквизит2.ТекущиеДанные;
ОтмеченныеСтроки.Добавить(ТекДанные);
Для стр=1 по кол-1 цикл
    wsh.sendkeys("{DOWN}");
    ТекДанные = Элементы.Реквизит2.ТекущиеДанные;
    Элементы.Реквизит2.АктивизироватьПоУмолчанию=Истина;
    ОтмеченныеСтроки.Добавить(ТекДанные);
    ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.обработывать=истина;
    ЭтаФорма.Элементы.Реквизит2.ТекущиеДанные.Обработывать=Истина;
КонецЦикла;   
КонецПроцедуры

По строкам перемещени в списке идет, но вот текущиеданные не меняются. Т.е. я встаю на на первую строку в списке, нажимаю на кнопку, в итоге в первой строке флаг устанавливается, а на остальных после нет, хотя в списке после нажатия кнопки выделенной становится последняя строка в списке.(down срабатывает) Что не так? Может есть какой-то другой способ сделать это? Делать с помощью таблиц значений не предлагать, мне хочется все реализовать через динамический список)

Yulenka

До меня дошло, с кнопкой Down нужно еще нажимать Enter. Все получилось)))

cska-fanat-kz

Абалдееееееееть! :xfbnsdfb:

Для каждого СтрокаТЧ Из РЕквизит2 Цикл
    СтрокаТЧ.Обрабатывать = ИСТИНА;
КонецЦикла;

ВСЕ!!!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Yulenka

Цитата: cska-fanat-kz от 06 авг 2015, 06:19
Абалдееееееееть! :xfbnsdfb:

Для каждого СтрокаТЧ Из РЕквизит2 Цикл
    СтрокаТЧ.Обрабатывать = ИСТИНА;
КонецЦикла;

ВСЕ!!!

Это динамический список, так не получится) Но я в принципе сделала сегодня по-другому. Передала в свой список запрос с установленным полем "Истина", так правильней и быстрей.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Yulenka

Цитата: Yulenka от 06 авг 2015, 00:29У меня есть обработка с динамическим списком, в этот динамический список я добавила колонку "Обрабатывать" (тип булево), флаг нормально устанавливается по одной строчке (в обработке выбора все хорошо).

Цитата: cska-fanat-kz от 06 авг 2015, 12:36
Цитата: Yulenka от 06 авг 2015, 10:59Это динамический список, так не получится)

кто сказал?
Уж поверьте, не получится. Попробуйте на управляемых формах создать список и обойти его как вы написали и ничего у вас не получится.

cska-fanat-kz

мда, с динамическим списком действительно не прокатывает...
замена текста запроса - наше все.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Yulenka

Да, с помощью него у меня и получилось)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск