СКД программное задание параметров и Отбор Компоновщика на одной форме отчета

1. Darina 04.04.13 19:50 Сейчас в теме
На форме отчета есть реквизиты-параметры СКД и КомпоновщикНастроек.Отбор. Как мне добавить отбор к имеющимся настройкам по-умолчанию? ВидСравненияКомпоновкиДанных может быть разным, иначе бы описала программно.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Darina 04.04.13 19:50 Сейчас в теме
СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);

ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
ЗначениеПараметра.Значение = НачалоДня(НачалоПериода);

ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
ЗначениеПараметра.Значение = КонецДня(КонецПериода);

ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Организация"));
ЗначениеПараметра.Значение = Организация;
a-novoselov; ya.Avoronov; +2
3. Программист 1С 155 04.04.13 20:40 Сейчас в теме
4. Darina 04.04.13 20:49 Сейчас в теме
как отбор добавить на форму я знаю. Она уже имеется
+
5. Программист 1С 155 04.04.13 21:40 Сейчас в теме
Если есть необходимость сделать это программно, то

ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора
(
КомпоновщикНастроек.Настройки.Отбор,
"ИмяПоля",
ПравоеЗначение,
ВидСравненияКомпоновкиДанных.Равно
);
Оберон; klinval; +2
6. Программист 1С 155 04.04.13 21:40 Сейчас в теме
Если есть необходимость сделать это программно, то

ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора
(
  КомпоновщикНастроек.Настройки.Отбор,
  "ИмяПоля",
  ПравоеЗначение,
  ВидСравненияКомпоновкиДанных.Равно
);
Показать
+
7. V_K 05.04.13 14:43 Сейчас в теме
КомпоновщикНастроек.Настройки.ПараметрыДанных
или
КомпоновщикНастроек.Настройки.Отбор
+
8. Darina 05.04.13 17:56 Сейчас в теме
Я ведь написала в вопросе: "ВидСравненияКомпоновкиДанных может быть разным, иначе бы описала программно". Т.е. если бы было только "равно", то я знаю как описать. После написания:
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
А также Иначе:
Если ЗначениеЗаполнено(Контрагент) Тогда
ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Контрагент");
ЗначениеПараметра.Использование = Истина;
ЗначениеПараметра.Значение = Контрагент;
Иначе
ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Контрагент");
ЗначениеПараметра.Использование = ложь;
КонецЕсли;

всё заработало
amaksimov; +1
9. amaksimov 24.07.14 15:45 Сейчас в теме
(8) Darina, Дарина, спасибо за кусочки кода, оч.помогли!
+
10. Serge_ASB 28.08.15 21:53 Сейчас в теме
Подскажите, как передать в параметр СКД "Период" с типом "Стандартный период" определенные пользователем на форме значения ДатаНач и ДатаКон или сформированный из них Стандартный период?
на форме - это ВариантПериода.
Иногда ругается, что Параметр не найден, в других случаях не ругается, но в формировании отчета изменения на форме на "родные" параметры периода отчета никак не влияют
Прикрепленные файлы:
ОтчетПоДвижениюЗапасов v 2.5.erf
+
11. Serge_ASB 29.08.15 12:07 Сейчас в теме
Вопрос решил... частично:
В Компоновке данных отказался от параметра Период - СтандартныйПериод. Оставил только НачалоПериода и КонецПериода.
Их установку сделал "по книжке":
ПараметрСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
	ПараметрСКД.Использование = Истина;
	ПараметрСКД.Значение = Отчет.ДатаКон;

Теперь - задача № 2:
из ВариантаПериода Типа ВариантСтандартногоПериода получить дату начала и дату окончания этого периода.
JohnConnor; +1
12. droplet 81 01.09.15 11:34 Сейчас в теме
(11)
Программное получение даты начала и конца периода:
ПараметрыСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
ДатаНачала = ПараметрыСКД.Найти("СтандартныйПериод").Значение.ДатаНачала;
ДатаОкончания = ПараметрыСКД.Найти("СтандартныйПериод").Значение.ДатаОкончания;


А вообще я обычно в параметрах для пользователя вывожу СтандартныйПериод, а нужные мне параметры ДатаНачала и ДатаОкончания скрываю от него и выставляю выражениями &СтандартныйПериод.ДатаНачала и &СтандартныйПериод.ДатаОкончания
+
13. Serge_ASB 02.09.15 21:13 Сейчас в теме
народу иногда хочется выводить с 03.05. по 08.06 - тогда нужно сначала выбирать Произвольный период... то есть, делать лишние шаги.
Хотят, чтобы как в 7-ке - выбрал 2 даты или выбрал период.
Вот с задачей №2 почти разобрался: выбираешь вид периода (неделя, месяц, квартал...), выбираешь стандартный вид периода и из него - даты начала и конца.
Почему-то только название выбранного периода ("прошлый месяц", "прошлый квартал" и т.п.) в значение реквизита на форме не отображается (а параметры отчета нормально приходят).
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот