Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД. Набор данных - объект. Описать параметры

СКД. Набор данных - объект. Описать параметры
Я
   егаис
 
09.11.18 - 23:05
Киньте примером, как организовать ввод параметров в польз.режиме?
Пользователь должен иметь возможность накладывать фильтр на запрос, в т.ч. период
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;                    

    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    НАЧАЛОПЕРИОДА(ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период, ДЕНЬ) КАК Период,
        |    ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник КАК Сотрудник,
        |    ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник.Код КАК ТабельныйНомер,
        |    ДанныеТабельногоУчетаРабочегоВремениСотрудников.Сотрудник.Наименование КАК СотрудникНаименование
        |ИЗ
        |    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников КАК ДанныеТабельногоУчетаРабочегоВремениСотрудников
        |ГДЕ
        |    ДанныеТабельногоУчетаРабочегоВремениСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
        |    И ДанныеТабельногоУчетаРабочегоВремениСотрудников.ВидУчетаВремени = &ВидУчетаВремени";
    Запрос.УстановитьПараметр("КонецПериода", ???);
    Запрос.УстановитьПараметр("НачалоПериода", ???);
    Запрос.УстановитьПараметр("ВидУчетаВремени", Справочники.ВидыИспользованияРабочегоВремени.Явка);
    
    ТЗ_ДанныеОтчета = Запрос.Выполнить().Выгрузить();
    ТЗ_ДанныеОтчета.Колонки.Добавить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"));
    Для Каждого Строка Из ТЗ_ДанныеОтчета Цикл
        КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Строка.Сотрудник), "Подразделение", КонецДня(Строка.Период));
        Если КадровыеДанные.Количество() > 0 Тогда
            Строка.Подразделение = КадровыеДанные[0].Подразделение; 
        КонецЕсли;
    КонецЦикла;    
    
    ТЗ_ДанныеОтчета.Сортировать("Подразделение Возр, СотрудникНаименование Возр, Период Возр");
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    ВнешнийНаборДанных = Новый Структура("ДниВПути", ТЗ_ДанныеОтчета);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
    
    ДокументРезультат.Очистить();
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
КонецПроцедуры
 
 
   vicof
 
1 - 09.11.18 - 23:06
Ты не поверишь...
   vicof
 
2 - 09.11.18 - 23:07
Реквизиты обработки - это параметры. Выводим на форму. Получаем значения при компоновке.
   vicof
 
3 - 09.11.18 - 23:07
Ну или реквизиты отчета
   егаис
 
4 - 09.11.18 - 23:16
(2) реквизиты очтет добавил. форма используется общая "ФормаОтчета" Что куда добавить, извини, не понял?
   егаис
 
5 - 09.11.18 - 23:23
(3) создал свою форму, вывел реквизиты.
Мало того что форма настроек перестала работать, так все равно ругается на незаполненный реквизит &ДатаНачала
   егаис
 
6 - 09.11.18 - 23:29
(3) все, друже, получилось, спасибо
Я так понял, это работает только при созданных своих формах?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует