#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если (ОбщегоНазначения.РазделениеВключено())
И (ИнтернетПоддержкаПользователей.СеансЗапущенБезРазделителей()) Тогда
Отказ = Истина;
СтандартнаяОбработка = Ложь;
Возврат;
КонецЕсли;
Если Параметры.ТекущийПользователь.Пустая()
ИЛИ (ПравоДоступа("СохранениеДанныхПользователя", Метаданные) = Ложь) Тогда
ЭтотОбъект.ТекущийПользователь = Пользователи.ТекущийПользователь();
Иначе
ЭтотОбъект.ТекущийПользователь = Параметры.ТекущийПользователь;
КонецЕсли;
ЭтотОбъект.ЛентаНовостей = Параметры.ЛентаНовостей;
ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.Очистить();
ТаблицаЗначенийОтборов = ПолучитьИзВременногоХранилища(Параметры.АдресХранилищаТаблицыЗначенийПользовательскихОтборов);
ТаблицаЗначенийГлобальныхОтборов = ПолучитьИзВременногоХранилища(Параметры.АдресХранилищаТаблицыЗначенийГлобальныхОтборов);
Для каждого ТекущаяКатегория Из ЭтотОбъект.ЛентаНовостей.ДоступныеКатегорииНовостей Цикл
НоваяСтрока = ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.Добавить();
НоваяСтрока.КатегорияНовостей = ТекущаяКатегория.КатегорияНовостей;
НоваяСтрока.ЗаполняетсяАвтоматически = ТекущаяКатегория.КатегорияНовостей.ЗаполняетсяАвтоматически;
НоваяСтрока.РазрешеноНастраиватьПользователям = ТекущаяКатегория.РазрешеноНастраиватьПользователям;
Если ТаблицаЗначенийОтборов.Количество() > 0 Тогда
НайденнаяСтрока = ТаблицаЗначенийОтборов.Найти(ТекущаяКатегория.КатегорияНовостей, "КатегорияНовостей");
Иначе
НайденнаяСтрока = Неопределено;
КонецЕсли;
Если (НайденнаяСтрока <> Неопределено)
И (НоваяСтрока.РазрешеноНастраиватьПользователям = Истина)
И (НоваяСтрока.ЗаполняетсяАвтоматически = Ложь) Тогда
НоваяСтрока.СписокЗначенийОтборов = НайденнаяСтрока.СписокЗначенийОтборов.Скопировать();
Иначе
НоваяСтрока.СписокЗначенийОтборов.Очистить();
КонецЕсли;
Если ТаблицаЗначенийГлобальныхОтборов.Количество() > 0 Тогда
НайденнаяСтрока = ТаблицаЗначенийГлобальныхОтборов.Найти(ТекущаяКатегория.КатегорияНовостей, "КатегорияНовостей");
Иначе
НайденнаяСтрока = Неопределено;
КонецЕсли;
Если (НайденнаяСтрока <> Неопределено)
И (НоваяСтрока.ЗаполняетсяАвтоматически = Ложь) Тогда
НоваяСтрока.СписокЗначенийГлобальныхОтборов = НайденнаяСтрока.СписокЗначенийОтборов.Скопировать();
Иначе
НоваяСтрока.СписокЗначенийГлобальныхОтборов.Очистить();
КонецЕсли;
Если НоваяСтрока.ЗаполняетсяАвтоматически = Истина Тогда
НоваяСтрока.СписокЗначенийОтборовКоличество = 0;
НоваяСтрока.ОтбиратьПоКатегории = Ложь;
Иначе
Если НоваяСтрока.РазрешеноНастраиватьПользователям = Ложь Тогда
НоваяСтрока.СписокЗначенийОтборов.Очистить();
НоваяСтрока.СписокЗначенийОтборовКоличество = 0;
НоваяСтрока.ОтбиратьПоКатегории = Ложь;
Иначе
Если (НоваяСтрока.СписокЗначенийГлобальныхОтборов.Количество() > 0)
И (НоваяСтрока.СписокЗначенийОтборов.Количество() > 0) Тогда
БылиУдаления = Истина;
Пока БылиУдаления = Истина Цикл
БылиУдаления = Ложь;
Для каждого ТекущийПользовательскийОтбор Из НоваяСтрока.СписокЗначенийОтборов Цикл
НайденныйГлобальныйОтбор = НоваяСтрока.СписокЗначенийГлобальныхОтборов.НайтиПоЗначению(ТекущийПользовательскийОтбор.Значение);
Если НайденныйГлобальныйОтбор = Неопределено Тогда
БылиУдаления = Истина;
НоваяСтрока.СписокЗначенийОтборов.Удалить(ТекущийПользовательскийОтбор);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
НоваяСтрока.СписокЗначенийОтборовКоличество = НоваяСтрока.СписокЗначенийОтборов.Количество();
Если НоваяСтрока.СписокЗначенийОтборовКоличество = 0 Тогда
НоваяСтрока.ОтбиратьПоКатегории = Ложь;
Иначе
НоваяСтрока.ОтбиратьПоКатегории = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЭтотОбъект.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Настройка отборов для ленты новостей %1'"),
ЭтотОбъект.ЛентаНовостей);
Если ЭтотОбъект.ТекущийПользователь <> Пользователи.ТекущийПользователь() Тогда
ЭтотОбъект.Заголовок = ЭтотОбъект.Заголовок + " (" + ЭтотОбъект.ТекущийПользователь + ")";
КонецЕсли;
УстановитьУсловноеОформление();
ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей();
ОбновитьНадписиДоступностиОтборовДляКатегорииНовостей();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура КомандаОК(Команда)
Результат = ПодготовитьСтруктуруДляВозвратаПоОК();
ЭтотОбъект.Закрыть(Результат);
КонецПроцедуры
&НаКлиенте
Процедура КомандаНастроитьЗначенияОтборов(Команда)
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.РазрешеноНастраиватьПользователям = Ложь)
ИЛИ (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ЗаполняетсяАвтоматически = Истина) Тогда
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ЛентаНовостей", ЭтотОбъект.ЛентаНовостей);
ПараметрыОткрытия.Вставить("КатегорияНовостей", Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.КатегорияНовостей);
ПараметрыОткрытия.Вставить("СписокЗначенийОтборов", Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов);
ПараметрыОткрытия.Вставить("СписокЗначенийГлобальныхОтборов", Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийГлобальныхОтборов);
ПараметрыОткрытия.Вставить("ТекущийПользователь", ЭтотОбъект.ТекущийПользователь);
ОткрытьФорму(
"ХранилищеНастроек.НастройкиНовостей.Форма.ФормаНастройкиОтборовПоКатегории",
ПараметрыОткрытия,
Элементы.ОтборыПоЛентамНовостейПользовательские,
"");
КонецПроцедуры
&НаКлиенте
Процедура КомандаОчиститьЗначенияОтборов(Команда)
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.РазрешеноНастраиватьПользователям = Ложь)
ИЛИ (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ЗаполняетсяАвтоматически = Истина) Тогда
Возврат;
КонецЕсли;
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов.Очистить();
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборовКоличество =
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов.Количество();
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ОтбиратьПоКатегории = Ложь;
ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей(Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущаяСтрока);
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийГлобальныхОтборов.Количество() > 0 Тогда
ПоказатьОповещениеПользователя(
НСтр("ru='Часть отборов не удалена'"),
,
НСтр("ru='Отборы, настроенные администратором, удалить нельзя.'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтборыПоЛентамНовостейПользовательскиеОтбиратьПоКатегорииПриИзменении(Элемент)
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные <> Неопределено Тогда
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ОтбиратьПоКатегории = Ложь Тогда
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов.Очистить();
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборовКоличество =
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов.Количество();
КонецЕсли;
КонецЕсли;
ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей(Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущаяСтрока);
ОбновитьНадписиДоступностиОтборовДляКатегорииНовостей(Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ОтборыПоЛентамНовостейПользовательскиеПриАктивизацииСтроки(Элемент)
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные <> Неопределено Тогда
Если (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.РазрешеноНастраиватьПользователям = Истина)
И (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ЗаполняетсяАвтоматически = Ложь) Тогда
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаНастроитьЗначенияОтборов.Доступность = Истина;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаОчиститьЗначенияОтборов.Доступность = Истина;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаНастроитьЗначенияОтборов.Доступность = Истина;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаОчиститьЗначенияОтборов.Доступность = Истина;
Иначе
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаНастроитьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаОчиститьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаНастроитьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаОчиститьЗначенияОтборов.Доступность = Ложь;
КонецЕсли;
Иначе
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаНастроитьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКомандаОчиститьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаНастроитьЗначенияОтборов.Доступность = Ложь;
Элементы.ОтборыПоЛентамНовостейПользовательскиеКонтекстноеМенюКомандаОчиститьЗначенияОтборов.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтборыПоЛентамНовостейПользовательскиеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "ОтборыПоЛентамНовостейПользовательскиеСписокЗначенийОтборовПредставление" Тогда
СтандартнаяОбработка = Ложь;
КомандаНастроитьЗначенияОтборов(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтборыПоЛентамНовостейПользовательскиеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ТипСписокЗначений = Тип("СписокЗначений");
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = ТипСписокЗначений Тогда
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные <> Неопределено Тогда
Если (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ЗаполняетсяАвтоматически = Ложь)
И (Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.РазрешеноНастраиватьПользователям = Истина) Тогда
Если ТипЗнч(Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов) = ТипСписокЗначений Тогда
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов = ВыбранноеЗначение.Скопировать();
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборовКоличество =
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборов.Количество();
Если Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.СписокЗначенийОтборовКоличество = 0 Тогда
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ОтбиратьПоКатегории = Ложь;
Иначе
Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущиеДанные.ОтбиратьПоКатегории = Истина;
КонецЕсли;
ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей(Элементы.ОтборыПоЛентамНовостейПользовательские.ТекущаяСтрока);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПодготовитьСтруктуруДляВозвратаПоОК()
НайденныеСтроки = ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.НайтиСтроки(Новый Структура("ОтбиратьПоКатегории", Истина));
ТаблицаЗначенийПользовательскихОтборов = ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.Выгрузить(НайденныеСтроки);
Результат = Новый Структура("ЛентаНовостей, АдресХранилищаТаблицыЗначенийПользовательскихОтборов",
ЭтотОбъект.ЛентаНовостей,
ПоместитьВоВременноеХранилище(ТаблицаЗначенийПользовательскихОтборов));
Возврат Результат;
КонецФункции
&НаСервере
Процедура ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей(Знач ИдентификаторСтроки = Неопределено)
ТипСписокЗначений = Тип("СписокЗначений");
Если ИдентификаторСтроки = Неопределено Тогда
Для каждого ТекущаяСтрока Из ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские Цикл
ОбновитьНадписиПредставленияОтборовДляКатегорииНовостей(ТекущаяСтрока.ПолучитьИдентификатор());
КонецЦикла;
Иначе
НайденнаяСтрока = ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.НайтиПоИдентификатору(ИдентификаторСтроки);
Если НайденнаяСтрока <> Неопределено Тогда
НайденнаяСтрока.ЗаполняетсяАвтоматически = НайденнаяСтрока.КатегорияНовостей.ЗаполняетсяАвтоматически;
Если НайденнаяСтрока.ЗаполняетсяАвтоматически Тогда
Значение = ОбработкаНовостейПовтИсп.ПолучитьЗначениеПредопределеннойКатегории(НайденнаяСтрока.КатегорияНовостей);
Если ТипЗнч(Значение) = ТипСписокЗначений Тогда
Если Значение.Количество() >= 1 Тогда
Представление = Значение[Значение.Количество()-1].Значение;
Иначе
Представление = "";
КонецЕсли;
Иначе
Представление = Значение;
КонецЕсли;
НайденнаяСтрока.СписокЗначенийОтборовПредставление = "" + Представление;
Иначе
Если НайденнаяСтрока.РазрешеноНастраиватьПользователям = Истина Тогда
Если (НайденнаяСтрока.СписокЗначенийОтборов.Количество() = 0) Тогда
Если (НайденнаяСтрока.СписокЗначенийГлобальныхОтборов.Количество() = 0) Тогда
Если НайденнаяСтрока.ОтбиратьПоКатегории Тогда
НайденнаяСтрока.СписокЗначенийОтборовПредставление = НСтр("ru='Введите значения отборов'");
Иначе
НайденнаяСтрока.СписокЗначенийОтборовПредставление = "";
КонецЕсли;
Иначе
НайденнаяСтрока.СписокЗначенийОтборовПредставление = НСтр("ru='Настроено администратором:'") + " ";
Для каждого ТекущееЗначениеОтбора Из НайденнаяСтрока.СписокЗначенийГлобальныхОтборов Цикл
НайденнаяСтрока.СписокЗначенийОтборовПредставление = НайденнаяСтрока.СписокЗначенийОтборовПредставление + Строка(ТекущееЗначениеОтбора.Значение) + "; ";
КонецЦикла;
КонецЕсли;
Иначе
НайденнаяСтрока.СписокЗначенийОтборовПредставление = "";
Для каждого ТекущееЗначениеОтбора Из НайденнаяСтрока.СписокЗначенийОтборов Цикл
НайденнаяСтрока.СписокЗначенийОтборовПредставление = НайденнаяСтрока.СписокЗначенийОтборовПредставление + Строка(ТекущееЗначениеОтбора.Значение) + "; ";
КонецЦикла;
КонецЕсли;
Иначе
Если НайденнаяСтрока.СписокЗначенийГлобальныхОтборов.Количество() > 0 Тогда
НайденнаяСтрока.СписокЗначенийОтборовПредставление = Строка(НайденнаяСтрока.СписокЗначенийГлобальныхОтборов);
Иначе
НайденнаяСтрока.СписокЗначенийОтборовПредставление = "";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНадписиДоступностиОтборовДляКатегорииНовостей(Знач ИдентификаторСтроки = Неопределено)
Если ИдентификаторСтроки = Неопределено Тогда
Для каждого ТекущаяСтрока Из ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские Цикл
ОбновитьНадписиДоступностиОтборовДляКатегорииНовостей(ТекущаяСтрока.ПолучитьИдентификатор());
КонецЦикла;
Иначе
НайденнаяСтрока = ЭтотОбъект.ОтборыПоЛентамНовостейПользовательские.НайтиПоИдентификатору(ИдентификаторСтроки);
Если НайденнаяСтрока <> Неопределено Тогда
Если (НайденнаяСтрока.ЗаполняетсяАвтоматически = Истина) Тогда
НайденнаяСтрока.ПредставлениеДоступностиОтбора = НСтр("ru='Заполняется автоматически, настройка запрещена'");
Иначе
Если (НайденнаяСтрока.РазрешеноНастраиватьПользователям = Истина) Тогда
Если НайденнаяСтрока.ОтбиратьПоКатегории = Истина Тогда
НайденнаяСтрока.ПредставлениеДоступностиОтбора = НСтр("ru='Я хочу настроить отбор'");
Иначе
НайденнаяСтрока.ПредставлениеДоступностиОтбора = НСтр("ru='Показывать все новости по этой категории'");
КонецЕсли;
Иначе
Если НайденнаяСтрока.СписокЗначенийГлобальныхОтборов.Количество() > 0 Тогда
НайденнаяСтрока.ПредставлениеДоступностиОтбора = НСтр("ru='Отбор уже настроен администратором, настройка запрещена'");
Иначе
НайденнаяСтрока.ПредставлениеДоступностиОтбора = НСтр("ru='Эта настройка отбора запрещена администратором'");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеСписокЗначенийОтборовПредставление.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.ОтбиратьПоКатегории");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.РазрешеноНастраиватьПользователям");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.ЗаполняетсяАвтоматически");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста);
Элемент.Использование = Истина;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеПредставлениеДоступностиОтбора.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеОтбиратьПоКатегории.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеСписокЗначенийОтборовПредставление.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.РазрешеноНастраиватьПользователям");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.ЗаполняетсяАвтоматически");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветНедоступногоТекста);
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Использование = Истина;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеОтбиратьПоКатегории.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.ЗаполняетсяАвтоматически");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.РазрешеноНастраиватьПользователям");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
Элемент.Использование = Истина;
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтборыПоЛентамНовостейПользовательскиеПредставлениеДоступностиОтбора.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.ЗаполняетсяАвтоматически");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтборыПоЛентамНовостейПользовательские.РазрешеноНастраиватьПользователям");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
Элемент.Использование = Истина;
КонецПроцедуры
#КонецОбласти