Салют уважаемые. В базе создал отчет на СКД "МероприятиеПоИтогамТренировок". Теперь нужно сделать возможным вызов этого отчета из формы документа по нажатию с данными, отображаемыми в этом документе. На самом отчете есть отбор по этому документу "СправкаОбИтогахТренировки". Написал такой код:
Всё выводится с соответствиями с этим документом, но прикол в том, что должна быть возможность при открытии этого отчета выбрать другой документ в отборе( или даже несколько) что-бы выводилось в соответствиями с ними,(сейчас ошибка вылезает " Невозможно применить фиксированные настройки. Пересекаются элементы отбора.") .
Как при открытии отчета мне установить новый отбор в виде другого документа, что-бы отчет выводился в соответствии с выбранным документом?
ПараметрыКоманды = Новый Структура("СформироватьПриОткрытии", Истина);
ПараметрыКоманды.Вставить("Отбор", Новый Структура("СправкаОбИтогахТренировки", Объект.Ссылка));
ОткрытьФорму("Отчет.МероприятиеПоИтогамТренировок.Форма", ПараметрыКоманды);
Всё выводится с соответствиями с этим документом, но прикол в том, что должна быть возможность при открытии этого отчета выбрать другой документ в отборе( или даже несколько) что-бы выводилось в соответствиями с ними,(сейчас ошибка вылезает " Невозможно применить фиксированные настройки. Пересекаются элементы отбора.") .
Как при открытии отчета мне установить новый отбор в виде другого документа, что-бы отчет выводился в соответствии с выбранным документом?
По теме из базы знаний
- Формирование печатных форм документов на основе внешних отчетов СКД
- Внешняя печатная форма для документа "Заказ клиента" с весом и объемом в разрезе дат отгрузки. Для конфигурации УТ 11.1.1.13
- Отчет "Движения документа". Для типовых конфигураций ЗУП 3.1, БП 3.0, Розница 2.2 и д.р. (управляемые формы, БСП)
- Использование отчета как печатной формы документа
- История формирования печатных форм. Расширение для УНФ и УТ
Найденные решения
Спасибо откликнувшимся, но решения я добился таким кодом (наверняка можно лучше , проще, эффективнее и пр., но мне в силу недостатка опыта пока только такое под силу)
Получил фиксированные настройки кодом из формы отчета и очистил их, ошибка таким образом пропала, а формирование самого отчета решил реализовать другим способом, как по мне более интересным:
Получил фиксированные настройки кодом из формы отчета и очистил их, ошибка таким образом пропала, а формирование самого отчета решил реализовать другим способом, как по мне более интересным:
&НаКлиенте
Процедура СформироватьОтчетПоИтогамТренировокПосле(Команда)
ФиксНастройки = Новый НастройкиКомпоновкиДанных;
ОтборПоФиксНастройкам = ФиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборПоФиксНастройкам.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СправкаОбИтогахТренировки");
ОтборПоФиксНастройкам.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборПоФиксНастройкам.ПравоеЗначение = Объект.Ссылка;
ОтборПоФиксНастройкам.Использование = Истина;
ОтборПоФиксНастройкам.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", ФиксНастройки);
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
ОткрытьФорму("Отчет.МероприятиеПоИтогамТренировок.Форма", ПараметрыФормы);
ФормаОтчета = ПолучитьФорму("Отчет.МероприятиеПоИтогамТренировок.Форма");
КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
ЭлементыОтбораФиксированныхНастроек = КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы;
ЭлементыОтбораФиксированныхНастроек.Очистить();
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Отбор как сделан? в самом запросе или при компоновке ставите?
Если у вас стоят с самом отчете проверьте что у отбора стоит включать в пользовательские настройки. Вероятно у вас не включено в пользовательские (или галки не правлиьно стоят) и отбор по документу считается не пользовательским. А если создаете программно, то отбор либо добавляется в пользовательский сразу (тоже программно) либо у него ставится возможность редактирования пользователем.
Если у вас стоят с самом отчете проверьте что у отбора стоит включать в пользовательские настройки. Вероятно у вас не включено в пользовательские (или галки не правлиьно стоят) и отбор по документу считается не пользовательским. А если создаете программно, то отбор либо добавляется в пользовательский сразу (тоже программно) либо у него ставится возможность редактирования пользователем.
(3)
Так же обратите внимание на то что, если отбор уже доступен пользователю а вы программно добавляете еще один, то у него не будет ИДа пользовательского отбора и он будет действовать, но не будет доступен пользователю.
Вот посмотрите процедуру и как она работает, можете даже попробовать свой отбор через нее наложить
ИдентификаторПользовательскойНастройки - этот тот самый ид настройки, доступной пользователю
читается не пользовательским это что значит
- это значит отбор не доступен для редактирования пользователю. Как отбор добавляете в СКД? У элемента отбора есть свойство (не помню как оно называется) - и там есть значения, чтото вроде Недоступен, Доступен, Быстрый доступ. Как в пользовательской настройке которую вы показали. Вот при добавлении элемента отбора это свойство можно изменить и заблокировать или разблокировать отбор пользователю.
Так же обратите внимание на то что, если отбор уже доступен пользователю а вы программно добавляете еще один, то у него не будет ИДа пользовательского отбора и он будет действовать, но не будет доступен пользователю.
Вот посмотрите процедуру и как она работает, можете даже попробовать свой отбор через нее наложить
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ОбластьПоискаДобавления, ИмяПоля, ПравоеЗначение, ВидСравнения, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки)
ИдентификаторПользовательскойНастройки - этот тот самый ид настройки, доступной пользователю
Спасибо откликнувшимся, но решения я добился таким кодом (наверняка можно лучше , проще, эффективнее и пр., но мне в силу недостатка опыта пока только такое под силу)
Получил фиксированные настройки кодом из формы отчета и очистил их, ошибка таким образом пропала, а формирование самого отчета решил реализовать другим способом, как по мне более интересным:
Получил фиксированные настройки кодом из формы отчета и очистил их, ошибка таким образом пропала, а формирование самого отчета решил реализовать другим способом, как по мне более интересным:
&НаКлиенте
Процедура СформироватьОтчетПоИтогамТренировокПосле(Команда)
ФиксНастройки = Новый НастройкиКомпоновкиДанных;
ОтборПоФиксНастройкам = ФиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборПоФиксНастройкам.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СправкаОбИтогахТренировки");
ОтборПоФиксНастройкам.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборПоФиксНастройкам.ПравоеЗначение = Объект.Ссылка;
ОтборПоФиксНастройкам.Использование = Истина;
ОтборПоФиксНастройкам.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФиксированныеНастройки", ФиксНастройки);
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
ОткрытьФорму("Отчет.МероприятиеПоИтогамТренировок.Форма", ПараметрыФормы);
ФормаОтчета = ПолучитьФорму("Отчет.МероприятиеПоИтогамТренировок.Форма");
КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
ЭлементыОтбораФиксированныхНастроек = КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы;
ЭлементыОтбораФиксированныхНастроек.Очистить();
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот