Меню Рубрики

Установка видимости элементов формы

Guesto.ru

Guesto notes

1C. Пользовательская видимость элементов формы

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

Форма параметров обработки, с тремя страницами «Параметры подключения», «Логирование» и «Дополнительно».

Задача

По умолчанию скрыть закладку «Дополнительно», но с возможность его отобразить при необходимости из режима 1С:Предприятие.

Решение

Реализуется данное требование достаточно просто, в конфигураторе для страницы «Дополнительно» переходим в свойство Пользовательская видимость и снимаем галочку «Видимость». Свойство Пользовательская видимость задает видимость элемента по умолчанию.

Теперь форма откроется со скрытой страницей «Дополнительно», для ее отображения необходимо перейти в меню «Еще» и установить видимость для страницы.

При изменении видимости пользователем значение будет сохранено и в дальнейшем будет открываться настроенная форма.

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

Комментарии 6

Здравствуйте,
А можно ли этим свойством управлять программно? И если можно, то как?

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

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

Если просто установить Видимость = Ложь, то тогда этого элемента не будет в «Изменить форму», а хочется чтобы был

Что же, что же… Где эта дрянь правится программно?

ЕСТЬТГДД, сосбтвенно нигде!
Пользовательская видимость может быть изменена только пользователем.

источник

Оптимальное изменение видимости элементов на управляемой форме

Флаг «Видимость»

В предыдущей статье была описана причина, по которой изменение видимости элементов на управляемой форме не является хорошим способом перестроения интерфейса, управлением доступности элементов формы для пользователей.

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

Все на клиенте

Вся суть описанного ниже способа заключается в изменении видимости / доступности элемента формы только на клиентской стороне, без обращений к серверу. Флаг «Видимость» нам не подойдет. Обратимся к другим возможностям.

Есть два варианта. Первый — использовать свойство элемента формы «Доступность». Но тогда, хоть польлзователь и не сможет работать с элементов формы для котрого доступность установлена в ЛОЖЬ, видеть он его все же будет. Вот так выглядит обработчик изменения доступности элемента формы:

Недоступны элемент принимает следующий вид:

При изменении доступности элемента обращений к серверу для перерисовки формы, как это было с флагом «Видимость», не происходит.

Но что, если нам нужно полностью скрыть элемент формы из вида? Продемонстрируем как это сделать на элементе динамического списка представленой выше формы. Добавим на форму группу элементов с видом «Страницы» и две подчиненных группы с видом «Страница». Элемент динамического списка перенесем в одну из них.

На пустую страницу, где нет динамического списка, добавим декорацию вида «Надпись», чтобы страница была не пустой и на нее можно было переключаться. У группы страниц свойство «Отображение страниц» установим в ЛОЖЬ, чтобы закладки были не видны.

Теперь в команде «Скрыть динамический список» напишем следующий обработчик:

Команда переключает страницы. При переключении страниц обращений к серверу не происходит, все выполняется на стороне клиента. При этом если мы переключимся на страницу «Страница2», где был добавлена лишь декорация надписи, то форма будет выглядеть как на скриншоте ниже:

Таким образом, мы скрыли элемент управляемой формы оптимальным образом без обращений к серверу, контекстных вызовов сервера. Следовательно, сэкономили объем передаваемого трафика и ускорили работу программы.

Проектируя интерфейс на управляемых формах, особенно если решение будет работать в режиме тонкого клиента, всегда необходимо учитывать поведение платформы при тех или иных действия. Так, например, выше уже было сказано, что при изменении видимости элементов выполняется полная перерисовка формы на сервере, а при изменении свойства «Доступность» или переключении страниц — все действия выполняются на клиентской стороне.

Читайте также:  Установка генератор от шнива

Используйте возможности управляемых форм правильно!

источник

Видимость, доступность элементов форм (управляемые формы)

Код расширения открытый и достаточно «топороный», но, работает и не замедляет открытие форм (зависит, конечно, от того, что выполняется в произвольном коде).
Описаний как подключить расширение конфигураций много, после подключения — надо отключить у этого расширения безопасный режим.
Расширение подключает Регистр Сведений «ВДЭФ_Настройки», все остальные дописки в расширении Общего модуля «МодификацияКонфигурацииПереопределяемый».

В разделе «Администрирование» добавляется пункт «ВДЭФ настройки».

В список форм добавлены формы Справочников, Документов, Регистров сведений, Обработок и бизнеспроцессов с задачами.
В список ролей все возможные роли из основной конфигурации и расширений(если такие есть).

1. Выбираем форму, далее подгружаются все элементы формы.

2. Выбираем необходимый элемент.

