При открытии отчета, написанного на СКД(при этом не создавая формы), задать условие для параметра. Чтобы при открытии дата всегда вставала - начало дня.

1. userAn 07.10.19 10:41 Сейчас в теме
Помогите пожалуйста. Есть отчет СКД. как сделать, чтобы при открытии отчета дата всегда вставала "начало этого дня". Если поменять дату на и закрыть отчет, он запоминает последнюю дату и при открытии снова выдает ее. Кто-нибудь сталкивался с данной проблемой? Пожалуйста помогите.
Вариант - создать форму отчета и в ней все прописать - отпадает. Пробовала так уже.
Прикрепленные файлы:
Найденные решения
3. razars 14 07.10.19 11:05 Сейчас в теме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПараметрДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
	ПараметрПользовательскойНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
	ПараметрПользовательскойНастройки.Значение = НачалоДня(ТекущаяДата());
КонецПроцедуры


Тут пример, если параметр называется "Период"
Valerianich; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 07.10.19 11:04 Сейчас в теме
(1) В схеме компоновки данных можно в качестве значения параметра указать стандартную дату - начало этого дня.
Прикрепленные файлы:
4. razars 14 07.10.19 11:07 Сейчас в теме
(2) Это значение по умолчанию. Оно устанавливается, только если нет пользовательских настроек. То есть только при первом открытии отчета определенным пользователем.
7. userAn 07.10.19 11:53 Сейчас в теме
(4) Это тоже все понятно, а можно как нибудь обойти это. И при последующем открытии формы он не запоминал пользовательские настрой, а ставил дату по умолчанию, которую я задала. Тобишь "Начало этого дня", при этом не создавая форму?
6. userAn 07.10.19 11:50 Сейчас в теме
(2) Это понятно, так и задано, но если пользователь поменяет дату, а потом закроет форму и откроет ее заново, то дата будет та, которая была поставлена пользователем.
10. dhurricane 07.10.19 12:39 Сейчас в теме
(6) Уточните, пожалуйста, чем в таком случае обусловлено включение периода в пользовательские настройки?
13. userAn 07.10.19 13:01 Сейчас в теме
(10) Чтобы он мог менять дату, но при открытии формы дата всегда вставала (Начало этого дня).
3. razars 14 07.10.19 11:05 Сейчас в теме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПараметрДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
	ПараметрПользовательскойНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
	ПараметрПользовательскойНастройки.Значение = НачалоДня(ТекущаяДата());
КонецПроцедуры


Тут пример, если параметр называется "Период"
Valerianich; +1 Ответить
5. userAn 07.10.19 11:48 Сейчас в теме
(3) Этот код актуален, если есть форма. А у меня ее нет. Можно это как то в схеме компоновке данных прописать или же в модуле объекта?
Прикрепленные файлы:
8. razars 14 07.10.19 12:01 Сейчас в теме
(5)ПриКомпановкеРезультата можно конечно, но вам нужно именно при открытии. Вы же не хотите, чтобы пользователь выбирал период, а при нажатии на "сформировать" его настройка слетала? Создайте форму отчета (это делается нажатием двух кнопок), иначе не получится.
11. userAn 07.10.19 12:57 Сейчас в теме
(8) В этом и был вопрос. Можно ли это сделать без создания формы, я думала, что может все таки есть другие пути обхода, но все таки нет((
Очень, очень жаль. А так я все это уже делала(я про форму).
15. dhurricane 07.10.19 13:15 Сейчас в теме
(11) По тегам темы не совсем понятно, какая у Вас конфигурация. Но если используется не совсем древняя БСП, то есть возможность перехватить некоторые события формы отчет без добавления собственной. Для решения Вашей задачи в модуле объекта отчета добавьте следующий код:

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

Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Форма, НовыеПользовательскиеНастройкиКД) Экспорт
   
	НастройкиКД = Форма.Отчет.КомпоновщикНастроек.Настройки;
	ПользовательскиеНастройкиКД = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
	
	ПараметрДанных = НастройкиКД.ПараметрыДанных.Элементы.Найти("Период");
	ПараметрПользовательскойНастройки = ПользовательскиеНастройкиКД.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
	ПараметрПользовательскойНастройки.Значение = НачалоДня(ТекущаяДата());
	
КонецПроцедуры
Показать
Spacer; Sardukar; marku; xa1ter; dfgdsfgsdfg2011; user1299321; user1302499; user666919_budulau; Matveev_VS; echo77; razars; +11 Ответить
16. Matveev_VS 163 14.08.20 12:37 Сейчас в теме
17. AngV 15 18.08.21 12:27 Сейчас в теме
9. razars 14 07.10.19 12:04 Сейчас в теме
(5)Но если вам всё-таки нужно, чтобы всегда-всегда был заданный параметр, то сделайте проще: На закладке "Параметры" Заполните "Выражение" и установите флаг "Ограничение доступности".
Прикрепленные файлы:
12. userAn 07.10.19 12:58 Сейчас в теме
(9) Этот вариант не подходит, потому у пользователя должна быть возможность менять дату.
14. userAn 07.10.19 13:02 Сейчас в теме
(9)Но все равно спасибо за потраченное время, буду делать. Если найду какой нибудь путь обхода, напишу,если будет интересно))
18. user1548617 07.09.21 14:11 Сейчас в теме
Оставьте свое сообщение

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