Имя: Пароль:
1C
1С v8
Автоматически указывать период при открытии в СКД
,
0 serg-lom89
 
17.09.14
12:40
Добрый день!
интересует,как реализовать данное действие в СКД
Открываю отчет,сделанный на СКД.Нажимаю в на кнопку настройки,на закладке,параметры данных есть параметры,началоПериода и КонецПериода
Мне нужо,что бы при нажатии,НачалоПериода было НачалоДня(НачалоДня(Текущаядата())-1 - 90*24*60*60) ,а КонецПериода  НачалоДня(Текущаядата)-1.
В 7-ке все это прописывало ПриОткрытии().
А как такое реализовать  в СКД?
1 vicof
 
17.09.14
12:43
КомпоновщикНастроек.Найстройки.ПараметрыДанных и так далее
2 vicof
 
17.09.14
12:44
Можешь ПриОткрытии
3 serg-lom89
 
17.09.14
12:51
(2)на закладке Параметры данных , в Значение пишу НачалоДня(ТекущаяДата()) Пишет ошибку ,НАчалоДня(ТекущаяДата()),пишет "в полевведены некоректные данные",может что то не так указываю?
4 vicof
 
17.09.14
12:52
Я что-то говорил про закладку?
5 Любопытная
 
17.09.14
12:55
Задаете параметр ПериодОтчета, в нем указываете в значение период, который хотите задать, к примеру Сегодня. А в параметры НачалоПериода и КонецПериода пишете в выражение соответственно НачалоПериода(&ПериодОтчета.ДатаНачала,  "День") и КонецПериода(&ПериодОтчета.ДатаОкончания, "День")
6 serg-lom89
 
17.09.14
13:08
(5) что то не получается

Вот открыл схему компоновки данных.закладка параметры..
http://s018.radikal.ru/i523/1409/48/14bc32a011f8.png
прошу так сказать тыкнуть носом)))
делал как вы писали что то ни как не получается((
7 vicof
 
17.09.14
13:11
(6) НачалоПериода(ТекущаяДата(), "ДЕНЬ")
8 serg-lom89
 
17.09.14
13:17
(7) это так понимаю прописывается в колонке выражение?
9 vicof
 
17.09.14
13:19
(8) Ты достиг просветления
10 anatoly
 
17.09.14
13:19
(6) это не там...
в модуле формы при открытии вызвать:

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

п.с. с тебя 500 р. ))
11 barrgand
 
17.09.14
13:22
(10) Зачем это делать в форме, если можно в СКД?
12 vicof
 
17.09.14
13:22
(10) Мне 50%. См (1)(2)
13 anatoly
 
17.09.14
13:24
(11) как например?

если:

Процедура ПередОткрытием()
    НачПериода  = НачалоМесяца(ТекущаяДата());
    КонПериода  = КонецМесяца(ТекущаяДата());
    
    УстановитьПараметрыПериода();
КонецПроцедуры
14 serg-lom89
 
17.09.14
13:29
что то не получается..уже всюды такаю в скд и не понимаю почему не выводит...
15 serg-lom89
 
17.09.14
13:30
может есть у кого пример небольшой
16 serg-lom89
 
17.09.14
13:31
все это реализованное в скд
17 anatoly
 
17.09.14
13:37
я тебе написал уже - чем не устраивает?
500 р. жалко? ))
18 serg-lom89
 
17.09.14
13:38
(17) белорусских не жалко)))
19 Адский плющ
 
17.09.14
13:39
И это ещё не дошли до богатства вариантов и пользовательских настроек.
20 Любопытная
 
17.09.14
13:39
21 Любопытная
 
17.09.14
13:40
У меня это сделано так
22 Любопытная
 
17.09.14
13:41
+(21)На форму выводится параметр ПериодОтчета, а не ДатаНач и ДатаКон
23 боксер
 
17.09.14
13:51
дарю универсальную функцию установки параметра, омжно из любой процедуры вызывать
перем Настройки;

Процедура ПриОткрытии()
    Настройки = КомпоновщикНастроек.Настройки;
КонецПроцедуры

Функция УстановитьПараметрДанных(ИмяПараметра, ЗначениеПараметра, АктивностьПараметра = Истина)
    мПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    Если мПараметрДанных = Неопределено Тогда
        Сообщить("В настройках СКД не найден Параметр Данных: """+ИмяПараметра+"""");
        Возврат Неопределено;
    КонецЕсли;
    мПараметрДанных.Значение  = ЗначениеПараметра;
    мПараметрДанных.Использование = АктивностьПараметра;
    Возврат мПараметрДанных;
КонецФункции
24 боксер
 
17.09.14
13:52
перем тут лишьняя вроде, я ее для др. использовал, но можно подрихтовать функцию, чтобы не была лишняя
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн