|
Параметр СКД | ☑ | ||
---|---|---|---|---|
0
first_may
03.12.11
✎
16:28
|
Добрый день!
Начал изучать СКД. Решил получить простейший отчет по запросу: ВЫБРАТЬ Номенклатура.Ссылка, Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Родитель = &Родитель Подскажите пожалуйста, как сделать так, что бы параметр Родитель можно было изменять в форме, которая появляется при нажатии кнопки Настройка в отчете, сделанным на основе СКД? |
|||
1
Wobland
03.12.11
✎
16:30
|
а сейчас параметр намертво указан?
|
|||
2
first_may
03.12.11
✎
16:40
|
Нет, запрос имено такой какой приведен здесь. Я даже его вижу на закладке Параметры в СКД. А на закладке Настройка, выделив Отчет внижней таблице вижу галочку "Отображать недоступныепараметры ...". Но вызывая отчет из предприятия, в настройках нет вожножности указать значение этого параметра.
|
|||
3
first_may
03.12.11
✎
16:44
|
То Wobland: могу прислать этот отчет. Он под 1С:Предприятие 8.2 (8.2.14.537). Может что то не так я делаю?
|
|||
4
Armando
03.12.11
✎
16:58
|
В СКД на закладке "Параметры" убери галку с "Ограничение доступности". Тогда этот параметр появится в настройках варианта на закладке "Параметры". Это там, где ты видишь флаг "Отображать недоступные параметры". В этой таблице встаешь на нужный параметр и нажимаешь на панели справа кнопку с "таблицей плюсиком и шестеренкой". Там ставишь флаг "Включить в пользовательские настройки". Тогда будешь видеть в режиме предприятия.
|
|||
5
GROOVY
03.12.11
✎
17:01
|
А если условие заключить в фигурные скобки то параметр станет не обязательным...
|
|||
6
first_may
03.12.11
✎
17:04
|
Спасибо, помогло убери галку с "Ограничение доступности". Флаг "Включить в пользовательские настройки" даже можно наверное и не ставить.
|
|||
7
first_may
03.12.11
✎
17:09
|
А может еще подскажите, если допустим надо вывести отчет для текущего документа (например приходная накладная), где в шапке дата, номер и контрагент итабличная часть. Такой отчет можно формировать с помощью СКД? Что бы не рисовать макет.
|
|||
8
first_may
03.12.11
✎
18:51
|
А можно ли этот параметр передавать программно? Внутри модуля отчета.
|
|||
9
sergey yevsenya
03.12.11
✎
19:00
|
(8) можно
|
|||
10
sergey yevsenya
03.12.11
✎
19:04
|
Настройки = ОтчетОбъект.КомпоновщикНастроек.Настройки;
Параметр = Настройки.ПараметрыДанных.Элементы[0]; Параметр.Значение = значение; Параметр.Использование = истина; |
|||
11
first_may
03.12.11
✎
19:15
|
Я пишу следующим образом:
Процедура ОсновныеДействияФормыПечать(Кнопка) ТабличныйДокумент = Новый ТабличныйДокумент; // куда выводим СхемаКомпоновкиДанных = ПолучитьМакет("НачислениеПени"); СтруктураПараметров = Новый Структура("Ссылка", Ссылка); ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ТабличныйДокумент, СхемаКомпоновкиДанных.НастройкиПоУмолчанию, СтруктураПараметров); // как выводим УниверсальныеМеханизмы.НапечататьДокумент(ТабличныйДокумент); // можно было бы без этого, но так красивШЕ КонецПроцедуры Процедура ПолучитьДанныеНаОснованииСКД(СКД, ОбъектДляЗагрузки, ИсполняемыеНастройки = Неопределено, СтруктураПараметров = Неопределено, РасшифровкаСКД = Неопределено, МакетКомпоновки = Неопределено, ВнешниеНаборыДанных = Неопределено) Экспорт КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанных"); Иначе ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"); КонецЕсли; Если ИсполняемыеНастройки = Неопределено Тогда ИсполняемыеНастройки = СКД.НастройкиПоУмолчанию; КонецЕсли; Если СтруктураПараметров <> Неопределено Тогда КоллекцияЗначенийПараметров = ИсполняемыеНастройки.ПараметрыДанных.Элементы; Для каждого Параметр Из СтруктураПараметров Цикл НайденноеЗначениеПараметра = КоллекцияЗначенийПараметров.Найти(Параметр.Ключ); Если НайденноеЗначениеПараметра <> Неопределено Тогда НайденноеЗначениеПараметра.Использование = Истина; НайденноеЗначениеПараметра.Значение = Параметр.Значение; КонецЕсли; КонецЦикла; КонецЕсли; МакетКомпоновкиСКД = КомпоновщикМакета.Выполнить(СКД, ИсполняемыеНастройки, РасшифровкаСКД, МакетКомпоновки, ТипГенератора); ПроцессорКомпановки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпановки.Инициализировать(МакетКомпоновкиСКД, ВнешниеНаборыДанных, РасшифровкаСКД); Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ОбъектДляЗагрузки); Иначе ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ОбъектДляЗагрузки); КонецЕсли; ПроцессорВывода.ОтображатьПроцентВывода = Истина; ПроцессорВывода.Вывести(ПроцессорКомпановки, Истина); КонецПроцедуры // ПолучитьДанныеНаОснованииСКД() Так вот выскакивает сообщение {(11, 40)}: Не задано значение параметра "Ссылка" ...Ссылка = <<?>>&Ссылка хотя ссылка задана. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |