Имя: Пароль:
1C
1С v8
Параметр в отборе отчета СКД
0 mirror1982
 
20.02.14
12:03
Отчет по остаткам продукции, самописный. В СКД этого отчета есть поле "дата готовности". Как мне сделать так, чтобы отчет показывал остатки продукции, которая изготовлена уже более 3-х месяцев назад. Технически сегодня мне надо в отборе отчета поставить, что дата готовности<=20.11.13. Но завтра это дата изменится. Как сделать так, чтобы в отборе можно поставить вместо даты, выражение, которое будет вычисляться по определенной формуле?
1 barrgand
 
20.02.14
12:14
Задавать параметр программно
2 mirror1982
 
20.02.14
16:33
(1) каким образом?
3 vicof
 
20.02.14
16:35
(2) На вкладке "параметры"
4 mirror1982
 
20.02.14
16:51
ну а как этот параметр засунуть в отбор? этот отчет имеете около 5 настроек, и только в одной из них я хочу использовать этот параметр для отбора.
5 vicof
 
20.02.14
16:54
(4) для начала советую курс по скд посмотреть
6 mirror1982
 
20.02.14
17:04
(5) я смотрел. помогите, может че не понимаю
7 vicof
 
20.02.14
17:05
КомпоновщикНастроек.настройки.Отбор.Элементы.Добавить()
как-то так
8 barrgand
 
20.02.14
17:09
ЭлементОтбора=КомпоновщикНастроек.Настройки.Отбор.Элементы.                        Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
       ЭлементОтбора.Использование  = Истина;
       ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("ДатаГотовности");
       ЭлементОтбора.ПравоеЗначение = ДобавитьМесяц(ТекущаяДата(), -3);
9 barrgand
 
20.02.14
17:11
(8) Вид сравнения только МеньшеИлиРавно
10 vicof
 
20.02.14
17:11
ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
11 mirror1982
 
20.02.14
17:15
(8) а это будет дейстовать только на определенную настройку отчета? мне на все не надо.
12 barrgand
 
20.02.14
17:16
Где добавишь там и будет действовать.
13 mirror1982
 
20.02.14
17:17
а не программным способом это возможно сделать?
14 barrgand
 
20.02.14
17:30
В вычисляемых полях доступна функция ТекущаяДата() и ПрибавитьКДате. В качестве значения отбора можно указать поле компоновки данных. Дальше сам пробуй, может получится.
15 vmv
 
20.02.14
17:37
1. Параметры ввести "НеИспользватьОтборПоДатеГотовновности" И "ДатаГотовности"

2. В запросе КД в Условии ГДЕ или условии-параметре виртуальной таблицы написать

ГДЕ (&НеИспользватьОтборПоДатеГотовновности ИЛИ Остатки.ДатаГотовности <= &ДатаГотовности

3. В трех настройках где отбор по указанной дате не нужен установить параметр НеИспользватьОтборПоДатеГотовновности = Истина и запретить его редакцию

4. В астройке где отбор по указанной дате не нужен установить параметр НеИспользватьОтборПоДатеГотовновности = Ложь и запретить его редакцию, установить параметр ДатаГотовности и включить его в пользовательские настройки.

Все, легким движением руки мы ничего не ломаем и получаем результаты
16 mirror1982
 
20.02.14
18:29
(14) про поле компоновки данных - хорошая идея. Только функция прибавитькдате зачем? мне наоборот надо убавить
17 Defender aka LINN
 
20.02.14
19:36
(16) Найдешь функцию "УбавитьОтДаты" - свисти.
18 barrgand
 
20.02.14
19:40
(16) Не поверишь, но если прибавить к дате -3 месяца, то получится то что тебе надо.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан