В данной статье я хочу рассказать о отборе на формах в режимах Предприятия и Конфигуратора и отключение видимости ненужных групп на управляемой форме в 1С.

Видимостью элементов можно управлять программно через свойство Видимость при открытии формы:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Элементы.ГруппаСчета.Видимость = Ложь;
КонецПроцедуры

В случае если нужно скрыть некоторые строки списка с определенным значением нужно работать через отбор.

Открыть форму с отбором можно для любых объектов и несколькими способами в режиме 1С:Конфигуратор, рассмотрим на примере регистра накопления “Оплата счетов”:

Первый способ работает при открытии формы.

У формы есть параметр Отбор, который является структурой, где:

Ключ структуры – имя параметра,

Значение – значение параметра формы или как в данном случае предопределенное значение, как в данном случае. Если отбор берется со значением элемента формы, то имя элемента должно совпадать с именем параметра структуры.

ЗначениеОтбора = Новый Структура("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20"));
ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка", ПараметрыВыбора);

Если нужно открыть форму без отбора, но скрыть несколько элементов можно это реализовать следующим образом:

Форма = ОткрытьФорму("РегистрНакопления.ОплатаСчетов.Форма");
Форма.Элементы.СтавкаНДС.Видимость = Ложь;

Второй способ заключается в добавлении кода в обработчике события формы списка оплата счетов ПриСозданииНаСервере

Для этого в нужной процедуре открываем форму

ОткрытьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка");

и уже в модуле открываемой формы

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

Данный метод имеет больше возможностей для отбора по сравнению с предыдущим, потому, что ВидСравнения у отбора можно задавать не только Равно, но и Больше, Меньше и т.п.

ВидСравненияКомпоновкиДанных определяет набор видов сравнения, которые могут быть использованы в условиях отбора. Но стоит учитывать, что на мобильной платформе игнорируются следующие виды сравнения: НачинаетсяС, НеНачинаетсяС, СоответствуетШаблону, НеСоответствуетШаблону.

РежимОтображенияЭлементаНастройкиКомпоновкиДанных определяет режим отображения.

Используется при отображении списка в зависимости от режима отображения табличного поля.

Кроме того, если элемент принадлежит пользовательскому отбору, свойство используется при формировании начального состава пользовательского отбора и при применении пользовательского отбора к базовому.

Если использовать такой способ – то форма будет открываться всегда с таким отбором – независимо от места вызова формы.

РежимОтображенияЭлементаНастройкиКомпоновкиДанных содержит режимы отображения элемента настройки компоновки данных:

Авто – значение режима нужно получать из основных настроек,

БыстрыйДоступ – этот элемент настройки предназначен для режима быстрого доступа. Он будет доступен в табличном поле, если у расширения табличного поля отбора свойство РежимОтображения будет установлено в значение Все или БыстрыйДоступ,

Недоступный – этот элемент настройки не предназначен для изменения в составе пользовательской настройки,

Обычный – указывает на обычный режим отображения. Он будет доступен в табличном поле, если у расширения табличного поля отбора, свойство РежимОтображения будет установлено в значение Все.

Третий способ – возможность поместить условие отбора в произвольный запрос, выбирающий данные для динамического списка.

Для этого в форме списка создадим команду и соответствующую ей кнопку Оплата счетов.

Отбор на формах и отключение видимости ненужных групп на управляемой форме в 1С

В обработчике команды пишем следующее:

&НаКлиенте
Процедура ОплатаСчетов(Команда)
    
    ФормаСписка = ПолучитьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка");
    ФормаСписка.ФильтрПоНДС = Элементы.Список.ТекущаяСтрока;
    ФормаСписка.Открыть();
КонецПроцедуры

ТекущаяСтрока – это строка динамического списка, на которую будет установлен курсор после открытия формы. В качестве значения для параметра используются значения ссылок на объекты, которые содержит главная таблица динамического списка.

В результате мы получаем форму списка оплаченных счетов и с отбором по параметру ФильтрПоНДС, который передаем на форму, где значение параметра – это ссылка на текущий элемент в списке счетов и открываем форму с этим параметром.

Затем создадим форму списка оплаченных счетов и создадим реквизит формы ФильтрПоНДС, который мы будем использовать в качестве параметра формы при ее открытии. Теперь откроем палитру свойств основного реквизита формы Счета. Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть.

Отбор на формах и отключение видимости ненужных групп на управляемой форме в 1С

Создаем запрос со следующим текстом запроса, где указываем передаваемый параметр, по которому делаем отбор:

ВЫБРАТЬ
    ОплатаСчетов.СчетНаОплату,
    ОплатаСчетов.Организация,
    ОплатаСчетов.СтавкаНДС,
    ОплатаСчетов.Сумма,
    ОплатаСчетов.СуммаНДС
ИЗ
    РегистрНакопления.ОплатаСчетов КАК ОплатаСчетов
ГДЕ
    ОплатаСчетов.СтавкаНДС = &ФильтрПоНДС  

Имя параметра в запросе может отличаться, так как сама передача данных будет в процедуре ПриОткрытии().
В этом обработчике событий формы списка внесем код установки значения параметра запроса ФильтрПоНДС,

&НаКлиенте
Процедура ПриОткрытии(Отказ)

    Список.Параметры.УстановитьЗначениеПараметра("ФильтрПоТовару", ФильтрПоТовару);

КонецПроцедуры

где

“ФильтрПоТовару” – параметр из запроса динамического списка,

ФильтрПоТовару – ссылка на текущую строку в списке оплата счетов,

Список.Параметры – это список параметров запроса динамического списка для реквизита Счета,

УстановитьЗначениеПараметра – устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.

Таким образом по нажатию на кнопку Оплата счетов в форме списка,результатом на форме будет список счетов с отбором по Ставке НДС с тем же значением, что и в выделенной в строке в списке счетов.

 

Настройка отбора в режиме 1С:Предприятие

В режиме Предприятия также можно настроить отбор. Пользователь может самостоятельно настроить состав и расположение колонок в списке, отборы документов и цвет фона строк и шрифта по определенным условиям.

Рассмотрим настройку списка документов на примере регистра накопления “Книга продаж”.

Для настройки состава и расположения колонок: в правой верхней части списка документов по кнопке “Еще” выберите “Настроить список”, а также есть кнопка “Изменить форму”

В окне “Настройка формы”  по кнопке “Еще”можно изменить расположение колонок по кнопкам с синими стрелочками “вверх-вниз” (“вверх” – колонка сдвинется вверх, “вниз” – колонка сдвинется вправо), удалить колонку (по кнопке с красным крестиком), скрыть или установить видимость колонки.

Отбор на формах и отключение видимости ненужных групп на управляемой форме в 1С

Для настройки отборов нужных документов: на панели настроек списка документов доступны отборы по: активности, дате оплаты, организации, ставка НДС, сумма НДС, счет фактура и т. д.

Отбор на формах и отключение видимости ненужных групп на управляемой форме в 1С

Если нет нужного фильтра, можно настроить свой: по кнопке “Еще” на форме списка выберите “Настроить список”, на закладке “Отбор” настройте отбор по нужному полю

Отбор на формах и отключение видимости ненужных групп на управляемой форме в 1С