В данной статье расскажем об отборе на формах в режимах Предприятия и Конфигуратора и отключении видимости ненужных групп на управляемой форме в 1С.
Видимостью элементов можно управлять программно через свойство Видимость при открытии формы:
&НаКлиенте Процедура ПриОткрытии(Отказ) Элементы.ГруппаСчета.Видимость = Ложь; КонецПроцедуры
В случае если нужно скрыть некоторые строки списка с определенным значением нужно работать через отбор.
Открыть форму с отбором можно для любых объектов и несколькими способами в режиме 1С:Конфигуратор, рассмотрим на примере регистра накопления «Оплата счетов»:
Первый способ работает при открытии формы.
У формы есть параметр Отбор, который является структурой, где:
Ключ структуры — имя параметра,
Значение — значение параметра формы или как в данном случае предопределенное значение, как в данном случае. Если отбор берется со значением элемента формы, то имя элемента должно совпадать с именем параметра структуры.
ЗначениеОтбора = Новый Структура("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20")); ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора); ОткрытьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка", ПараметрыВыбора);
Если нужно открыть форму без отбора, но скрыть несколько элементов можно это реализовать следующим образом:
Форма = ОткрытьФорму("РегистрНакопления.ОплатаСчетов.Форма"); Форма.Элементы.СтавкаНДС.Видимость = Ложь;
Второй способ заключается в добавлении кода в обработчике события формы списка оплата счетов ПриСозданииНаСервере
Для этого в нужной процедуре открываем форму
ОткрытьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка");
и уже в модуле открываемой формы
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтавкаНДС"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.РедимОтображения = РежимОтображенияЭлементаНастройкиКомпановкиДанных.Недоступный; ЭлементОтбора.ПравоеЗначение = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20"); КонецПроцедуры
Данный метод имеет больше возможностей для отбора по сравнению с предыдущим, потому, что ВидСравнения у отбора можно задавать не только Равно, но и Больше, Меньше и т.п.
ВидСравненияКомпоновкиДанных определяет набор видов сравнения, которые могут быть использованы в условиях отбора. Но стоит учитывать, что на мобильной платформе игнорируются следующие виды сравнения: НачинаетсяС, НеНачинаетсяС, СоответствуетШаблону, НеСоответствуетШаблону.
РежимОтображенияЭлементаНастройкиКомпоновкиДанных определяет режим отображения.
Используется при отображении списка в зависимости от режима отображения табличного поля.
Кроме того, если элемент принадлежит пользовательскому отбору, свойство используется при формировании начального состава пользовательского отбора и при применении пользовательского отбора к базовому.
Если использовать такой способ — то форма будет открываться всегда с таким отбором — независимо от места вызова формы.
РежимОтображенияЭлементаНастройкиКомпоновкиДанных содержит режимы отображения элемента настройки компоновки данных:
Авто — значение режима нужно получать из основных настроек,
БыстрыйДоступ — этот элемент настройки предназначен для режима быстрого доступа. Он будет доступен в табличном поле, если у расширения табличного поля отбора свойство РежимОтображения будет установлено в значение Все или БыстрыйДоступ,
Недоступный — этот элемент настройки не предназначен для изменения в составе пользовательской настройки,
Обычный — указывает на обычный режим отображения. Он будет доступен в табличном поле, если у расширения табличного поля отбора, свойство РежимОтображения будет установлено в значение Все.
Третий способ — возможность поместить условие отбора в произвольный запрос, выбирающий данные для динамического списка.
Для этого в форме списка создадим команду и соответствующую ей кнопку Оплата счетов.
В обработчике команды пишем следующее:
&НаКлиенте Процедура ОплатаСчетов(Команда) ФормаСписка = ПолучитьФорму("РегистрНакопления.ОплатаСчетов.ФормаСписка"); ФормаСписка.ФильтрПоНДС = Элементы.Список.ТекущаяСтрока; ФормаСписка.Открыть(); КонецПроцедуры
ТекущаяСтрока — это строка динамического списка, на которую будет установлен курсор после открытия формы. В качестве значения для параметра используются значения ссылок на объекты, которые содержит главная таблица динамического списка.
В результате мы получаем форму списка оплаченных счетов и с отбором по параметру ФильтрПоНДС, который передаем на форму, где значение параметра — это ссылка на текущий элемент в списке счетов и открываем форму с этим параметром.
Затем создадим форму списка оплаченных счетов и создадим реквизит формы ФильтрПоНДС, который мы будем использовать в качестве параметра формы при ее открытии. Теперь откроем палитру свойств основного реквизита формы Счета. Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть.
Создаем запрос со следующим текстом запроса, где указываем передаваемый параметр, по которому делаем отбор:
ВЫБРАТЬ ОплатаСчетов.СчетНаОплату, ОплатаСчетов.Организация, ОплатаСчетов.СтавкаНДС, ОплатаСчетов.Сумма, ОплатаСчетов.СуммаНДС ИЗ РегистрНакопления.ОплатаСчетов КАК ОплатаСчетов ГДЕ ОплатаСчетов.СтавкаНДС = &ФильтрПоНДС
Имя параметра в запросе может отличаться, так как сама передача данных будет в процедуре ПриОткрытии().
В этом обработчике событий формы списка внесем код установки значения параметра запроса ФильтрПоНДС,
&НаКлиенте Процедура ПриОткрытии(Отказ) Список.Параметры.УстановитьЗначениеПараметра("ФильтрПоТовару", ФильтрПоТовару); КонецПроцедуры
где
«ФильтрПоТовару» — параметр из запроса динамического списка,
ФильтрПоТовару — ссылка на текущую строку в списке оплата счетов,
Список.Параметры — это список параметров запроса динамического списка для реквизита Счета,
УстановитьЗначениеПараметра — устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.
Таким образом по нажатию на кнопку Оплата счетов в форме списка,результатом на форме будет список счетов с отбором по Ставке НДС с тем же значением, что и в выделенной в строке в списке счетов.
Настройка отбора в режиме 1С:Предприятие
В режиме Предприятия также можно настроить отбор. Пользователь может самостоятельно настроить состав и расположение колонок в списке, отборы документов и цвет фона строк и шрифта по определенным условиям.
Рассмотрим настройку списка документов на примере регистра накопления «Книга продаж».
Для настройки состава и расположения колонок: в правой верхней части списка документов по кнопке «Еще» выберите «Настроить список», а также есть кнопка «Изменить форму»
В окне «Настройка формы» по кнопке «Еще» можно изменить расположение колонок по кнопкам с синими стрелочками «вверх-вниз» («вверх» – колонка сдвинется вверх, «вниз» – колонка сдвинется вправо), удалить колонку (по кнопке с красным крестиком), скрыть или установить видимость колонки.
Для настройки отборов нужных документов: на панели настроек списка документов доступны отборы по: активности, дате оплаты, организации, ставка НДС, сумма НДС, счет фактура и т. д.
Если нет нужного фильтра, можно настроить свой: по кнопке «Еще» на форме списка выберите «Настроить список», на закладке «Отбор» настройте отбор по нужному полю