3. Из списка ролей выбираем роль, по доступности которой правило не работает (допустим, ПолныеПрава, чтобы у всех кроме администраторов.

4. Устанавливаем флажок, Видимость, Доступность, ТолькоПросмотр.

Также есть вариант, чтобы форма вообще не открывалась (стандартная обработка = ложь; отказ = истина;) — для этого ставится только «Не открывать форму», так же выбирается нужная роль, чтобы правило не срабатывало, элемент формы можно не выбирать.

И еще вариант, когда выбрана форма, не выбран элемент, выбрана или нет роль для срабатывания и стоит галка «ТолькоПросмотр» — форма откроется целиком со свойством «ТолькоПросмотр» = Истина;

Также, если будет заполнено поле Произвольный код, то он выполнится после всех выбранных действий.

На каждый элемент формы создаётся отдельная строка регистра.

Есть небольшие баги(допустим, правило которое создаётся, применяется так же и на форму записи ВДЭФ_Настройки, т.к. форма на которую «вешаются» ограничения получается через «ПолучитьФорму()». Следовательно, может получиться так, что правило, которое вы создали не откроется на редактирование, его достаточно будет удалить и создать заново), которые, возможно, исправлю, но они мало влияют на суть.

Делал для себя, но, вдруг кому пригодится:) Месяц в боевом режиме — полёт нормальный.

Если будут вопросы или ошибки — пишите, постараюсь ответить.

UPD: Если какая-то форма не работает, значит в модуле этой формы, в обработчике ПриСозданииНаСервере не добавлено:

Соответственно, чтобы форма работала, можно добавить её в это же расширение через конфигуратор, и создать ПриСозданииНаСервере, выбрать «После» и дописывать код который написан выше.

Хоть механизм и типовой, но не на всех формах добавлен.

Проверено на конфигурации Комплексная Автоматизация 2 (2.4.9.70), Технологическая Платформа 8.3.14.1854 и 8.3.15.1565. Должно работать на любой конфигурации где применяется типовой функционал модификации конфигурации(УТ 11, КА 2 и ERP 2).

источник

Гибкое управление свойствами доступности элементов управления в обычных формах 1С: Предприятия 8.х

Наверное, одной из самых непростых и скучных задач при проектировании обычной формы в «1С: Предприятии» является управление доступностью элементов в зависимости от того или иного набора данных. Мне встречалось очень много решений: от процедуры вроде УстановитьВидимостьДоступность() с включением в нее всех правил для элементов управления, до совершенно хаотично разбросанных по всему коду обращений к указанным свойствам.

Признаюсь честно, я тоже перепробовал различные способы, но в один прекрасный момент дошел до очень удобного и логичного (как мне кажется), который и будет описан в этом посте.

Все началось с того, что поиск решения для этой задачи натолкнул меня на статью из «Методик разработки» под названием «Организация управления доступом в форме». Ключевым моментом в статье является то, что управление доступом сосредотачивается в одной лишь процедуре УстановитьДоступ(). И если необходимо изменить состояния элементов управления, вызывается только эта процедура. Сама процедура не занимается определением доступа, а работает с данными из списков, которые формируются следующими функциями:

То есть сами условия доступности устанавливаются в этих функциях, а уже процедура УстановитьДоступ() присваивает соответствующим свойствам элементов управления эти заранее установленные значения.

Я разделил код на три составляющих. Первая — это методы, которые как раз выполняют изменения значений свойств доступности элементов формы. Вынес их в общий модуль. Назовем его условно УправлениеДоступом. Ниже расположен код, который размещается в нем. Я постарался максимально прокомментировать малопонятные участки кода.

Читайте также:  Установка и обслуживание оконных кондиционеров

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

Вторая часть когда — это функции, которые отвечают за формирование списков доступности. Они располагаются непосредственно в форме и являются экспортируемыми. Я немного отошел от стандарта 1С и заменил метод ПолучитьСписокДоступаКУправлениюВидимостью() на ПолучитьСписокУправлениеРедактированиемТекста(). Просто мне кажется, что так удобнее и логичнее. Ниже приведен шаблон кода с этими функциями:

И, наконец, третья часть — это процедура УстановитьДоступ(), которая тоже расположена в модуле формы. Именно эту процедуру мы вызываем в любом месте кода нашей формы, чтобы переопределить доступность элементов формы.

