Получить параметры и отбор СКД

1. rpgshnik 3495 22.11.16 07:28 Сейчас в теме
Добрый день.

Подскажите/, помогите что делаю не так, нужно получить программно параметры отчета и отборы сформированные пользователем.
		рДатаНачала = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение;
		пДатаНачала = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")).Значение;

Дату начала не могу получить, возвращается пустая.
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
6. vovan_victory 63 22.11.16 10:49 Сейчас в теме
(1)
нужно получить программно параметры отчета


СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
	
ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных))

КомпановщикНастрок = Новый КомпоновщикНастроекКомпоновкиДанных;
	КомпановщикНастрок.Инициализировать(ИсточникДоступныхНастроек);
	КомпановщикНастрок.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
	
	//Из схемы возьмем настройки по умолчанию
	Настройки = КомпановщикНастрок.ПолучитьНастройки();
Показать
antonio_i; user785234; levante90; Babylka; rpgshnik; +5 Ответить
16. glek 118 16.02.22 20:48 Сейчас в теме
(1) КомпоновщикНастроек.ПолучитьНастройки()
А дальше уже работаем.
Nickolay_rus; user785234; rpgshnik; +3 Ответить
2. cold_mount 1 22.11.16 07:38 Сейчас в теме
Скорее всего нужно получать из ПользовательскиеНастройки
3. rpgshnik 3495 22.11.16 09:26 Сейчас в теме
(2) , не помогло и не нашел их там вообще.

Пытаюсь получить настройки с управляемой формы отчета.
4. herfis 485 22.11.16 10:30 Сейчас в теме
(3) Там они. Работа с пользовательскими настройками имеет особенности. Загуглите пару примеров, если с наскоку не получилось разобраться.
rpgshnik; +1 Ответить
5. YukMan 22.11.16 10:45 Сейчас в теме
Тут смотря какая дата. скорей всего как говорит Олег.
rpgshnik; +1 Ответить
7. rpgshnik 3495 22.11.16 11:22 Сейчас в теме
Период = КомпоновщикНастроек.ПараметрыДанных.Элементы.Найти("Период");

