1. userAn 07.10.19 10:41 Сейчас в теме

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

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


Тут пример, если параметр называется "Период"
Valerianich; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. dhurricane 07.10.19 11:04 Сейчас в теме
(1) В схеме компоновки данных можно в качестве значения параметра указать стандартную дату - начало этого дня.
Прикрепленные файлы:
4. razars 4 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 4 07.10.19 11:05 Сейчас в теме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПараметрДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
	ПараметрПользовательскойНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
	ПараметрПользовательскойНастройки.Значение = НачалоДня(ТекущаяДата());
КонецПроцедуры


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

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

Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Форма, НовыеПользовательскиеНастройкиКД) Экспорт
   
	НастройкиКД = Форма.Отчет.КомпоновщикНастроек.Настройки;
	ПользовательскиеНастройкиКД = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
	
	ПараметрДанных = НастройкиКД.ПараметрыДанных.Элементы.Найти("Период");
	ПараметрПользовательскойНастройки = ПользовательскиеНастройкиКД.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
	ПараметрПользовательскойНастройки.Значение = НачалоДня(ТекущаяДата());
	
КонецПроцедуры
Показать
echo77; razars; +2 Ответить
9. razars 4 07.10.19 12:04 Сейчас в теме
(5)Но если вам всё-таки нужно, чтобы всегда-всегда был заданный параметр, то сделайте проще: На закладке "Параметры" Заполните "Выражение" и установите флаг "Ограничение доступности".
Прикрепленные файлы:
12. userAn 07.10.19 12:58 Сейчас в теме
(9) Этот вариант не подходит, потому у пользователя должна быть возможность менять дату.
14. userAn 07.10.19 13:02 Сейчас в теме
(9)Но все равно спасибо за потраченное время, буду делать. Если найду какой нибудь путь обхода, напишу,если будет интересно))
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Консультант-аналитик 1С
Набережные Челны
зарплата до 90 000 руб.
Полный день

Программист 1С
Набережные Челны
зарплата от 40 000 руб. до 110 000 руб.
Полный день

Программист 1С
Казань
зарплата от 40 000 руб. до 110 000 руб.
Полный день