Имя: Пароль:
1C
1С v8
Выбор периода в СКД
0 prilforreal
 
27.09.17
13:17
Доброго всем дня! Конфа 8.3 самописная. Сегодня появилась надобность настроить в отчете написанном на скд выбор периода, решил перенести элементы с обычной формы, вышло вполне просто, удобно и красиво, может кому пригодится.

Добавляем на форму отчета элемент управления "выбор периода", дальше в модуле формы дописываем процедуру ВыбПериодНажатие, получается:

Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
    Если НастройкаПериода.Редактировать() Тогда
    НачПериода = НастройкаПериода.ПолучитьДатуНачала();
    КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
    НП = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
    КП = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
    НП.Значение = ЭлементыФормы.НачПериода.Значение;
    КП.Значение = КонецДня(ЭлементыФормы.КонПериода.Значение);
    КонецЕсли;
КонецПроцедуры

И создаем процедуры при изменении начала и конца периода:

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

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

Все, на форме отчета СКД удобные и привычные пользователям элементы управления периодом.
1 Жан Пердежон
 
27.09.17
13:26
(0) посмотрел бы как в типовых сделано и не страдал фигней
2 prilforreal
 
27.09.17
13:31
(1) Не нашел варианта, решил сам сделать