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

отбор-фильтр в таб. поле формы связанной с реквизитом формы

Автор andron81_81, 10 ноя 2018, 17:29

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

andron81_81

Цитата: wise от 13 дек 2018, 14:14
(8)
Цитата: andron81_81 от 13 дек 2018, 10:22Ещё раз последняя часть так же должна присуствовать в ТЗ. это можно реализовать путем "Найти" или "НайтиСтроки" ?
НайтиСтроки возвращает МассивСтрок... Скрывай ОсновнуюТаблицу и отображай ТаблицуИзМассива, и при отображении ТаблицыИзМассива показывай кнопку "Очистить фильтр", которая будет очищать и скрывать ТаблицуИзМассива и ВНОВЬ показывать ОсновнуюТаблицу... :P



в целом все участники молодцы, помогли - спасибо ! :zebzdr:
вышло вот так по советам. на форме таб. поле и две кнопки. одна отображает значения где Отображать = истина, другая наоборот. в них же я и обновляю переменную "Табличка" .
Всё ли корректно понял/сделал ? или можно проще (обновление таблицы значений "Табличка") ?


перем Табличка ;
Процедура ПриОткрытии()
Табличка = Новый ТаблицаЗначений();
Табличка.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка"));
Табличка.Колонки.Добавить("Цвет",Новый ОписаниеТипов("Строка"));
Табличка.Колонки.Добавить("Отображать",Новый ОписаниеТипов("Булево"));
Табличка.Колонки.Добавить("БылоИзменение",Новый ОписаниеТипов("Булево"));

НоваяСтрокаТаблицы = Табличка.Добавить();
НоваяСтрокаТаблицы.Наименование="Яблока";
НоваяСтрокаТаблицы.Цвет="красное";
НоваяСтрокаТаблицы.Отображать="Истина";
НоваяСтрокаТаблицы.БылоИзменение="Ложь";


НоваяСтрокаТаблицы = Табличка.Добавить();
НоваяСтрокаТаблицы.Наименование="Груша";
НоваяСтрокаТаблицы.Цвет="зеленый";
НоваяСтрокаТаблицы.Отображать="Истина";
НоваяСтрокаТаблицы.БылоИзменение="Ложь";
НоваяСтрокаТаблицы = Табличка.Добавить();
НоваяСтрокаТаблицы.Наименование="Виноград";
НоваяСтрокаТаблицы.Цвет="зеленый";
НоваяСтрокаТаблицы.Отображать="Истина";
НоваяСтрокаТаблицы.БылоИзменение="Ложь";
НоваяСтрокаТаблицы = Табличка.Добавить();
НоваяСтрокаТаблицы.Наименование="Клубника";
НоваяСтрокаТаблицы.Цвет="красный";
НоваяСтрокаТаблицы.Отображать="Ложь";
НоваяСтрокаТаблицы.БылоИзменение="Ложь";
   Отбор = Новый Структура ("Отображать",Истина);
   
   ОтфильтрованнаяТаблица = Новый ТаблицаЗначений();
   ОтфильтрованнаяТаблица = Табличка.Скопировать(Отбор);
   
   

ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение = ОтфильтрованнаяТаблица;




КонецПроцедуры

Процедура ИстинаНажатие(Элемент)

ОтборИзмененныхПолей = Новый Структура ("БылоИзменение",Истина);
  БылиИзмененияТаблица = ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение.НайтиСтроки(ОтборИзмененныхПолей);
 
Для Каждого СтрокаБылиИзмененияТаблица из БылиИзмененияТаблица Цикл
       
Табличка.Найти( СтрокаБылиИзмененияТаблица.Наименование ).Цвет = СтрокаБылиИзмененияТаблица.Цвет;
//СтрокаБылиИзмененияТаблица);
    КонецЦикла;  
 
  //Табличка.Скопировать(Отбор);

Отбор = Новый Структура ("Отображать",Истина);
   
   ОтфильтрованнаяТаблица = Новый ТаблицаЗначений();
   ОтфильтрованнаяТаблица = Табличка.Скопировать(Отбор);
   
ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение = ОтфильтрованнаяТаблица;


КонецПроцедуры

Процедура ЛожьНажатие(Элемент)


ОтборИзмененныхПолей = Новый Структура ("БылоИзменение",Истина);
  БылиИзмененияТаблица = ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение.НайтиСтроки(ОтборИзмененныхПолей);
 
Для Каждого СтрокаБылиИзмененияТаблица из БылиИзмененияТаблица Цикл
       
Табличка.Найти( СтрокаБылиИзмененияТаблица.Наименование ).Цвет = СтрокаБылиИзмененияТаблица.Цвет;
//СтрокаБылиИзмененияТаблица);
    КонецЦикла;  


Отбор = Новый Структура ("Отображать",Ложь);
   
   ОтфильтрованнаяТаблица = Новый ТаблицаЗначений();
   ОтфильтрованнаяТаблица = Табличка.Скопировать(Отбор);
   
ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение = ОтфильтрованнаяТаблица;



КонецПроцедуры

Процедура ТабличноеПоле1ЦветПриИзменении(Элемент)
ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.БылоИзменение=Истина;
КонецПроцедуры


не уверен , что кто-то будет скачивать, но инфобазу прилагаю на всякий, если что :)


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

Рейтинг@Mail.ru

Поиск