Имя: Пароль:
1C
1С v8
Как при изменении варианта отчета в скд сохранить дату
0 Ayrym
 
29.04.16
13:34
Добрый день! Работаю в Бухгалтерия 8.2 обычный интерфейс
Создала отчет с 2 вариантами, на СКД, параметры даты вывела на форму через быстрый доступ. Создала кнопку выбора варианта, но есть проблема, при смене варианта дата отчета меняется, как программно зафиксировать дату прошлого варианта?
Вот код смены вариантов, который реализую через кнопку выбора на форме

Процедура ПриОткрытии()
    //Макет = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Для каждого ВариантНастроек из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
             ЭлементыФормы.ВариантОтчета.СписокВыбора.Добавить(ВариантНастроек.Имя, ВариантНастроек.Представление);
    КонецЦикла;
    ЭлементыФормы.ВариантОтчета.Значение = СхемаКомпоновкиДанных.ВариантыНастроек[0].Имя;
КонецПроцедуры

Процедура ВариантОтчетаПриИзменении(Элемент)
    
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти(Элемент.Значение).Настройки);
              
КонецПроцедуры
1 Jokero
 
29.04.16
13:37
ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата").Значение = КонецДня(Дата);
2 Ayrym
 
29.04.16
13:45
Я новичек, потому извиняюсь - нифига не поняла, мне в Процедуре ВариантОтчетаПриИзменении(Элемент) где это дописать? что при выгрузке настройки Дата сохранялась та что была введена пользователем
3 Ayrym
 
29.04.16
13:45
Дата - в смысле Период Отчета
4 Радим1987
 
29.04.16
13:56
пример
            Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл             
        Ответственные = Настройка.Настройки.ПараметрыДанных.Элементы.Найти("СписокОтвет");
        НужноеСтрока = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("СписокОтвет");
        
        Если НужноеСтрока <> НужнаяСтрока тогда
            
            Ответственные.Использование = НужноеСтрока.использование;        
        Ответственные.Значение =  НужноеСтрока.значение;         
        Если Элемент.Текст = Настройка.Представление
            тогда                         
            КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки);
        КонецЕсли;    
        Иначе    
        
        Ответственные.Использование = НужнаяСтрока.использование;        
        Ответственные.Значение =  НужнаяСтрока.значение;         
        Если Элемент.Текст = Настройка.Представление
            тогда                         
            КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки);
        КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
5 Радим1987
 
29.04.16
13:56
только здесь ответственный
6 Jokero
 
29.04.16
15:34
(2) да, там и пишите. Нужно только создать переменную "дата" у формы и вывести на форму поле ввода типа дата.

Потом можете смело писать в  ВариантОтчетаПриИзменении(Элемент)

После загрузки настроек

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

Не забудьте удостовериться, что в СКД параметр называется именно "Дата"
7 Ayrym
 
05.05.16
11:34
у меня получилось сохранить дату прошлого варианта вот так
Процедура ВариантОтчетаПриИзменении(Элемент)
    
    ПериодОтчета = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы[0].Значение;  //получаем параметры даты которые выбрал пользователь
    
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти(Элемент.Значение).Настройки); // загружаем новый вариант настройки
    
    КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета").Значение = ПериодОтчета;  // в новый вариант отчета подгружаем выбраную дату
    
                 
КонецПроцедуры

Переменную на форме не создавала, только вынесла настройки на форму. Посмотрите уважаемые спецы, может насколько корректно, я новичок в этом еще