Окно со списком отчетов при запуске 1С

09.07.19

Задачи пользователя - Менеджеры внешних отчетов

Две обработки, которые позволяют показать список отчетов при входе в 1С.

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

Наименование Файл Версия Размер
Окно со списком отчетов при запуске 1С:
.zip 10,40Kb
0
.zip 10,40Kb Скачать

За несколько лет работы в нашей базе УПП собралось достаточно много внешних отчетов. Сам справочник сгруппирован по организациям, отделам и т.д. При необходимости воспользоваться тем или иным отчетом, руководителям приходится тратить время на его поиски. В связи с этим поступило пожелание, чтобы при входе в 1С появлялось окно с перечнем нужных отчетов. Для каждого руководителя перечень может быть индивидуальным.

Реализовал это следующим образом: добавил новую настройку в регистре сведений НастройкиПользователей, сделал 2 внешние обработки и дописал немного кода в процедуру ПриНачалеРаботыСистемы().

Рассмотрим подробнее.

Новая настройка пользователя в регистре сведений НастройкиПользователей, результат видно на скринах.

Внешние обработки.

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

Обработка имеет один реквизит (тип ТаблицаЗначений) и одну форму.

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

Процедура РуководительПриИзменении(Элемент)
	Если Элемент.Значение <> Справочники.Пользователи.ПустаяСсылка() Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
	               |	НастройкиПользователей.Значение КАК ЗначениеНастройки
	               |ИЗ
	               |	РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
	               |ГДЕ
	               |	НастройкиПользователей.Пользователь.ИдентификаторПользователяИБ = &ТекПользователь
	               |	И НастройкиПользователей.Настройка.Код = &КодНастройки";
		Запрос.УстановитьПараметр("ТекПользователь", Руководитель.ИдентификаторПользователяИБ);			   
		Запрос.УстановитьПараметр("КодНастройки", "00138"); //При запуске показывать список отчетов для руководителей
		РезультатЗапроса = Запрос.Выполнить();
		Если НЕ РезультатЗапроса.Пустой() Тогда
			Выборка = РезультатЗапроса.Выбрать();
			Выборка.Следующий();
			ПоказатьОтчеты = Выборка.ЗначениеНастройки;
		КонецЕсли;
		
		СтруктураОбщихПараметров = ХранилищеОбщихНастроек.Загрузить("Обработка.ПросмотрОтчетов",,,Руководитель.Наименование);                       
		Если СтруктураОбщихПараметров <> Неопределено Тогда
			Если ТаблицаОтчетов.Колонки.Количество() = 0 Тогда
				ТаблицаОтчетов.Колонки.Добавить("НаименованиеОтчета",,"Наименование отчета");
				ТаблицаОтчетов.Колонки.Добавить("ДоступенДляПросмотра",,"Доступен для просмотра");
			КонецЕсли;
			Если СтруктураОбщихПараметров.Количество()>0 Тогда
				ТаблицаОтчетов = СтруктураОбщихПараметров;
			Иначе
				ТаблицаОтчетов = ЗаполнитьПоУмолчанию();
			КонецЕсли;	
		Иначе
			Если ТаблицаОтчетов.Колонки.Количество() = 0 Тогда
				ТаблицаОтчетов.Колонки.Добавить("НаименованиеОтчета",,"Наименование отчета");
				ТаблицаОтчетов.Колонки.Добавить("ДоступенДляПросмотра",,"Доступен для просмотра");
			КонецЕсли;
			ТаблицаОтчетов = ЗаполнитьПоУмолчанию();
		КонецЕсли;
	
	КонецЕсли;	
КонецПроцедуры

Функция ЗаполнитьПоУмолчанию()
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ВнешниеОбработки.Ссылка КАК НаименованиеОтчета,
	               |	ЛОЖЬ КАК ДоступенДляПросмотра
	               |ИЗ
	               |	Справочник.ВнешниеОбработки КАК ВнешниеОбработки
	               |ГДЕ
	               |	ВнешниеОбработки.Родитель.Код = ""000000443""
	               |	И НЕ ВнешниеОбработки.ПометкаУдаления";
	 ТЗ = Запрос.Выполнить().Выгрузить();			   
	 Возврат ТЗ;
КонецФункции

При нажатии на кнопку "Сохранить ":

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	Попытка
		ХранилищеОбщихНастроек.Сохранить("Обработка.ПросмотрОтчетов",,ТаблицаОтчетов,,Руководитель.Наименование);
	Исключение
		Сообщить("Не удалось сохранить значение настройки списка отчетов!");
	КонецПопытки;	
		
	Попытка
		НаборЗаписей = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей(); 
		НаборЗаписей.Отбор.Пользователь.Установить(Руководитель.Ссылка); 
		НаборЗаписей.Отбор.Настройка.Установить(ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоКоду("00138")); 
		НоваяЗапись = НаборЗаписей.Добавить(); 
		НоваяЗапись.Пользователь = Руководитель.Ссылка; 
		НоваяЗапись.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоКоду("00138"); 
		НоваяЗапись.Значение = ПоказатьОтчеты; 
		НаборЗаписей.Записать();
	Исключение
		Сообщить("Не удалось сохранить настройку пользователя для показа отчетов!");
	КонецПопытки;	
КонецПроцедуры

Вторая обработка стартует после входа в 1С. На ней список кнопок с наименованиями отчетов. При нажатии открывается соответствующий отчет.

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

