Имя: Пароль:
1C
 
Установка фильтра на поле формы при открытии
0 falselight
 
20.10.17
10:33
На форме поле Источник типа СправочникСсылка.ЗначенияСвойствОбъектов.
При открытии его открываются все значения этого справочника.
Подскажите пожалуйста как установить отбор на поле Свойство.
Что бы в нем отобразились нужные значения только. В какой процедуре?
1 Lexey_
 
20.10.17
10:36
(0) "В какой процедуре?"
напиши процедуру УстановкаОтбораНаПолеСвойство() и прям в ней пиши
2 falselight
 
20.10.17
10:38
В этой вроде ИсточникНачалоВыбораИзСписка
что в теле будет?
3 СамыйУмный
 
20.10.17
10:38
В НачалоВыбора()
4 СамыйУмный
 
20.10.17
10:39
(2) А там заполняй реквизит данные выбора нужны запросом
5 Lexey_
 
20.10.17
10:39
(2) код будет в теле, устанавливающий отбор
6 falselight
 
20.10.17
10:40
не могу найти пример (((((
7 falselight
 
20.10.17
10:40
Форма управляемая.
8 СамыйУмный
 
20.10.17
10:43
9 falselight
 
20.10.17
10:48
там ещё есть такой момент. При открытии формы списка справочника у этой формы списка есть реквизит свойство.
Можно ли как то в него из формы отчета передать значение?
А то если его задать это и есть фильтр.
10 СамыйУмный
 
20.10.17
10:51
Как то так:

В месте получения формы:
Параметры = Новый Структура("НовыйПараметр",ПоследнийЭлемент);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);

В модуле управляемой формы:  
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("НовыйПараметр") Тогда
        // здесь код обработки параметра
    КонецЕсли;
КонецПроцедуры
11 falselight
 
20.10.17
10:56
(10) В модуле управляемой формы, справочника?
А что бы не править в ней ничего можно?
12 falselight
 
20.10.17
10:57
(10) Я открываю форму списка, формы выбора нет.
13 _Дайвер_
 
20.10.17
11:07
(11) ТОгда вот тут
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",Параметры);
Поменяй на
ФормаСпмска = ПолучитьФорму("Справочник.Номенклатура.ФормаСписка",Параметры);
14 falselight
 
20.10.17
11:11
(13) Я не понимаю это все. Буду сам искать решение!
15 falselight
 
20.10.17
11:16
(13) Вы же предлагаете конфигурацию править!!!!
16 falselight
 
20.10.17
11:37
(10) Что такое у вас ПоследнийЭлемент?
17 falselight
 
20.10.17
11:46
В форме списка справочника

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("НовыйПараментр") Тогда
        Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Источник (канал рекламного воздействия)");    
    КонецЕсли;

При начале выбора на форме отчета в поле Источник

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


Сейчас вообще ничего не делается. Подскажите пожалуйста что поправить?
18 falselight
 
20.10.17
11:56
вот из за этого вообще форма не открывается списка, почему?

Процедура ИсточникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    //СтандартнаяОбработка  = Ложь;

    ПередаваемыеПараметры = Новый Структура("НовыйПараметр","ДляОтчета");
    ФормаВыбора           = ПолучитьФорму("Справочник.ЗначенияСвойствОбъектов.ФормаСписка", ПередаваемыеПараметры);
КонецПроцедуры
19 Lexey_
 
20.10.17
11:57
(18) потому, что ты ее не открываешь
20 falselight
 
21.10.17
05:21
Ребята, вот правильное решение. Оно работоспособно без изменения объектов конфигурации!!!

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