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

07.11.19

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

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

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

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

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

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

 

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

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

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

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

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

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

 

 

 

 

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

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

 

 

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

 

 

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

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

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

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

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

 

Результат:

 

 

 

 

 

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

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4484    dsdred    53    

71

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

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

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

24.01.2024    5284    YA_418728146    25    

63

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

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

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

11.12.2023    6401    dsdred    36    

111

1С-ная магия

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

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

06.10.2023    18466    SeiOkami    46    

118

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

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

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

14.09.2023    12086    human_new    27    

74

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

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

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

28.08.2023    8804    YA_418728146    6    

141

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

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

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

20.08.2023    6273    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

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

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15974    SeiOkami    31    

103