Чтобы было все нагляднее и понятнее, давайте рассмотрим следующий пример. Допустим, что у нас есть форма. На ней расположен флажок НаличнаяПродажа (булево), флажок ПробиватьФискальныйЧек (булево), поле ввода ДисконтнаяКарта (ссылка на справочник ДисконтныеКарты), поле ввода Комментарий (строка) и табличное поле Товары. Все связаны с одноименными реквизитами. У табличного поля есть колонка с именем СкидкаПоДисконтнойКарте (число). Кроме этого, есть командная панель ОсновныеДействияФормы, на которой размещена кнопка ПробитьЧек. Определим некоторые условия:

  1. Если установлен флажок НаличнаяПродажа, флажок ПробиватьФискальныйЧек видим и поле ДисконтнаяКарта доступно для ввода.
  2. Если стоит флажок ПробиватьФискальныйЧек, кнопка ПробитьЧек доступна.
  3. Если поле ДисконтнаяКарта заполнено, то видна колонка СкидкаПоДисконтнойКарте табличной части Товары и поле ввода Комментарий доступно для редактирования.

Тогда для нашего примера функции определения списков примут следующий вид:

Теперь достаточно вызвать процедуру формы УстановитьДоступ(), и мы получим то состояние элементов, которые задали.

Хочется выделить следующий момент. В списки можно можно добавлять пути к элементам формы. Например, для вышеприведенного примера с таблицей Товары имя элемента определяем как «Товары.Колонки.СкидкаПоДисконтнойКарте». Или путь к кнопке ПробитьЧек. Можно использовать множественные вложения, вроде «ИмяКоманднойПанели.Кнопки.ИмяПодменю.Кнопки.ИмяКнопки».

Предлагаемый вариант не конечный. Можно внести множество мелких дополнений, вроде указаний, какие списки обрабатывать, а какие нет. Но это уже зависит от точечных потребностей разработчика.

источник

Пример очень сложной установки привязок ПРОГРАММНО элементам формы, для их скрытия/ отображения. Скрытие элементов на форме. Программная свертка элементов на форме

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

Решение, понятно, для обычных форм) в управляемых за нас делают разрабы)

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

И нашел рабочий алгоритм действий. Обработка с открытым кодом, можете посмотреть реализацию и использовать для своих творческих нужд.
Так как сам на данную публикацию потратил день для создания примера, не считаю ее дорогой! Ваше время ценнее. Надеюсь, кому-то пригодится для примера работы с программным изменением видимости на форме!

Скачать файлы

Специальные предложения

Новый вопрос

Программная свертка элементов на форме

такой заголовок был бы информативным и логичным, а эта портянка с деталями бла бла бла к чему?
да и первой строкой неплохо бы указать сразу платформу и формы
8.2 — ОФ, а то мне лень телепатировать, что функционал безнадежно устарел.

К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.

Спрос рождает предложение. За 5 см обработку скачают 1 раз, за 2 см — пять раз, за 1 см — сто раз. Автор этого не понимает (к счастью для нас).

ЗЫ: вот у меня есть обработка из одной строки кода . И ее уже 21 раз скачали за 1 см. Предположу, что за 2 см ее бы не скачали ни разу )))
ЗЫЗЫ: а в комментах есть ответ, почему ее качают.

Читайте также:  Установка зеркал с поворотниками гранта

такой заголовок был бы информативным и логичным, а эта портянка с деталями бла бла бла к чему?
да и первой строкой неплохо бы указать сразу платформу и формы
8.2 — ОФ, а то мне лень телепатировать, что функционал безнадежно устарел.

К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.

Сейчас с похожим вожусь, но там сразу несколько элементов нужно сворачивать, а они привязанны друг к другу

Эл свертки 1
Эл свертки 2
Эл свертки 3
Эл свертки 4
Эл свертки 5

И сворачивает любые элементы хорошо, но вот когда разворачивает, тч1 которая привязана к нижней границе Эл свертки 5, через раз остаётся на месте, а элементы все на неё лезут ), не сталкивались с таким?

P.S. Даже если закрыть и открыть форму ей всё так же плохо) только перезапуск помогает)

См. также

СКД: красивые надписи в заголовках колонок

Необходимо немного исправить вывод надписей в заголовках колонок, сделать более читаемый вариант. Как это сделать?

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно — для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

Делаем из СКД Excel (ну, почти)

Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.

26.01.2020 3539 5 herfis 16

Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в «Дополнительные отчеты и обработки».

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

Декомпиляция условного оформления

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

23.12.2019 3969 31 XilDen 3

Многоуровневые списки выбора с оформлением элементов

Данная статья — попытка решить один маленький кусочек большой проблемы платформы 1С, а именно — бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений — красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С — это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.

17.12.2019 4474 2 azhilichev 5

Новый раздел на Инфостарте — Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

источник

Добавить комментарий

Adblock
detector