Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 10:47

Программная установка параметров СКД

Автор |R|U|D|E|N, 03 мар 2011, 17:15

0 Пользователей и 1 гость просматривают эту тему.

|R|U|D|E|N

Добрый день.

Есть Общая "Схема компоновки данных" у которой есть один "Параметр" - Контрагент. Так вот значение этого параметра мне необходимо установить из встроенного языка?

Подскажите пожалуйста(в виде кода) как получить Общую схему компоновки данных и установить значение параметра "Контрагент"?

За раннее спасибо!



progmikon

Если мне не изменяет мой склероз:

ПараметрНачПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1]; //первый параметр
ПараметрНачПериода.Значение = ТекущаяДата();
ПараметрНачПериода.Использование = Истина;

cska-fanat-kz

Простите за буквоедство...

КомпОновщикНастроек
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

Спасибо progmikon именно это мне и надо было!

Только я не могу понять, как эти настройки установить для конкретной схемы компоновки данных?

Поясню:

//Получаю схему компоновки данных
СхемаКомпоновкиДанных =  ПолучитьОбщийМакет("СхемаКомпоновкиДанных_ИсторияКонтрагента");

//А теперь я просто передаю парамтры? Как то связать эти параметры с полученной выше СКД не надо? Все так должно работать?
ПараметрКонтрагент = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1];
ПараметрКонтрагент.Значение = Контрагент;
ПараметрКонтрагент.Использование = Истина;

//ну и далее уже стандартно
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   
   
   
       
//Формируем макет компоновки данных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
   
//выполним компоновку данных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
   
   
//Выводим результат компоновки в табличный документ.
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
ДокументРезультат.ОтображатьСетку = Ложь;
ДокументРезультат.ОтображатьЗаголовки = Ложь;
ДокументРезультат.Показать();


Подскажите где не правильно?                     

|R|U|D|E|N

Вот полный код:

СхемаКомпоновкиДанных =  ПолучитьОбщийМакет("СхемаКомпоновкиДанных_ИсторияКонтрагента");

ПараметрКонтрагент = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0];
ПараметрКонтрагент.Значение = Контрагент;
ПараметрКонтрагент.Использование = Истина;



//Получаем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;



   
//Формируем макет компоновки данных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

//выполним компоновку данных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);


//Выводим результат компоновки в табличный документ.
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

ДокументРезультат.ОтображатьСетку = Ложь;
ДокументРезультат.ОтображатьЗаголовки = Ложь;
ДокументРезультат.Показать();


Подскажите, что не так?

|R|U|D|E|N

После попытки сохранения приведенного выше кода, выскакивает ошибка:

{Документ.АктПриемаОборудования.Форма.ФормаДокумента.Форма(39,23)}: Переменная не определена (КомпоновщикНастроек)
   ПараметрКонтрагент = <<?>>КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1]; (Проверка: Толстый клиент (обычное приложение))

cska-fanat-kz

КомпоновщикНастроек - это свойство у Отчета.

В вашем случае попробуйте так:

СхемаКомпоновкиДанных =  ПолучитьОбщийМакет("СхемаКомпоновкиДанных_ИсторияКонтрагента");
СхемаКомпоновкиДанных.Параметры[0].Значение = <<Значение>>;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

cska-fanat-kz, не могли бы Вы дописать код)

чета форум глючит немного....

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

|R|U|D|E|N

Спасибо cska-fanat-kz! Вы просто гений!

Полностью рабочий вариант:

//Получаем значение реквизита документа
Контрагент = ДокументОбъект.Поставщик;
//Получаем СКД и передаем ей параметр   
СхемаКомпоновкиДанных =  ПолучитьОбщийМакет("СхемаКомпоновкиДанных_ИсторияКонтрагента");
СхемаКомпоновкиДанных.Параметры[0].Значение = Контрагент;



Всем Спасибо. Тема закрыта.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск