![]() |
|
Скд программный выбор настроек | ☑ | ||
---|---|---|---|---|
0
JuliaT99
28.12.16
✎
16:32
|
На форме имеем переключатель ВариантОтчета
Процедура ВариантОтчетаПриИзменении(Элемент) СтруктураВариантов = Новый Структура; пВарианты = СхемаКомпоновкиДанных.ВариантыНастроек; Для Каждого пЭл ИЗ пВарианты Цикл СтруктураВариантов.Вставить(пЭл.Имя,пЭл.Настройки); КонецЦикла; // потом выбираем нужную настройку Если ВариантОтчета=1 Тогда пНастройки = СтруктураВариантов.Настройка1 Иначе пНастройки = СтруктураВариантов.Насчтройка2 КонецЕсли; КомпоновщикНастроек.ЗагрузитьНастройки(пНастройки); КонецПроцедуры Проблема в том, что выполняется только первый вариант по умолчанию, после выполнения вышенаписанной процедуры отчет зависает и потом вываливается по ошибке "Не хватает памяти". Настройка в обоих вариантах нормальные. Порядок вариантов меняла. Первый выполняется, а потом никак. |
|||
1
Franchiser
гуру
29.12.16
✎
00:30
|
Насчтройка2 - опечатка?
|
|||
2
JuliaT99
29.12.16
✎
08:09
|
1- да опечатка, конечно.
|
|||
3
Лохматые Уши
29.12.16
✎
09:15
|
(0)
Более толковая реализация: Процедура ПриОткрытии() УстановитьВариантыНастроек(); КонецПроцедуры Процедура УстановитьВариантыНастроек() КП = ЭлементыФормы.ДействияФормы; НоваяКнопка = КП.Кнопки.Вставить(1,"_ВариантыОтчетов", ТипКнопкиКоманднойПанели.Подменю, "Варианты отчетов", ); НовоеДействие = Новый Действие("СменаВариантаНастройки"); ч = 1; Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл НоваяКнопка = КП.Кнопки._ВариантыОтчетов.Кнопки.Добавить("Вариант"+Строка(ч), ТипКнопкиКоманднойПанели.Действие, Настройка.Представление, НовоеДействие); ч = ч + 1 КонецЦикла КонецПроцедуры Процедура СменаВариантаНастройки (Элемент) Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл Если Элемент.Текст = Настройка.Представление Тогда КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки); Прервать КонецЕсли КонецЦикла; ЭтаФорма.Заголовок = "Траляля"; //Восстановление параметров КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала").Значение = ПараметрНачалоПериода.Значение; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания").Значение = ПараметрКонецПериода.Значение; // КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала").Использование = Истина; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания").Использование = Истина; КонецПроцедуры |
|||
4
JuliaT99
29.12.16
✎
10:25
|
3 - так тоже пробовала. Воз и ныне там - при переключении настроек отчет висит.
|
|||
5
LeReve
29.12.16
✎
10:57
|
(0)
Процедура ВариантОтчетаПриИзменении(Элемент)
|
|||
6
Allexe
29.12.16
✎
11:00
|
(0) А если вручную протестить эти настройки? Отчет работает не зависает?
|
|||
7
JuliaT99
29.12.16
✎
11:19
|
6 - вручную не зависает. Да и местами их меняла, по умолчанию же первый выполняется,если ничего не переключать
|
|||
8
Allexe
29.12.16
✎
11:21
|
Может на свежей платформе протестить?
|
|||
9
JuliaT99
29.12.16
✎
11:29
|
5 - спасибо. Оказывается надо было переопределить параметры начало и конец периода. Есть еще проблемы, но это уже совсем другая история. Спасибо еще раз.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |