Имя: Пароль:
1C
 
Параметры в пользовательском режиме
,
0 СинийКот
 
01.10.19
09:43
Подскажите, пожалуйста: можно ли сделать так, чтобы в отчете стояла дата по умолчанию, но при этом пользователь мог поменять ее? Со стандартными значениями типа "Начало этого дня" подобное провернуть можно, а вот с нестандартными, типа Дата минус 3 дня, например? Задаю параметр в модуле объекта через процедуру ПриКомпоновкеРезультата, параметр фиксируется и не меняется.
1 aleks_default
 
01.10.19
09:45
Добавь свой параметр в СКД
2 Cyberhawk
 
01.10.19
10:20
Подход через в ПриКомпоновкеРезультата верный, но что-то не так делаешь
3 aleks_default
 
01.10.19
10:32
(2)ПриКомпоновкеРезультата уже поздно. Там пользователь уже ничего менять не может
4 Cyberhawk
 
01.10.19
10:42
(3) Так пользователю менять и не требуется - он один раз установит
5 aleks_default
 
01.10.19
10:44
Добавляешь свой параметр типа дата на закладке Параметры в СКД. В  выражении у него указываешь ТекущаяДата() - 86400*3. Потом на закладке Настройки - Параметры для параметра Дата в поле значение нажимаешь крестик и выбираешь Поле компоновки данных и твой добавленный параметр.
Сам не пробовал но должно работать
6 aleks_default
 
01.10.19
10:46
(3)Если я правильно понял нужно чтобы при открытии формы отчета параметр Дата по умолчанию был равен 3 дня назад от текущей дата, но потом пользователь должен иметь возможность поменять перед формированием отчета
7 Cyberhawk
 
01.10.19
10:50
(6) Может быть ему еще и чтоб в выпадающием списке выбора произвольный пункт "минус три дня" отображался? )
8 aleks_default
 
01.10.19
10:51
Тоже можно сделать
9 СинийКот
 
01.10.19
11:24
(5) Неверные параметры "-". Там только просто ТекущаяДата() можно прописать.
10 aleks_default
 
01.10.19
11:41
Да, не работает так. Тогда только при открытии формы искать пользовательскую настройку с периодом и устанавливать дату
11 aleks_default
 
01.10.19
11:44
типа такого

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    УстановитьДатуОтчета();
КонецПроцедуры

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

&НаСервере
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Настройки)
    УстановитьДатуОтчета();
КонецПроцедуры
12 СинийКот
 
01.10.19
15:02
(11) Если это прописывать в модуле объекта, не работает. Или создавать форму отчета?
13 aleks_default
 
01.10.19
15:03
В форме конечно
14 Cyberhawk
 
01.10.19
15:04
В создаваемой форме не нужно прописывать, если есть БСП, иначе потеряешь ее удобную общую форму для всех отчетов с фишками
15 Cyberhawk
 
01.10.19
15:04
Надо тесно интегрироваться с уже существующей формой БСП, в чертеже все описано
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.