Имя: Пароль:
1C
1С v8
Управляемая форма списка регистра накопления, как изменить отбор по Регистратору?
0 pvase
 
28.01.19
17:28
При открытии формы списка регистров накопления из документа открывается автоматически с отбором по регистратору. Как пользователю отключить этот отбор?
Почему возник такой вопрос, потому что в неуправляемой форме такой отбор легко отключить, после переделки формы регистра на управляемую форму не понятно как отключить этот отбор.
1 Вафель
 
28.01.19
17:40
делай пользовательский отбор, а не фиксированный
2 PiotrLoginov
 
28.01.19
17:40
(0) Если программист не предусмотрел в "форме списка регистров" некую "кнопку отключения отбора", то никак.
3 pvase
 
30.01.19
10:46
Спасибо, переделал. Если кому интересно, вот код:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Для Каждого ЗначОтбор Из ЭтаФорма.Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы Цикл
        Если ЗначОтбор.ЛевоеЗначение = ЭтаФорма.Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Регистратор").Поле Тогда
            
            ФлПереопределили = Ложь;
            Для Каждого ЗначОтборПольз Из ЭтаФорма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Элементы Цикл
                Если ЗначОтборПольз.ЛевоеЗначение = ЗначОтбор.ЛевоеЗначение Тогда
                    ЗначОтборПольз.Использование = Истина;
                    ЗначОтборПольз.ПравоеЗначение = ЗначОтбор.ПравоеЗначение;
                    ФлПереопределили = Истина;
                    //ЭтаФорма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Элементы[1]
                КонецЕсли;
            КонецЦикла;
            Если НЕ ФлПереопределили Тогда
                НоваяСтр = ЭтаФорма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
                ЗаполнитьЗначенияСвойств(НоваяСтр,ЗначОтбор);
                НоваяСтр.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();
            КонецЕсли;
            ЗначОтбор.Использование = Ложь;
        Иначе
            // Другие поля просто заполним
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры