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

1С 8.2 Отбор на форме

Автор kot_oo, 27 окт 2013, 00:33

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

kot_oo

Помогите, При изменении Автомобиль отбор на какое то значение, должен показывать документы только от марки этой машины

Вот процедура, что сюда нужно добавить или изменить, а то так и не могу понять

&НаКлиенте
Процедура УстановитьФлажок()
   УдалитьФлажок();
   ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТранспортноеСредство");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементОтбора.Использование = Истина;
   ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   ЭлементОтбора.ПравоеЗначение = АвтомобильОтбор;
   КонецПроцедуры
&НаКлиенте
Процедура УдалитьФлажок()

   ЭлементыОтбора = Список.Отбор.Элементы;
   ПолеКомпоновки = Новый ПолеКомпоновкиДанных("ТранспортноеСредство");

   Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл

      Если ЭлементОтбора.ЛевоеЗначение = ПолеКомпоновки Тогда
         ЭлементыОтбора.Удалить(ЭлементОтбора);
      КонецЕсли;

   КонецЦикла;

КонецПроцедуры
&НаКлиенте
Процедура АвтомобильОтборПриИзменении(Элемент)
   Список.Отбор.
   Если НЕ АвтомобильОтбор.Пустая() Тогда
      Флажок = Истина
   КонецЕсли;
   
   Если Флажок Тогда
      УстановитьФлажок();
      Элементы.Список.Обновить();
   КонецЕсли;

КонецПроцедуры
&НаКлиенте
Процедура ФлажокПриИзменении(Элемент)
   Если Флажок тогда
      УстановитьФлажок();
   иначе
      УдалитьФлажок();
   КонецЕсли;
   Элементы.Список.Обновить();
КонецПроцедуры



//&НаКлиенте
//Процедура АвтомобильОтборОчистка(Элемент, СтандартнаяОбработка)
// Элементы.Список.Обновить();
//КонецПроцедуры

Besart


kot_oo

Цитата: Besart от 27 окт 2013, 01:18
а какая ошибка?
в том то и дело что никакой не выдает, но не работает

Besart

попробуйте после кода Элементы.Список.Обновить(); добавить ОбновитьИнтерфейс();

kot_oo

Цитата: Besart от 27 окт 2013, 19:33
попробуйте после кода Элементы.Список.Обновить(); добавить ОбновитьИнтерфейс();

Не получается ((

Может у вас есть код примера ???

Besart

а так? &НаКлиенте
Процедура УдалитьФлажок()
   ЭлементыОтбора = Список.Отбор.Элементы;
   Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
            ЭлементыОтбора.Удалить(ЭлементОтбора);
    КонецЦикла;
КонецПроцедуры

kot_oo

Цитата: Besart от 27 окт 2013, 23:47
а так? &НаКлиенте
Процедура УдалитьФлажок()
   ЭлементыОтбора = Список.Отбор.Элементы;
   Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
            ЭлементыОтбора.Удалить(ЭлементОтбора);
    КонецЦикла;
КонецПроцедуры


Тоже не как((

Ладно на днях спрошу у знакомого ))

Спасибо за помощь

Besart

у меня все работает

&НаКлиенте
Процедура ПроведенПриИзменении(Элемент)
ЭлементыОтбора = Список.Отбор.Элементы;
Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
ЭлементыОтбора.Удалить(ЭлементОтбора);
КонецЦикла;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Проведен;
Элементы.Список.Обновить();
КонецПроцедуры

kot_oo

Цитата: Besart от 28 окт 2013, 00:44
у меня все работает

&НаКлиенте
Процедура ПроведенПриИзменении(Элемент)
ЭлементыОтбора = Список.Отбор.Элементы;
Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
ЭлементыОтбора.Удалить(ЭлементОтбора);
КонецЦикла;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Проведен;
Элементы.Список.Обновить();
КонецПроцедуры


О заработало, только обновляет когда заново окно открывается )))

Щас попробую доделать
Спасибо
Добавлено: 28 окт 2013, 01:10


Цитата: kot_oo от 28 окт 2013, 01:03
Цитата: Besart от 28 окт 2013, 00:44
у меня все работает

&НаКлиенте
Процедура ПроведенПриИзменении(Элемент)
ЭлементыОтбора = Список.Отбор.Элементы;
Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
ЭлементыОтбора.Удалить(ЭлементОтбора);
КонецЦикла;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Проведен");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Проведен;
Элементы.Список.Обновить();
КонецПроцедуры


О заработало, только обновляет когда заново окно открывается )))

Щас попробую доделать
Спасибо

Лишние процедуры удалил заработало, Спасибо большое_))))

Теги:

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

Рейтинг@Mail.ru

Поиск