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

Что делаю не так? Пытаюсь получить данные из СКД программно, но не выходит!

Автор VID1234, 12 апр 2022, 16:49

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

VID1234

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

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

VID1234

С датой разобрался, оказывается в настройке параметра СКД было значение в параметре ПериодОтчета Ч начала этого года!! Теперь данный периода правильные, но ТЗ не заполняется! Что может быть?

wise

(0) возможно Вы где-то используете переменные "ДатаНачала" и "ДатаОкончания", они переопределяются в коде отчёта.
попробуйте создать для получения доп.данных ДРУГИЕ переменные.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

wise

(1) проверьте в консоли СКД есть ли данные.
внешне ВСЁ правильно...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

VID1234

wise, Здравствуйте. На инфостарте сказали, что в ЗУП все сложнее, там через представление нужно проводить все! Сейчас пробую!

VID1234

Нужно было вставить перед выполнением компоновщика ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьПредставленияЗапросов(ОтчетСтатичтики.НаборыДанных,ОтчетСтатичтики);
Только теперь нужно с параметрами разобраться, если параметры и отборы не устанавливаю, то все формируется, но только я устанавливаю даже период, результат пустой, не могу пока понять почему!

Теги:

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

Рейтинг@Mail.ru

Поиск