Помогите разобраться с СКД

1. aalu14 12.07.22 17:39 Сейчас в теме
Добрый день, уважаемые форумчане! Делаю отчет в виде диаграммы, необходимо задать параметры периода в запросе. Без параметров диаграмма выводится, но если добавляю параметры, то выводится ничего. В чем может быть дело, куда копать? Заранее спасибо!
Скрины запроса и параметров приложил.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
8. spacecraft 13.07.22 09:59 Сейчас в теме
(5) на закладке "Параметры" для параметра Период снять флаг "Ограничение доступности".
На закладке "Настройки" в "Параметры" включить параметр "Период". Включить его в пользовательские настройки.
Там же можно установить значение по умолчанию.
Но самое главное, появится новая закладка "Параметры" в настройках отчета. Где и можно устанавливать значения параметра.
m-pol68; aalu14; +2 Ответить
27. spacecraft 13.07.22 12:02 Сейчас в теме
(26) там же еще параметр Контрагент.
Который указан в самой настройке.
Вот из-за него вполне и не выводит.
В консоле отчетов это еще работает (все работает в пользовательском режиме).
Но в схеме СКД это давно не срабатывает. Подозреваю не находит контрагента.
Для этого параметра нужно проделать такие же манипуляции, как и для параметра Период.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 12.07.22 17:43 Сейчас в теме
(1)ну тут либо не заданы значения выделенных параметров, либо нет данных за этот период
3. spacecraft 12.07.22 18:07 Сейчас в теме
(1) и где установленные значения параметра Период?
Не установленные значения = значения по умолчанию = Пустая дата.
Естественно на пустую дату данных нет...
5. aalu14 13.07.22 09:06 Сейчас в теме
(3) Все равно не получается...
Прикрепленные файлы:
8. spacecraft 13.07.22 09:59 Сейчас в теме
(5) на закладке "Параметры" для параметра Период снять флаг "Ограничение доступности".
На закладке "Настройки" в "Параметры" включить параметр "Период". Включить его в пользовательские настройки.
Там же можно установить значение по умолчанию.
Но самое главное, появится новая закладка "Параметры" в настройках отчета. Где и можно устанавливать значения параметра.
m-pol68; aalu14; +2 Ответить
10. aalu14 13.07.22 10:03 Сейчас в теме
(8) Прошу прощения, я относительно новичок. "Включить его в пользовательские настройки" - это добавить Пользовательские поля?
(8)
11. spacecraft 13.07.22 10:06 Сейчас в теме
(10) ПКМ по параметру во вкладке "Настройки" -> Свойства элемента пользовательских настроек. Там выставить флаг "Включать в пользовательские настройки"
13. aalu14 13.07.22 10:15 Сейчас в теме
4. Maddream 13.07.22 08:21 Сейчас в теме
(1) Может нужно добавить необязательные параметры
Прикрепленные файлы:
6. tvm 13.07.22 09:34 Сейчас в теме
(5) а на форму поле с "Период" выведено? Через него точно период задается ?
7. aalu14 13.07.22 09:56 Сейчас в теме
(6) Пока на форму не вывожу, только в консоли отчетов.
9. tvm 13.07.22 10:02 Сейчас в теме
(7) ну а в консоли то точно задаете через "Период" ?
12. aalu14 13.07.22 10:06 Сейчас в теме
(9)Да, если Вы про вкладку "Параметры данных"
14. aalu14 13.07.22 10:21 Сейчас в теме
Но в выводе на форму такая же беда. Может быть подскажете, в чем дело?

&НаКлиенте
Процедура ПолучитьМакеты()
	НовыйМакет=ТабличноеПолеАнализ.Добавить();
	НовыйМакет.Название="Макет";
	НовыйМакет.Описание="Макет";
	НовыйМакет.НачалоПериода = НачалоГода(ТекущаяДата());
	НовыйМакет.КонецПериода = КонецГода(ТекущаяДата())

&НаСервере
Функция ПолучитьМакет(НазваниеМакета)
	Об = РеквизитФормыВЗначение("Объект");
	СхемаКомпоновкиДанных = Об.ПолучитьМакет(НазваниеМакета);
	ЗначениеВРеквизитФормы(Об,"Объект");
	
	Возврат СхемаКомпоновкиДанных;
КонецФункции

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

КонецПроцедуры
Показать


Делаю так.
15. spacecraft 13.07.22 10:26 Сейчас в теме
(14)
Если не ЗначениеЗаполнено(НачалоПериода) Тогда
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецМесяца(ТекущаяДата()));
Иначе
НастройкиОсновной = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Основной").Настройки;

ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
ПараметрПериод.Значение = НачалоДня( НачалоПериода);
ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
ПараметрПериод.Значение = КонецДня( КонецПериода);
КонецЕсли;


Зачем пытаетесь установить заблокированные параметры? Они будут вычисляться из параметра Период.
А его как раз и не устанавливаете. Он с пустой датой. Соответственно и привязанные к нему параметры так же будут с пустой датой.
Устанавливайте параметр Период.

