Имя: Пароль:
1C
1С v8
СКД. Набор данных - объект. Описать параметры
0 егаис
 
09.11.18
23:05
Киньте примером, как организовать ввод параметров в польз.режиме?
Пользователь должен иметь возможность накладывать фильтр на запрос, в т.ч. период

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;                    

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