Процедура ПриОткрытии()
	
	Попытка
		СтруктураПараметров = ХранилищеОбщихНастроек.Загрузить("Обработка.ПросмотрОтчетов",,,ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя);
	Исключение
		Сообщить("Не удалось получить структуру параметров");
	КонецПопытки;	
	
	ДействиеПриНажатииКнопки = Новый Действие("НажатаКнопкаОтчета");
	Если СтруктураПараметров <> Неопределено Тогда
		НомерКнопки = 0;
		Для каждого Строка Из СтруктураПараметров Цикл
			Если Строка.ДоступенДляПросмотра = Истина Тогда
				НомерКнопки = НомерКнопки+1;
				КнопкаОтчет = ЭлементыФормы.Добавить(Тип("Кнопка"), "Кнопка"+НомерКнопки, Истина, ЭлементыФормы.Панель1);
				КнопкаОтчет.Заголовок = Строка.НаименованиеОтчета.Наименование;
				КнопкаОтчет.Верх = НомерКнопки*30;
				КнопкаОтчет.Лево = 6;
				КнопкаОтчет.Ширина = 50;
				КнопкаОтчет.Высота = 20;
				КнопкаОтчет.Подсказка = Строка.НаименованиеОтчета.Наименование;
				КнопкаОтчет.УстановитьДействие("Нажатие",ДействиеПриНажатииКнопки);
			КонецЕсли;	
		КонецЦикла;	
	КонецЕсли;
	
	СтраницыПанели = ЭлементыФормы.Панель1.Страницы; 
	ТекущаяСтраница = СтраницыПанели.Получить(0); 
	ЭлементыФормы.Панель1.ТекущаяСтраница = ТекущаяСтраница;

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

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

А теперь рассмотрим код, который срабатывает при запуске 1С и открывает нашу обработку со списком отчетов.

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |	НастройкиПользователей.Значение КАК ЗначениеНастройки
               |ИЗ
               |	РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
               |ГДЕ
               |	НастройкиПользователей.Пользователь.ИдентификаторПользователяИБ = &ТекПользователь
               |	И НастройкиПользователей.Настройка.Код = &КодНастройки";
Запрос.УстановитьПараметр("ТекПользователь", ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор);			   
Запрос.УстановитьПараметр("КодНастройки", "00138"); //При запуске показывать список отчетов для руководителей
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
	Выборка = РезультатЗапроса.Выбрать();
	Выборка.Следующий();
	Если Выборка.ЗначениеНастройки Тогда
		ВнешняяФорма = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Просмотр отчетов"); 
		ИмяФайла = ПолучитьИмяВременногоФайла(); 
		ДвоичныеДанные = ВнешняяФорма.ХранилищеВнешнейОбработки.Получить(); 
		ДвоичныеДанные.Записать(ИмяФайла); 
		Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); 
		Форма.Открыть();
	КонецЕсли;		
КонецЕсли;

Проверено на конфигурации УПП 1.3.122.2.

См. также

Добавление отчета в расширение и вывод в меню отчетов на БСП на примере УТ 11.5

Менеджеры внешних отчетов Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Пример добавления отчета в расширение в типовые конфигурации на БСП на примере УТ 11.5, с добавлением в типовые меню отчетов.

1 стартмани

31.01.2024    838    DarkPinch222    0    

9

СКД, пример выбора варианта в обработке

Менеджеры внешних отчетов СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Абонемент ($m)

Пример выбора варианта отчета СКД в обработке. Варианты отчета хранятся в Макетах обработки.

1 стартмани

29.12.2023    815    4    vladimir_korshun    0    

6

Менеджер отчетов

Менеджеры внешних отчетов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

5 стартмани

04.09.2023    695    3    serg1234    0    

3

Расширение «Контрольные отчеты» для автоматизации проверки ведения учета в 1С:ERP 2х, 1С:КА 2.х

Менеджеры внешних отчетов Анализ учета Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Платные (руб)

Расширение «Контрольные отчеты» для автоматизации процесса проверки ведения учета в ПП. Со списком ошибок могут работать ответственные пользователи. Помогает в процессе внедрения ПП находить нарушения в бизнес-процессах. 

12000 руб.

08.08.2023    1453    1    1    

4

Менеджер внешних обработок и отчетов

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

При изменении и отладке внешней обработки приходится десятки раз заходить в Файл-Открыть и переоткрывать обработку. Данное решение значительно упрощает данную задачу.

1 стартмани

28.07.2023    4393    47    Serg2000mr    30    

58

[Расширение] Открытие варианта отчета из формы отчета

Менеджеры внешних отчетов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Добавление кнопки "Показать в списке" в формах отчетов для открытия соответствующего элемента справочника "Варианты отчетов".

1 стартмани

12.12.2022    1363    0    RocKeR_13    2    

4

Раздел меню внешних отчетов и обработок (расширение конфигурации на БСП)

Рабочее место Менеджеры внешних отчетов 8.3.14 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Абонемент ($m)

Иногда пользователю доставляет неудобство открывать разрозненно по спискам разных разделов внешние обработки и отчёты, и есть потребность поместить их в одно единственное окно. Данное расширение призвано решить такую задачу.

2 стартмани

12.04.2022    6052    36    Obertone    7    

25

Поиск варианта отчетов

Менеджеры внешних отчетов Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Управляемые формы. Обработка - поиск варианта отчета по ссылке на вариант. Полезно для конфигураций, имеющих справочник Варианты отчетов.

1 стартмани

02.03.2022    3595    6    Topmuk    0    

2
Оставьте свое сообщение