Найти варианты отчетов для вывода.
Процедура НайтиВариантыОтчетовДляВывода(ПараметрыЗаполнения, АдресРезультата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Подсистемы.Ссылка КАК Подсистема,
| Подсистемы.РазделСсылка КАК РазделСсылка,
| Подсистемы.Представление КАК Представление,
| Подсистемы.Приоритет КАК Приоритет
|ПОМЕСТИТЬ втПодсистемы
|ИЗ
| &ТаблицаПодсистем КАК Подсистемы
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВариантыОтчетов.Ссылка КАК Ссылка,
| ПредопределенныеРазмещение.Подсистема КАК Подсистема,
| ПредопределенныеРазмещение.Важный КАК Важный,
| ПредопределенныеРазмещение.СмТакже КАК СмТакже,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияВариантов.Наименование) КАК СТРОКА(1000))
| КОНЕЦ КАК Наименование,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """"
| ТОГДА ВЫРАЗИТЬ(ВариантыКонфигурации.Описание КАК СТРОКА(1000))
| КОГДА НЕ &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """"
| ТОГДА ВЫРАЗИТЬ(ПредставленияИзКонфигурации.Описание КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ВариантыОтчетов.Описание КАК СТРОКА(1000))
| КОНЕЦ КАК Описание,
| ВариантыОтчетов.Отчет КАК Отчет,
| ВариантыОтчетов.ТипОтчета КАК ТипОтчета,
| ВариантыОтчетов.КлючВарианта КАК КлючВарианта,
| ВариантыОтчетов.Автор КАК Автор,
| ВЫБОР
| КОГДА ВариантыОтчетов.ВидимостьПоУмолчаниюПереопределена
| ТОГДА ВариантыОтчетов.ВидимостьПоУмолчанию
| ИНАЧЕ ВариантыКонфигурации.ВидимостьПоУмолчанию
| КОНЕЦ КАК ВидимостьПоУмолчанию,
| ВариантыОтчетов.Родитель КАК Родитель,
| ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров
|ПОМЕСТИТЬ втПредопределенные
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК ПредопределенныеРазмещение
| ПО (ВариантыОтчетов.Ссылка В (&ВариантыНайденныеПоиском)
| ИЛИ (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ПредопределенныеРазмещение.Подсистема В (&ПодсистемыНайденныеПоиском)))
| И ВариантыОтчетов.ПредопределенныйВариант = ПредопределенныеРазмещение.Ссылка
| И (ПредопределенныеРазмещение.Подсистема В (&МассивПодсистем))
| И (ВариантыОтчетов.ПометкаУдаления = ЛОЖЬ)
| И (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ВариантыОтчетов.Отчет В (&ОтчетыПользователя))
| И (НЕ ПредопределенныеРазмещение.Ссылка В (&ОтключенныеВариантыПрограммы))
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурации
| ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыКонфигурации.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации
| ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка
| И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов
| ПО ВариантыОтчетов.Ссылка = ПредставленияВариантов.Ссылка
| И (ПредставленияВариантов.КодЯзыка = &КодЯзыка)
|ГДЕ
| НЕ ВариантыОтчетов.ПометкаУдаления
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВариантыОтчетов.Ссылка,
| ПредопределенныеРазмещение.Подсистема,
| ПредопределенныеРазмещение.Важный,
| ПредопределенныеРазмещение.СмТакже,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыРасширений.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияИзРасширений.Наименование, ПредставленияВариантов.Наименование) КАК СТРОКА(1000))
| КОНЕЦ,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """"
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.ПредопределенныйВариант.Описание КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияИзРасширений.Описание, ПредставленияВариантов.Описание) КАК СТРОКА(1000))
| КОНЕЦ,
| ВариантыОтчетов.Отчет,
| ВариантыОтчетов.ТипОтчета,
| ВариантыОтчетов.КлючВарианта,
| ВариантыОтчетов.Автор,
| ВЫБОР
| КОГДА ВариантыОтчетов.ВидимостьПоУмолчаниюПереопределена
| ТОГДА ВариантыОтчетов.ВидимостьПоУмолчанию
| ИНАЧЕ ВариантыРасширений.ВидимостьПоУмолчанию
| КОНЕЦ,
| ВариантыОтчетов.Родитель,
| ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК ПредопределенныеРазмещение
| ПО (ВариантыОтчетов.Ссылка В (&ВариантыНайденныеПоиском)
| ИЛИ (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ПредопределенныеРазмещение.Подсистема В (&ПодсистемыНайденныеПоиском)))
| И ВариантыОтчетов.ПредопределенныйВариант = ПредопределенныеРазмещение.Ссылка
| И (ПредопределенныеРазмещение.Подсистема В (&МассивПодсистем))
| И (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ВариантыОтчетов.Отчет В (&ОтчетыПользователя))
| И (НЕ ПредопределенныеРазмещение.Ссылка В (&ОтключенныеВариантыПрограммы))
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширений
| ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыРасширений.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений
| ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка
| И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов
| ПО ВариантыОтчетов.Ссылка = ПредставленияВариантов.Ссылка
| И (ПредставленияВариантов.КодЯзыка = &КодЯзыка)
|ГДЕ
| НЕ ВариантыОтчетов.ПометкаУдаления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВариантыРазмещение.Ссылка КАК Ссылка,
| ВариантыРазмещение.Подсистема КАК Подсистема,
| ВариантыРазмещение.Использование КАК Использование,
| ВариантыРазмещение.Важный КАК Важный,
| ВариантыРазмещение.СмТакже КАК СмТакже,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование), ВариантыПредставления.Наименование) КАК СТРОКА(1000))
| КОНЕЦ КАК Наименование,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Описание, ВариантыРасширений.Описание), ВариантыОтчетов.Описание) КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание), ВариантыПредставления.Описание) КАК СТРОКА(1000))
| КОНЕЦ КАК Описание,
| ВариантыОтчетов.Отчет КАК Отчет,
| ВариантыОтчетов.ТипОтчета КАК ТипОтчета,
| ВариантыОтчетов.КлючВарианта КАК КлючВарианта,
| ВариантыОтчетов.Автор КАК Автор,
| ВЫБОР
| КОГДА ВариантыОтчетов.Родитель = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка)
| КОГДА ВариантыОтчетов.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка)
| ТОГДА ВариантыОтчетов.Родитель
| ИНАЧЕ ВариантыОтчетов.Родитель.Родитель
| КОНЕЦ КАК Родитель,
| ВариантыОтчетов.ВидимостьПоУмолчанию КАК ВидимостьПоУмолчанию,
| ВариантыОтчетов.ПредопределенныйВариант.КлючЗамеров КАК КлючЗамеров
|ПОМЕСТИТЬ втВарианты
|ИЗ
| Справочник.ВариантыОтчетов.Размещение КАК ВариантыРазмещение
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов КАК ВариантыОтчетов
| ПО (ВариантыОтчетов.Ссылка = ВариантыРазмещение.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ВариантыПредставления
| ПО (ВариантыОтчетов.Ссылка = ВариантыПредставления.Ссылка)
| И (ВариантыПредставления.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурации
| ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыКонфигурации.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации
| ПО (ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка)
| И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширений
| ПО ВариантыОтчетов.ПредопределенныйВариант = ВариантыРасширений.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений
| ПО (ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка)
| И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка)
|ГДЕ
| (ВариантыРазмещение.Ссылка В (&ВариантыНайденныеПоиском)
| ИЛИ (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ВариантыРазмещение.Подсистема В (&ПодсистемыНайденныеПоиском)))
| И (НЕ ВариантыОтчетов.ТолькоДляАвтора
| ИЛИ ВариантыОтчетов.Автор = &ТекущийПользователь)
| И ВариантыРазмещение.Подсистема В(&МассивПодсистем)
| И (&НетОтбораПоПодсистемамИОтчетам
| ИЛИ ВариантыОтчетов.Отчет В (&ОтчетыПользователя))
| И НЕ ВариантыОтчетов.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы)
| И (НЕ ВариантыОтчетов.Пользовательский
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
| И (ВариантыОтчетов.Пользовательский
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ЕСТЬNULL(втВарианты.Ссылка, втПредопределенные.Ссылка) КАК Ссылка,
| ЕСТЬNULL(втВарианты.Подсистема, втПредопределенные.Подсистема) КАК Подсистема,
| ЕСТЬNULL(втВарианты.Важный, втПредопределенные.Важный) КАК Важный,
| ЕСТЬNULL(втВарианты.СмТакже, втПредопределенные.СмТакже) КАК СмТакже,
| ЕСТЬNULL(втВарианты.Наименование, втПредопределенные.Наименование) КАК Наименование,
| ЕСТЬNULL(втВарианты.Описание, втПредопределенные.Описание) КАК Описание,
| ЕСТЬNULL(втВарианты.Автор, втПредопределенные.Автор) КАК Автор,
| ЕСТЬNULL(втВарианты.Отчет, втПредопределенные.Отчет) КАК Отчет,
| ЕСТЬNULL(втВарианты.ТипОтчета, втПредопределенные.ТипОтчета) КАК ТипОтчета,
| ЕСТЬNULL(втВарианты.КлючВарианта, втПредопределенные.КлючВарианта) КАК КлючВарианта,
| ЕСТЬNULL(втВарианты.ВидимостьПоУмолчанию, втПредопределенные.ВидимостьПоУмолчанию) КАК ВидимостьПоУмолчанию,
| ЕСТЬNULL(втВарианты.Родитель, втПредопределенные.Родитель) КАК Родитель,
| ВЫБОР
| КОГДА ЕСТЬNULL(втВарианты.Родитель, втПредопределенные.Родитель) = ЗНАЧЕНИЕ(Справочник.ВариантыОтчетов.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ВерхнийУровень,
| ЕСТЬNULL(втВарианты.КлючЗамеров, втПредопределенные.КлючЗамеров) КАК КлючЗамеров
|ПОМЕСТИТЬ втВсеВарианты
|ИЗ
| втПредопределенные КАК втПредопределенные
| ПОЛНОЕ СОЕДИНЕНИЕ втВарианты КАК втВарианты
| ПО втПредопределенные.Ссылка = втВарианты.Ссылка
| И втПредопределенные.Подсистема = втВарианты.Подсистема
|ГДЕ
| ЕСТЬNULL(втВарианты.Использование, ИСТИНА)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| втВсеВарианты.Ссылка КАК Ссылка,
| втВсеВарианты.Подсистема КАК Подсистема,
| втПодсистемы.Представление КАК ПодсистемаПредставление,
| ЕСТЬNULL(втПодсистемы.Приоритет, """") КАК ПодсистемаПриоритет,
| втПодсистемы.РазделСсылка КАК РазделСсылка,
| ВЫБОР
| КОГДА втВсеВарианты.Подсистема = втПодсистемы.РазделСсылка
| И втВсеВарианты.СмТакже = ЛОЖЬ
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК БезГруппы,
| втВсеВарианты.Важный КАК Важный,
| втВсеВарианты.СмТакже КАК СмТакже,
| ВЫБОР
| КОГДА втВсеВарианты.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Дополнительный)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК Дополнительный,
| ЕСТЬNULL(ЛичныеНастройки.Видимость, втВсеВарианты.ВидимостьПоУмолчанию) КАК Видимость,
| ЕСТЬNULL(ЛичныеНастройки.БыстрыйДоступ, ЛОЖЬ) КАК БыстрыйДоступ,
| ВЫБОР
| КОГДА втВсеВарианты.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний)
| ИЛИ втВсеВарианты.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Расширение)
| ТОГДА втВсеВарианты.Отчет.Имя
| КОГДА втВсеВарианты.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Дополнительный)
| ТОГДА """"
| ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(втВсеВарианты.Отчет КАК СТРОКА(150)), 14, 137)
| КОНЕЦ КАК ИмяОтчета,
| ЕСТЬNULL(втВсеВарианты.Наименование, """") КАК Наименование,
| втВсеВарианты.Описание КАК Описание,
| втВсеВарианты.Автор КАК Автор,
| втВсеВарианты.Отчет КАК Отчет,
| втВсеВарианты.ТипОтчета КАК ТипОтчета,
| втВсеВарианты.КлючВарианта КАК КлючВарианта,
| втВсеВарианты.Родитель КАК Родитель,
| втВсеВарианты.ВерхнийУровень КАК ВерхнийУровень,
| втВсеВарианты.КлючЗамеров КАК КлючЗамеров
|ИЗ
| втВсеВарианты КАК втВсеВарианты
| ЛЕВОЕ СОЕДИНЕНИЕ втПодсистемы КАК втПодсистемы
| ПО втВсеВарианты.Подсистема = втПодсистемы.Подсистема
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВариантовОтчетов КАК ЛичныеНастройки
| ПО втВсеВарианты.Подсистема = ЛичныеНастройки.Подсистема
| И втВсеВарианты.Ссылка = ЛичныеНастройки.Вариант
| И (ЛичныеНастройки.Пользователь = &ТекущийПользователь)
|ГДЕ
| (&НетОтбораПоВидимости
| ИЛИ ЕСТЬNULL(ЛичныеНастройки.Видимость, втВсеВарианты.ВидимостьПоУмолчанию))
|
|УПОРЯДОЧИТЬ ПО
| ПодсистемаПриоритет,
| Наименование";
ПоискПоСтроке = ЗначениеЗаполнено(ПараметрыЗаполнения.СтрокаПоиска);
ТолькоТекущийРаздел = ПараметрыЗаполнения.РежимНастройки Или Не ПоискПоСтроке Или ПараметрыЗаполнения.ИскатьВоВсехРазделах = 0;
ТаблицаПодсистем = ПараметрыЗаполнения.ПодсистемыПрограммы;
ТаблицаПодсистем.Индексы.Добавить("Ссылка");
МассивПодсистем = ТаблицаПодсистем.ВыгрузитьКолонку("Ссылка");
ПараметрыПоиска = Новый Структура;
Если ПоискПоСтроке Тогда
ПараметрыПоиска.Вставить("СтрокаПоиска", ПараметрыЗаполнения.СтрокаПоиска);
КонецЕсли;
Если ТолькоТекущийРаздел Тогда
ПараметрыПоиска.Вставить("Подсистемы", МассивПодсистем);
КонецЕсли;
РезультатПоиска = НайтиВариантыОтчетов(ПараметрыПоиска, Ложь, Истина);
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
Запрос.УстановитьПараметр("МассивПодсистем", МассивПодсистем);
Запрос.УстановитьПараметр("ТаблицаПодсистем", ТаблицаПодсистем);
Запрос.УстановитьПараметр("РазделСсылка", ПараметрыЗаполнения.ТекущийРазделСсылка);
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
Запрос.УстановитьПараметр("ВариантыНайденныеПоиском", РезультатПоиска.Ссылки);
Запрос.УстановитьПараметр("ПодсистемыНайденныеПоиском", РезультатПоиска.Подсистемы);
Запрос.УстановитьПараметр("ОтчетыПользователя", ПараметрыПоиска.ОтчетыПользователя);
Запрос.УстановитьПараметр("ОтключенныеВариантыПрограммы", ПараметрыПоиска.ОтключенныеВариантыПрограммы);
Запрос.УстановитьПараметр("НетОтбораПоПодсистемамИОтчетам", Не ПоискПоСтроке И ПараметрыПоиска.Подсистемы.Количество() = 0);
Запрос.УстановитьПараметр("НетОтбораПоВидимости", ПараметрыЗаполнения.РежимНастройки Или ПоискПоСтроке);
ТаблицаРезультат = Запрос.Выполнить().Выгрузить();
ЗаполнитьИменаОтчетов(ТаблицаРезультат);
ТаблицаРезультат.Колонки.Добавить("ВыводитсяВместеСОсновным", Новый ОписаниеТипов("Булево"));
ТаблицаРезультат.Колонки.Добавить("КоличествоПодчиненных", Новый ОписаниеТипов("Число"));
ТаблицаРезультат.Индексы.Добавить("Ссылка");
Если ПоискПоСтроке Тогда
// Удаление записей о вариантах, связанных с подсистемами, если запись не фигурирует в связи.
Для Каждого КлючИЗначение Из РезультатПоиска.ВариантыСвязанныеСПодсистемами Цикл
ВариантСсылка = КлючИЗначение.Ключ;
СвязанныеПодсистемы = КлючИЗначение.Значение;
Найденные = ТаблицаРезультат.НайтиСтроки(Новый Структура("Ссылка", ВариантСсылка));
Для Каждого СтрокаТаблицы Из Найденные Цикл
Если СвязанныеПодсистемы.Найти(СтрокаТаблицы.Подсистема) = Неопределено Тогда
ТаблицаРезультат.Удалить(СтрокаТаблицы);
КонецЕсли;
КонецЦикла;
КонецЦикла;
// Удаление записей о родителях, связанных с вариантами, если родитель пытается вывестись один (без вариантов).
Для Каждого РодительСсылка Из РезультатПоиска.РодителиСвязанныеСВариантами Цикл
МестаВывода = ТаблицаРезультат.НайтиСтроки(Новый Структура("Ссылка", РодительСсылка));
Для Каждого СтрокаТаблицы Из МестаВывода Цикл
Найденные = ТаблицаРезультат.НайтиСтроки(Новый Структура("Подсистема, Родитель", СтрокаТаблицы.Подсистема, РодительСсылка));
Если Найденные.Количество() = 0 Тогда
ТаблицаРезультат.Удалить(СтрокаТаблицы);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Если ТолькоТекущийРаздел Тогда
ДругиеРазделы = Новый Массив;
Иначе
КопияТаблицы = ТаблицаРезультат.Скопировать();
КопияТаблицы.Свернуть("РазделСсылка");
ДругиеРазделы = КопияТаблицы.ВыгрузитьКолонку("РазделСсылка");
Индекс = ДругиеРазделы.Найти(ПараметрыЗаполнения.ТекущийРазделСсылка);
Если Индекс <> Неопределено Тогда
ДругиеРазделы.Удалить(Индекс);
КонецЕсли;
КонецЕсли;
МассивСлов = ?(ПоискПоСтроке,
ВариантыОтчетовКлиентСервер.РазложитьСтрокуПоискаВМассивСлов(ВРег(СокрЛП(ПараметрыЗаполнения.СтрокаПоиска))),
Неопределено);
Результат = Новый Структура;
Результат.Вставить("ТолькоТекущийРаздел", ТолькоТекущийРаздел);
Результат.Вставить("ТаблицаПодсистем", ТаблицаПодсистем);
Результат.Вставить("ДругиеРазделы", ДругиеРазделы);
Результат.Вставить("Варианты", ТаблицаРезультат);
Результат.Вставить("ИспользоватьПодсветку", ПоискПоСтроке);
Результат.Вставить("РезультатПоиска", РезультатПоиска);
Результат.Вставить("МассивСлов", МассивСлов);
ПоместитьВоВременноеХранилище(Результат, АдресРезультата);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
УстановитьРежимВыводаВПанеляхОтчетов (БСП)
УдалитьПользовательскийВариантОтчета (БСП)
ПриУдаленииПользовательскихВариантовОтчета (БСП)