Доработка регистра сведений «Сохраненные настройки».

07.11.19

Разработка - Механизмы платформы 1С

Сортировка и отбор настроек пользователей в отчете.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Форма "ФормаУправленияНастройками" с процедурами и функциями
.epf 12,25Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

Доработка регистра сведений «Сохраненные настройки». Сортировка и отбор настроек пользователей в отчете.

В отчетах на базе «Универсального отчета» есть возможность выбора настройки других пользователей, но при большом кол-ве пользователей и настроек возникла сложность в навигации.

 

Предлагаю не большие доработки для устранения данной проблемы.

Добавление в форму списка настроек командной панели с функциями:

- Отбор по текущему значению

- Отключить отбор

- Упорядочить по возрастанию

- Упорядочить по убыванию

 

 

 

 

Регистр сведений «Сохраненные настройки» форма «ФормаУправленияНастройками»

Добавляем командную панель

 

 

Процедура КоманднаяПанельТабличноеПолеСписокНастроекОтборПоТекущемуЗначению(Кнопка)
	
	ТекКолонка = ЭлементыФормы.ТабличноеПолеСписокНастроек.ТекущаяКолонка;
	ТекЗначение = ЭлементыФормы.ТабличноеПолеСписокНастроек.ТекущиеДанные[ТекКолонка.Имя]; 
	
	КопияТЗ = Новый ТаблицаЗначений;
	КопияТЗ = СписокНастроек.Скопировать();
	
	КопияТЗ.Очистить();
	
	Отбор = Новый Структура();
	Отбор.Вставить(ТекКолонка.Имя,ТекЗначение);
	МассивЭлементов = СписокНастроек.НайтиСтроки(Отбор);
	
	Для Каждого ЭлементМассива Из МассивЭлементов Цикл 
		НоваяСтрока = КопияТЗ.Добавить();
		ЗаполнитьЗначенияСвойств(НоваяСтрока,ЭлементМассива);
	КонецЦикла; 
	
	СписокНастроек = КопияТЗ.Скопировать();
	Заголовок = "Восстановление настройки - " + ТекЗначение;
	ЭлементыФормы.КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.ОтключитьОтбор.Доступность = Истина;	
КонецПроцедуры

 

 

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

Процедура КоманднаяПанельТабличноеПолеСписокНастроекУпорядочитьПоВозрастанию(Кнопка)
	
	ТекКолонка = ЭлементыФормы.ТабличноеПолеСписокНастроек.ТекущаяКолонка;
	СписокНастроек.Сортировать(ТекКолонка.Имя + " ВОЗР");
	
КонецПроцедуры

Процедура КоманднаяПанельТабличноеПолеСписокНастроекУпорядочитьПоУбыванию(Кнопка)
	
	ТекКолонка = ЭлементыФормы.ТабличноеПолеСписокНастроек.ТекущаяКолонка;
	СписокНастроек.Сортировать(ТекКолонка.Имя + " УБЫВ");
	
КонецПроцедуры

Изменения в других процедурах

Процедура УправлениеОтображениемФормы()
	
	Если мВосстановлениеНастройки = Истина Тогда
		
		Заголовок = "Восстановление настройки";
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеДобавить);
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеСкопировать);
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеИзменить);
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеУдалить);
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеЗакончитьРедактирование);
		ЭлементыФормы.ТабличноеПолеСписокНастроек.ТолькоПросмотр = Истина;
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеНастройкиВсехПользователей.Пометка = НастройкиВсехПользователей;
		
		ЭлементыФормы.КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.ОтключитьОтбор.Доступность = Ложь; //RR 05.08.2013
				
	Иначе
		
		Заголовок = "Сохранение настройки";
		ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Удалить(ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ДействиеНастройкиВсехПользователей);
		
		//RR 05.08.2013
		КоманднаяПанельТабличноеПолеСписокНастроек = ЭлементыФормы.КоманднаяПанельТабличноеПолеСписокНастроек;
		Если КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Найти("ОтборПоТекущемуЗначению") <> Неопределено Тогда
			КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Удалить(КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.ОтборПоТекущемуЗначению);
		КонецЕсли;
		Если КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Найти("ОтключитьОтбор") <> Неопределено Тогда
			КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Удалить(КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.ОтключитьОтбор);
		КонецЕсли;
		
		Если КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Найти("УпорядочитьПоВозрастанию") <> Неопределено Тогда
			КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Удалить(КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.УпорядочитьПоВозрастанию);
		КонецЕсли;
		Если КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Найти("УпорядочитьПоУбыванию") <> Неопределено Тогда
			КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.Удалить(КоманднаяПанельТабличноеПолеСписокНастроек.Кнопки.УпорядочитьПоУбыванию);
		КонецЕсли;
		//RR 05.08.2013
		
	КонецЕсли;
	
КонецПроцедуры // УправлениеОтображениемФормы()

 

Результат:

 

 

 

 

 

Универсальный отчет Сохраненные настройки

См. также

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

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    7210    bayselonarrend    126    

61

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    10112    dsdred    62    

111

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

23.06.2024    14337    bayselonarrend    21    

164

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    8553    dsdred    18    

82

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    31214    YA_418728146    33    

75