|
как в СКД вычислить год назад от текущей даты | ☑ | ||
---|---|---|---|---|
0
amadeus2010
02.05.12
✎
17:05
|
создал отчет на СКД,который сравнивает продажи менеджеров за период текущего и прошлого годов.Теперь при выборе пользователем периода необходимо сделать так чтобы при указании текущего года высчитывался прошлый год как ТекПериод,Год,-1.Пытался в параметрах СКД указать выражение &НачПериод-(365*24*60)ссылается на ошибку,иакже использовал ДОБАВИТЬКДАТЕ(&КонПериод, "ГОД",-1)отображает данные только за текущий год, а в прошлом нули стоят. Написал такой код:
Процедура УстановитьПараметрыПериода() Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериод"));; Параметр.Значение = НачалоДня(НачПериода); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериод"));; Параметр.Значение = НачалоДня(НачПериода); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериодпрошлыйгод"));; Параметр.Значение = КонецДня(КонПериода); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериодпрошлыйгод"));; Параметр.Значение = КонецДня(КонПериода); Параметр.Использование = Истина; КонецПроцедуры Процедура ВыбПериодНажатие(Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода))); НастройкаПериода.РедактироватьКакИнтервал = Истина; НастройкаПериода.РедактироватьКакПериод = Истина; НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; Если НастройкаПериода.Редактировать() Тогда КонПериода = НастройкаПериода.ПолучитьДатуОкончания(); КонецЕсли; УстановитьПараметрыПериода() КонецПроцедуры По всей видимости надо прописать формулу в одну из процедур только вот не знаю куда.Прошу помощи |
|||
1
Zolotko
02.05.12
✎
17:08
|
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); парам_ДатаНачала = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач")); парам_ДатаНачала.Использование = Истина; парам_ДатаНачала.Значение = НачалоГода(ДобавитьМесяц(ТекущаяДата(), -12)); парам_ДатаОкончания = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаКон")); парам_ДатаОкончания.Использование = Истина; парам_ДатаОкончания.Значение = Конецгода(ТекущаяДата()); при открытии формы отчета задать напрямую параметры |
|||
2
amadeus2010
02.05.12
✎
17:10
|
при открытии формы отчета задать напрямую параметры-не совсем понял этот момент
|
|||
3
amadeus2010
02.05.12
✎
17:11
|
т.е в параметрах указать КонецПериода(&КонПериод, "День") и т.д по коду?
|
|||
4
Fram
02.05.12
✎
17:12
|
Ну почему при открытии?!.. При выборе пользователем параметра
|
|||
5
amadeus2010
03.05.12
✎
08:04
|
как я вас понял надо (1) поставить в процедуру ВЫбпериодНажатие?
|
|||
6
amadeus2010
03.05.12
✎
08:33
|
Сделал так
Процедура УстановитьПараметрыПериода() СхемаКомпоновкиДанных = ПолучитьМакет("СравнительныйАнализПродаж"); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериод"));; Параметр.Значение = НачалоДня(НачПериода); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериод"));; Параметр.Значение = НачалоДня(НачПериода); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачПериодпрошлыйгод"));; Параметр.Значение =НачалоГода(ДобавитьМесяц(ТекущаяДата(), -12)); Параметр.Использование = Истина; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонПериодпрошлыйгод"));; Параметр.Значение = НачалоГода(ДобавитьМесяц(ТекущаяДата(), -12)); Параметр.Использование = Истина; КонецПроцедуры правильно ли это? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |