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

07.11.19

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

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

Скачать исходный код

Наименование Файл Версия Размер
Форма "ФормаУправленияНастройками" с процедурами и функциями
.epf 12,25Kb
2
.epf 12,25Kb 2 Скачать

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

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

 

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

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

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

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

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

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

 

 

 

 

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

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

 

 

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

 

 

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

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

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

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

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

 

Результат:

 

 

 

 

 

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

См. также

Сервисы интеграции без Шины и интеграции

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

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

13.03.2024    3222    dsdred    16    

65

Как готовить и есть массивы

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

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

24.01.2024    7518    YA_418728146    25    

69

Планы обмена VS История данных

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

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    7760    dsdred    36    

115

1С-ная магия

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

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    20118    SeiOkami    46    

124

Дефрагментация и реиндексация после перехода на платформу 8.3.22

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

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    14049    human_new    27    

77

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    10418    YA_418728146    7    

148

Внешние компоненты Native API на языке Rust - Просто!

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

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    7017    sebekerga    54    

99