У меня в периоде забито :D Спасибо получил.
Отбор аналогично.
8. rpgshnik 3495 22.11.16 11:39 Сейчас в теме
Помогите теперь этот период передать в отчет. Код ниже:

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	
	Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
	
	РасшифровкаПоРеальнымОстаткам = ?(Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОстКонечныйОстаток" 
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОстНачальныйОстаток" 
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОстПриход"
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОстРасход",ИСТИНА,ЛОЖЬ);
	
	РасшифровкаПоОрдернымОстаткам = ?(Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОрдНачальныйОстаток" 
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОрдПриход"
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОрдРасход"
	ИЛИ Данные.Элементы[Расшифровка].ПолучитьПоля()[0].Поле = "ОрдКонечныйОстаток",ИСТИНА,ЛОЖЬ);	
	
	Если  РасшифровкаПоРеальнымОстаткам ИЛИ РасшифровкаПоОрдернымОстаткам Тогда 
		СтандартнаяОбработка = Ложь;
		
		//Получаем ссылку на номенклатуру
		i=0; 
		Пока НЕ(ТипЗнч(Данные.Элементы[Расшифровка - i].ПолучитьПоля()[0].Значение) = Тип("СправочникСсылка.Номенклатура")) цикл 
			i = i+1; 
		КонецЦикла; 
		СсылкаНоменклатуры = Данные.Элементы[Расшифровка - i].ПолучитьПоля()[0].Значение;
		
		КомпоновщикНастроек = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
		
		//Получаем период
		Период = КомпоновщикНастроек.ПараметрыДанных.Элементы.Найти("Период");
		
		//Получаем склад если есть отбор
		Отбор =  КомпоновщикНастроек.Отбор.Элементы;
		Количество = Отбор.Количество()-1;
		i=0;
		ПолеКомпановкиСклад = Новый ПолеКомпоновкиДанных("Склад");
		Пока НЕ(Отбор[Количество-i].ЛевоеЗначение = ПолеКомпановкиСклад) цикл
			i = i+1;
		КонецЦикла;
		СсылкаСклад = Отбор[Количество-i].ПравоеЗначение;
		ОтправитьОтбор = ?(СсылкаСклад = Неопределено,ЛОЖЬ,ИСТИНА);
		
		ПараметрыФормы = Новый Структура;
		ПараметрыФормы.Вставить("СформироватьПриОткрытии",ИСТИНА);
		УсловияОтбор = Новый Структура;
		УсловияОтбор.Вставить("Номенклатура",СсылкаНоменклатуры);
		Если ОтправитьОтбор Тогда УсловияОтбор.Вставить("Склад",СсылкаСклад); КонецЕсли;
		ПараметрыФормы.Вставить("Отбор",УсловияОтбор);
		ПараметрыФормы.Вставить("Период",Период);

				
	КонецЕсли;	
	
	Если РасшифровкаПоРеальнымОстаткам Тогда ОткрытьФорму("Отчет.бгбТоварыОстаткиИОборотыСКДУпр.Форма", ПараметрыФормы); КонецЕсли;	
	Если РасшифровкаПоОрдернымОстаткам Тогда ОткрытьФорму("Отчет.бгбТоварыКПередачеСоСклада.Форма", ПараметрыФормы); КонецЕсли;
		
КонецПроцедуры
Показать


Помогите до разобраться, как же передать Период теперь... уже все перепробовал. Если в открываемом отчете есть предустановленный в СКД период, то отчет вообще не формируется, а если нет... то не передается ни чего.
9. rpgshnik 3495 22.11.16 12:12 Сейчас в теме
        УсловияОтбор = Новый Структура;
        УсловияОтбор.Вставить("Номенклатура",СсылкаНоменклатуры);
        Если ОтправитьОтбор Тогда УсловияОтбор.Вставить("Склад",СсылкаСклад); КонецЕсли;
        УсловияОтбор.Вставить("Период",Период);
        ПараметрыФормы.Вставить("Отбор",УсловияОтбор);


Тоже не работает(
10. vovan_victory 63 22.11.16 12:28 Сейчас в теме
Настройки = КомпановщикНастрок.ПолучитьНастройки();	
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01"));
11. rpgshnik 3495 22.11.16 12:43 Сейчас в теме
(10) можно поподробнее куда эти строчки должны быть написаны?
12. spacecraft 22.11.16 13:07 Сейчас в теме
13. rpgshnik 3495 24.11.16 10:25 Сейчас в теме
Конечно тема ушла в оффтоп, но отпишусь тем кто в неё набредёт через гугл.
Просто так не смог передать как хотел параметр в отчет. Отбор легко передается через ПараметрыФормы, как Отбор,
что позволяет без вмешательства в передаваемый отчет, использовать его для своих нужд.
Но с параметром не нашел решения... может плохо читал.

Пришлось разобрать программно все получаемые параметры и отборы на стороне открываемых отчетов и программно сформировать отчет на основание СКД с заменой параметров и отборов на свои.
14. herfis 485 24.11.16 14:24 Сейчас в теме
(13) Странно, что не нашел. Наверное у гугла старые примеры в топе. Вот из рабочего:

// пример получения значения параметра из пользовательских настроек
Сообщить(ПолучитьПользовательскийПараметр("НачалоПериода", КомпоновщикНастроек).Значение);

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

Функция ПолучитьПредопределенныйЭлементПользовательскихНастроек(ЭлементНастроекВарианта, ПользовательскиеНастройки) Экспорт
	
	НайденныйЭлемент = Неопределено;
	
	Если ЭлементНастроекВарианта <> Неопределено Тогда
		
		НайденныйЭлемент = ПользовательскиеНастройки.Элементы.Найти(ЭлементНастроекВарианта.ИдентификаторПользовательскойНастройки);
		
	КонецЕсли;
		
	Возврат НайденныйЭлемент;
	
КонецФункции
Показать
HIVvich; criptid; Tash.B; user1013696; vfvava; milkers; Wizan; neo-ti; user717534; vakrikun; Merkalov; d4rkmesa; tolyan_ekb; igee12; Tommy82; Lazio; scarface13; user659168_xec8787; rpgshnik; +19 Ответить
15. Kaval88 169 16.02.22 20:10 Сейчас в теме
ЗарплатаКадрыОтчеты.НайтиПараметр(ЭтотОбъект.КомпоновщикНастроек, "Период").Значение
Vagan1972; user1300191; Dansur; alexdm; +4 Ответить
17. u-barbaris 17.11.22 10:25 Сейчас в теме
(15) Антоха через 6 лет написал комментарий))
18. Kaval88 169 17.11.22 11:53 Сейчас в теме
(17) так до сих пор актуально же)
19. Vagan1972 3 21.04.23 16:26 Сейчас в теме
(15)
ЗарплатаКадрыОтчеты.НайтиПараметр(ЭтотОбъект.КомпоновщикНастроек, "Период").Значение


Спасибо, добрый человек!
20. pavley2002 197 02.06.23 09:07 Сейчас в теме
По подсказке я тоже нашёл в УТ.
ОтчетыКлиентСервер.НайтиПараметр(ЭтотОбъект.КомпоновщикНастроек.Настройки, ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки, "Период").Значение
Оставьте свое сообщение
Вакансии
Разработчик 1С
Москва
зарплата от 220 000 руб. до 300 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Ведущий аналитик группы поддержки 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Аналитик группы поддержки 1С
Москва
зарплата от 160 000 руб. до 250 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день