Установить отбор по значению текущей колонке. Заполняет отбор в соответствии с значением в текущей колонке событий.
// Заполняет отбор в соответствии с значением в текущей колонке событий.
//
// Параметры:
// ТекущиеДанные - Строка таблицы значений.
// ТекущийЭлемент - Текущий элемент строки таблицы значений.
// ОтборЖурналаРегистрации - Структура - отбор журнала регистрации.
// КолонкиИсключения - Список значений - колонки исключения.
//
// Возвращаемое значение:
// Булево - Истина, если отбор установлен, Ложь - Иначе.
//
Функция УстановитьОтборПоЗначениюВТекущейКолонке(ТекущиеДанные, ТекущийЭлемент, ОтборЖурналаРегистрации, КолонкиИсключения) Экспорт
Если ТекущиеДанные = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ИмяКолонкиПредставления = ТекущийЭлемент.Имя;
Если ИмяКолонкиПредставления = "ПредставлениеРазделенияДанныхСеанса" Тогда
ОтборЖурналаРегистрации.Удалить("ПредставлениеРазделенияДанныхСеанса");
ОтборЖурналаРегистрации.Вставить("РазделениеДанныхСеанса", ТекущиеДанные.РазделениеДанныхСеанса);
ИмяКолонкиПредставления = "РазделениеДанныхСеанса";
КонецЕсли;
Если КолонкиИсключения.Найти(ИмяКолонкиПредставления) <> Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ЗначениеОтбора = ТекущиеДанные[ИмяКолонкиПредставления];
Представление = ТекущиеДанные[ИмяКолонкиПредставления];
ИмяЭлементаОтбора = ИмяКолонкиПредставления;
Если ИмяКолонкиПредставления = "ИмяПользователя" Тогда
ИмяЭлементаОтбора = "Пользователь";
ЗначениеОтбора = ТекущиеДанные["Пользователь"];
ИначеЕсли ИмяКолонкиПредставления = "ПредставлениеПриложения" Тогда
ИмяЭлементаОтбора = "ИмяПриложения";
ЗначениеОтбора = ТекущиеДанные["ИмяПриложения"];
ИначеЕсли ИмяКолонкиПредставления = "ПредставлениеСобытия" Тогда
ИмяЭлементаОтбора = "Событие";
ЗначениеОтбора = ТекущиеДанные["Событие"];
КонецЕсли;
// По пустым строкам не отбираем.
Если ТипЗнч(ЗначениеОтбора) = Тип("Строка") И ПустаяСтрока(ЗначениеОтбора) Тогда
// Для пользователя по умолчанию имя пустое, разрешаем отбирать.
Если ИмяКолонкиПредставления <> "ИмяПользователя" Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
ТекущееЗначение = Неопределено;
Если ОтборЖурналаРегистрации.Свойство(ИмяЭлементаОтбора, ТекущееЗначение) Тогда
// Уже установлен отбор
ОтборЖурналаРегистрации.Удалить(ИмяЭлементаОтбора);
КонецЕсли;
Если ИмяЭлементаОтбора = "Данные" // Не списочные отборы, только 1 значение.
Или ИмяЭлементаОтбора = "Комментарий"
Или ИмяЭлементаОтбора = "Транзакция"
Или ИмяЭлементаОтбора = "ПредставлениеДанных" Тогда
ОтборЖурналаРегистрации.Вставить(ИмяЭлементаОтбора, ЗначениеОтбора);
Иначе
Если ИмяЭлементаОтбора = "РазделениеДанныхСеанса" Тогда
СписокОтбора = ЗначениеОтбора.Скопировать();
Иначе
СписокОтбора = Новый СписокЗначений;
СписокОтбора.Добавить(ЗначениеОтбора, Представление);
КонецЕсли;
ОтборЖурналаРегистрации.Вставить(ИмяЭлементаОтбора, СписокОтбора);
КонецЕсли;
Возврат Истина;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
УстановитьЗначенияОтборовНаУзле (БСП)
Открытие значения текущей строки колонки ТабличногоПоля на УФ
Установить отбор пользовательских настроек динамического списка
УстановитьПризнакЗавершитьВсеСеансыКромеТекущего (БСП)
УстановитьФиксированныеОтборы (БСП)