PS. еще, устанавливать параметр нужно в пользовательских настройках. Они перекрывают основные настройки.
Для этого необходимо найти параметр в основных настройках и узнать ИдентификаторПользовательскихНастроек. И уже по нему находить нужный параметр в пользовательских настройках. Изменять нужно именно его.
16. aalu14 13.07.22 10:34 Сейчас в теме
(15)вместо "НачалоПериода" и "КонецПериода" просто "Период" ?
17. spacecraft 13.07.22 10:43 Сейчас в теме
(16) да. Период это параметр, который открыт для установки. Только это не дата, а СтандартныйПериод, соответственно и установка его несколько отличается.

ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

Если ПараметрПериод <> Неопределено Тогда
    ПараметрПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрПериод.ИдентификаторПользовательскойНастройки);
    Если ПараметрПользовательскойНастройки <> Неопределено Тогда
        ПараметрПользовательскойНастройки.Значение.ДатаНачала=НачалоДня( НачалоПериода);
        ПараметрПользовательскойНастройки.Значение.ДатаОкончания=КонецДня( КонецПериода);
        КонецЕсли;
КонецЕсли;
Показать
18. aalu14 13.07.22 10:50 Сейчас в теме
(17)
ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

Если ПараметрПериод <> Неопределено Тогда
ПараметрПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрПериод.ИдентификаторПользовательскойНастройки);
Если ПараметрПользовательскойНастройки <> Неопределено Тогда
ПараметрПользовательскойНастройки.Значение.ДатаНачала=НачалоДня( НачалоПериода);
ПараметрПользовательскойНастройки.Значение.ДатаОкончания=КонецДня( КонецПериода);
КонецЕсли;
КонецЕсли;


К сожалению, диаграмма не выводится.
Прикрепленные файлы:
19. spacecraft 13.07.22 10:58 Сейчас в теме
(18) а. выводите через КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
Тогда не нужно получать пользовательские настройки.
Устанавливайте параметр сразу в Настройки.

ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

Если ПараметрПериод <> Неопределено Тогда
    ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
    ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
КонецЕсли;
20. aalu14 13.07.22 11:13 Сейчас в теме
(17)
(19)
ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));

Если ПараметрПериод <> Неопределено Тогда
ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
КонецЕсли;


К сожалению, без результата
21. spacecraft 13.07.22 11:18 Сейчас в теме
(20) откуда вызывается процедура ВывестиОтчет?
Она вообще вызывается?
22. aalu14 13.07.22 11:20 Сейчас в теме
(21)
(21)
&НаКлиенте
Процедура ТабличноеПолеАнализВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	Если Поле.Имя = "ТабличноеПолеАнализОписание" Тогда
		СтандартнаяОбработка=ложь;
		ТекСтрока = ТабличноеПолеАнализ.Получить(ВыбраннаяСтрока);
		ВывестиОтчет(ТекСтрока.Название,ТекСтрока.НачалоПериода,ТекСтрока.КонецПериода);
		Элементы.ГруппаОтчеты.Текущаястраница = Элементы.Отчеты;
	КонецЕсли;
КонецПроцедуры
Показать
23. spacecraft 13.07.22 11:25 Сейчас в теме
(22) пройдитесь отладчиком. Тяжело что-то еще посоветовать не видя данных.
24. aalu14 13.07.22 11:42 Сейчас в теме
(23) на какие значения обращать внимание?
25. spacecraft 13.07.22 11:49 Сейчас в теме
(24) заполняются ли параметры и как.

И вот этот код:
НастройкиОсновной = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Основной").Настройки;
Вот зачем он?

Приведите полученный текущий код.
26. aalu14 13.07.22 11:55 Сейчас в теме
(25)
НастройкиОсновной


&НаСервере	
Процедура ВывестиОтчет(НазваниеМакета,НачалоПериода,КонецПериода)
		СхемаКомпоновкиДанных = ПолучитьМакет(НазваниеМакета);
		
		КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
		КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
		КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
		
		Настройки = КомпоновщикНастроек.Настройки;
		ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
		
		Если ПараметрПериод <> Неопределено Тогда
			ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
			ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
		КонецЕсли;
		.
		ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
		
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
		
		МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
		
		ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
		
		Результат = МакетАнализ;
		Результат.Очистить();
		
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
		ПроцессорВывода.УстановитьДокумент(Результат);
		
		ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
		
		Результат.ОтображатьЗаголовки = Ложь;
		Результат.ОтображатьСетку = Ложь;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
27. spacecraft 13.07.22 12:02 Сейчас в теме
(26) там же еще параметр Контрагент.
Который указан в самой настройке.
Вот из-за него вполне и не выводит.
В консоле отчетов это еще работает (все работает в пользовательском режиме).
Но в схеме СКД это давно не срабатывает. Подозреваю не находит контрагента.
Для этого параметра нужно проделать такие же манипуляции, как и для параметра Период.
28. aalu14 13.07.22 12:12 Сейчас в теме
(25)
(27) Убрал этот параметр, заработало. Спасибо!!!
29. aalu14 13.07.22 15:35 Сейчас в теме
(27) А как добавить туда помимо макетов отчет?
По кнопке открывается отчет, вот так (1 скрин), необходимо, чтобы он показывался также, как те макеты с диаграммами
Прикрепленные файлы:
30. aalu14 14.07.22 08:26 Сейчас в теме
31. aalu14 14.07.22 08:26 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот