gifts2017

УНФ. Добавление нового варианта в предопределенный отчет

Опубликовал serpent Пентюхов С. Г. (serpent) в раздел Программирование - Практика программирования

Добавление нового варианта отчета в существующий (СКД, предопределенный).

Если Вам предстоит(появится желение) добавить новый вариант отчета, написанного на СКД и являющегося предопределенным, то вероятнее всего столкнетесь со следующей проблемой. У меня эта потребность возникла после внесения изменений в стандартный отчет "ЗаказыНаПроизводство"

У отчета, который является предопределенным(стандартным, идущим в поставке с конфигурацией), список доступный вариантов прописан жестко и обновляется(ИМХО) только при обновлении конфигурации. Соответственно, изменив встроенный отчет(добавив новый вариант) в списке вариантов Вы его не увидите. Хотя как внешний отчет он будет полностью отображать список вариантов.

ЧТО мне пришлось сделать(Вы можете придумать свой вариант решения данной проблемки).

В ОбщийМодуль.ВариантыОтчетовПредопределенный в процедуру

 

Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
 

 

добавляем описание своего варианта отчета...

Вариант = ВариантыОтчетов.ОписаниеВарианта(Настройки, Метаданные.Отчеты.ЗаказыНаПроизводство, "ВедомостьПоДатам");
Вариант.Описание = НСТР("ru = 'Отчет предназначен для анализа ВЫПОЛНЕНИЯ заказов(кол-во дней).'");

 

Далее нам(Вам) придется запустить стандартную процедуру обновления Предопределенных отчетов.

Общие модули "ВариантыОтчетов.Обновить()"

 

// Актуализирует данные справочника "Варианты отчетов".
//
Процедура Обновить() Экспорт

   ...

Для себя сделал следующее: В справочник ВариантыОтчетов в ФормуСписка, добавил кнопку с командой на обновление.

//Предназначено для ПЕРЕЗАПОЛНЕНИЯ предопределенных вариантов отчетов, после добавления новых вариантов
//иначе варианты отчетов обновляются только при обновлении конфигурации
//Добавлено: sergey 30.05.2014
&НаСервере
Процедура ПерезаполнитьВариантыНаСервере()
	
	ВариантыОтчетов.Обновить();
	
КонецПроцедуры

//Команда на форме
// Добавлено: sergey 30.05.2014
&НаКлиенте
Процедура ПерезаполнитьВарианты(Команда)
	
	Текст = "Обновить ""Варианты отчетов"" установленные в конфигурации по умолчанию?";
	Результат = Вопрос(Текст, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет, "Обновление предопределенных вариантов.");
	
	Если Результат = КодВозвратаДиалога.Да Тогда
		ПерезаполнитьВариантыНаСервере();
		
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = НСтр("ru = 'Обновили'");
		Сообщение.УстановитьДанные(ЭтаФорма);
		Сообщение.Сообщить();
	КонецЕсли;
	
КонецПроцедуры

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр (МимохожийОднако) 11.06.14 07:25
Может быть добавить внешний отчет? В базовых версиях изменения не внесешь.
2. serpent Пентюхов С. Г. (serpent) 11.06.14 09:54
(1) Вы правы... с Базовой версией не поможет данный метод Ссылку на Внешний отчет добавлял в публикации выше.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа