8.х СКД и форма обработки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем KirillSemenov, 11 апр 2010.

  1. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! такая ситуация: делаю внешнюю обработку, на форме пара полей ввода и кнопка "выполнить". В качестве макета выбираю СКД. Поскажите как связать параметры запроса в СКД с полями ввода формы и запустить построение отчета при помощи СКД по нажатию кнопки "выполнить". Заранее спасибо!
  2. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    если отбор
    Код:
    ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();	
    НовыйЭлементОтбора = ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ПолеОтбора = Новый ПолеКомпоновкиДанных("Организация");
    НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
    НовыйЭлементОтбора.Использование = Истина;
    НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    НовыйЭлементОтбора.ПравоеЗначение = Элемент.Значение;
    
    
    еще так
    Код:
    		
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыВывода.Элементы.Найти("title");
    Параметр.Использование = Истина;
    Параметр.Значение      = "Отчет о доходах и расходах
    |"+ЭлементыФормы.Организация.Значение;
    
    
    и так нажатие кнопки сформировать
    Код:
    		
    // Очистим табличный документ - результат 
    ЭлементыФормы.Результат.Очистить();
    
    // Сгенерируем макет компоновки данных при помощи компоновщика макета 
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    // В качестве схемы компоновки будет выступать схема самого отчета 
    // В качестве настроек отчета - текущие настройки отчета 
    // Данные расшифровки будем помещать в свойство расширения формы - ДанныеРасшифровки 
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
    
    // Создадим и инициализируем процессор компоновки 
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
    
    // Создадим и инициализируем процессор вывода результата 
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
    
    // Обозначим начало вывода 
    ПроцессорВывода.НачатьВывод();
    
    // Основной цикл вывода отчета 
    Пока Истина Цикл
    
    // Получим следующий элемент результата компоновки 
    ЭлементРезультата = ПроцессорКомпоновки.Следующий();
    
    Если ЭлементРезультата = Неопределено Тогда
    // Следующий элемент не получен - заканчиваем цикл вывода 
    Прервать;
    
    Иначе
    // Элемент получен - выведем его при помощи процессора вывода 
    ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
    ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(1) // уровень сорачивания
    КонецЕсли;
    
    КонецЦикла;
    
    // Обозначем завершение вывода 
    ПроцессорВывода.ЗакончитьВывод();
    
    
    
  3. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    я вот как написал
    Код:
    СхемаКомпоновкиДанных = ПолучитьМакет("Макет1");
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    //КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    
    ПараметрСклад = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПарСклад");
    ПараметрСклад.Использование = Истина;
    ПараметрСклад.Значение = СписокСкладов;
    
    
    
    ругается:
    {Форма.Форма(59)}: Значение не является значением объектного типа (Использование)
    ПараметрСклад.Использование = Истина;
  4. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    не надо этого. просто попробуйте при изменении Склада
  5. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    всмысле при изменении склада?
  6. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Вот пример, можете изучить, запрос выполняется отдельно, СКД передаются данные для выполнения, для управления параметрами используется поиск параметров и установка значений. Писалось для УТ на 8.1, релиз не помню.

    Вложения:

  7. TopicStarter Overlay
    KirillSemenov
    Offline

    KirillSemenov

    Регистрация:
    2 дек 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Спасибо буду разбираться!

Поделиться этой страницей