Групповая работа с элементами на форме

06.07.15

Разработка - Работа с интерфейсом

Часто необходимо скрыть определенные элементы на форме при определенных условиях. А когда этих элементов и условий множество, как не захламлять программу?

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример работы с группами элементов
.epf 7,89Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

У элементов формы есть свойство Подсказка. Именно здесь я указываю группу для  элемента.

Например: @1 - элемент принадлежит к группе 1

@1@3 - элемент принадлежит к группе 1 и к группе 3

При открытии формы считываю элементы в ТЗ.

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ЭлементыФормыТЗ = Новый ТаблицаЗначений;
	ЭлементыФормыТЗ.Колонки.Добавить("Элемент");
	ЭлементыФормыТЗ.Колонки.Добавить("Подсказка");
	
	Для Каждого эл из ЭлементыФормы Цикл 
		Если Найти(эл.Подсказка, "@") > 0 Тогда  
			НоваяСтрока = ЭлементыФормыТЗ.Добавить(); 
			НоваяСтрока.Элемент = эл;
			НоваяСтрока.Подсказка = эл.Подсказка;
			эл.Подсказка = "";
		КонецЕсли;
	КонецЦикла;

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

А при выполнении уловия пробегаю по элементам ТЗ и выполняю необходимые действия(видимость, доступность, очистить значения и пр.)

Процедура ПереключитьВидимость(Группа, Значение) Экспорт 
	 
	Для Каждого эл из ЭлементыФормыТЗ Цикл 
		Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
				эл.Элемент.Видимость = НЕ Значение;	
		КонецЕсли;
	КонецЦикла;
	 
КонецПроцедуры

Процедура ПереключитьДоступность(Группа, Значение) Экспорт 
	 
	Для Каждого эл из ЭлементыФормыТЗ Цикл 
		Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
			Если Строка(эл.Элемент) = "Флажок" Или Строка(эл.Элемент) = "Надпись" 
				Или Строка(эл.Элемент) = "Кнопка" Или Строка(эл.Элемент) = "ПолеКартинки"  Тогда 
				эл.Элемент.Доступность = Значение;	
			Иначе
				эл.Элемент.ТолькоПросмотр = НЕ Значение;	
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	 
КонецПроцедуры

Процедура ОчиститьПоля(Группа) Экспорт 
	 
	Для Каждого эл из ЭлементыФормыТЗ Цикл 
		Если Найти(эл.Подсказка, "@" + Группа) > 0 Тогда
			Если Строка(эл.Элемент) = "Флажок" Тогда 
				эл.Элемент.Значение = Ложь;	
			ИначеЕсли Строка(эл.Элемент) = "ПолеВвода" Тогда 
				эл.Элемент.Значение = "";
			ИначеЕсли Строка(эл.Элемент) = "ТабличноеПоле" Тогда
				эл.Элемент.Значение.Очистить();	
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	 
КонецПроцедуры

Групповая работа

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    63495    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    19359    27    6    

42

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10630    7    7    

11

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    19676    mrXoxot    44    

126

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    9364    smielka    37    

103

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    17384    1210    elcoan    52    

123

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    12335    166    acces969    31    

124
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. psih12 131 06.07.15 07:21 Сейчас в теме
Идея хорошая, за что плюсанул. Но как быть с тем, что подсказка должна нести смысловую нагрузку для конечного пользователя, т.е. подсказывать определенные действия пользователем в данном элементе управления?
Созинов; madonov; +2 Ответить
2. birk 127 06.07.15 07:52 Сейчас в теме
(1) psih12,
Для сохранения подсказок можно добавить функцию:
Функция УбратьГруппыИзПодсказки(Подсказка)
	
	ПозицияПодсказки = Найти(Подсказка, " ");
	
	Если ПозицияПодсказки > 0 Тогда 
		Возврат Прав(Подсказка, СтрДлина(Подсказка) - ПозицияПодсказки);	
	КонецЕсли;
	
КонецФункции
Показать


А обработчик перед открытием модифицировать на:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ЭлементыФормыТЗ = Новый ТаблицаЗначений;
	ЭлементыФормыТЗ.Колонки.Добавить("Элемент");
	ЭлементыФормыТЗ.Колонки.Добавить("Подсказка");
	
	Для Каждого эл из ЭлементыФормы Цикл 
		Если Найти(эл.Подсказка, "@") > 0 Тогда  
			НоваяСтрока = ЭлементыФормыТЗ.Добавить(); 
			НоваяСтрока.Элемент = эл;
			НоваяСтрока.Подсказка = эл.Подсказка;
			эл.Подсказка = УбратьГруппыИзПодсказки(эл.Подсказка);
		КонецЕсли;
	КонецЦикла;

КонецПроцедуры
Показать


Тогда подсказки будет иметь вид:
@1@3 Текст подсказки
Созинов; +1 Ответить
4. V.Nikonov 120 08.07.15 20:28 Сейчас в теме
(2) Одновременно с корректировкой подсказок, надо создавать списки групп элементов. И в таблице вместо полного текста подсказки, сохранять групповые метки. При включении элемента в несколько групп, под каждую группу строку... Если не хотите создавать несколько массивов/Списков/Таблиц.
3. V.Nikonov 120 08.07.15 20:20 Сейчас в теме
Так ведь можно не трогать функционал подсказки! Оставьте его для пользователя в нормальном виде. Правьте имена элементов формы: добавляйте к ним префиксы/Суффиксы... Тогда это останется только для программиста.
Хотя, не практике, чаще создают списки значений с именами элементов, для последующего группового управления ими....
Оставьте свое сообщение