Не отображается заголовок параметра СКД с типом "Стандартный период
В СКД создаю на вкладке "параметры" параметр, устанавливаю там заголовок, также на устанавливаю заголовок на вкладке настройки - параметры, но в шапке отчете выводится поле периода без периода. В режиме отладки у параметра заголовок указан. Подскажите, пожалуйста, почему заголовок может не выводиться.
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не претендую на последнюю инстанцию, но поделюсь опытом как решил задачу вывода заголовков стандартных периодов на БСПшную форму отчета на УТ 11.4.14.181
подмена процедуры "ВывестиПериодыНастроек" общего модуля "ОтчетыСервер"
подмена процедуры "ВывестиПериодыНастроек" общего модуля "ОтчетыСервер"
&ИзменениеИКонтроль("ВывестиПериодыНастроек")
Процедура Лот_ВывестиПериодыНастроек(Форма, ЭлементыНастроек, ИменаРеквизитов)
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("ЭтоПериод, СвойствоНастройки", Истина, "Значение"));
Если НайденныеЭлементы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Элементы = Форма.Элементы;
ИменаРеквизитовПредопределенных = ИменаРеквизитов.Предопределенных.Период;
ВариантПредставления = Форма.НастройкиОтчета.ВариантПредставленияПериода;
ЭтоСтандартноеПредставление = (ВариантПредставления = Перечисления.ВариантыПредставленияПериода.Стандартный);
Для Каждого Элемент Из НайденныеЭлементы Цикл
СвязанныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("ИндексНастройки", Элемент.ИндексНастройки));
Для Каждого СвязанныйЭлемент Из СвязанныеЭлементы Цикл
СвязанныйЭлемент.Поле.Видимость = (СвязанныйЭлемент.СвойствоНастройки = "Использование");
КонецЦикла;
Период = ИнициализироватьПериод(Форма, Элемент.ИндексНастройки);
Поле = Элемент.Поле;
Родитель = Поле.Родитель; // ГруппаФормы
СледующийЭлемент = Неопределено;
ИндексЭлемента = Родитель.ПодчиненныеЭлементы.Индекс(Поле);
Если Родитель.ПодчиненныеЭлементы.Количество() > ИндексЭлемента + 1 Тогда
СледующийЭлемент = Родитель.ПодчиненныеЭлементы.Получить(ИндексЭлемента + 1);
КонецЕсли;
ИмяРеквизита = Форма.ПутьКДаннымЭлементов.ПоИндексу[Элемент.ИндексНастройки];
Если ИменаРеквизитовПредопределенных.Найти(ИмяРеквизита) <> Неопределено Тогда
НайденныйЭлемент = Элементы.Найти(ИмяРеквизита);
Элементы.Переместить(НайденныйЭлемент, Родитель, СледующийЭлемент);
НайденныйЭлемент.Видимость = Истина;
Для Каждого ЭлементПериода Из НайденныйЭлемент.ПодчиненныеЭлементы Цикл
ТипЭлементаПериода = ТипЗнч(ЭлементПериода);
Если ТипЭлементаПериода = Тип("ПолеФормы") Тогда
ЭлементПериода.Заголовок = ЗаголовокЭлементаПериода(ЭлементПериода.Имя, Поле.Заголовок);
ЭлементПериода.Подсказка = ЭлементПериода.Заголовок;
ЭлементПериода.ПодсказкаВвода = ЭлементПериода.Заголовок;
#Вставка
Если НЕ СтрНайти(ЭлементПериода.Имя, "ДатаНачала") = 0 Тогда
ЭлементПериода.Заголовок = Поле.Заголовок;
ЭлементПериода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли;
#КонецВставки
КонецЕсли;
Если ЭтоСтандартноеПредставление Тогда
ЭлементПериода.Видимость = ТипЭлементаПериода <> Тип("КнопкаФормы")
Или (ТипЭлементаПериода = Тип("КнопкаФормы")
И СтрНачинаетсяС(ЭлементПериода.ИмяКоманды, "ВыбратьПериод"));
Иначе
ЭлементПериода.Видимость = (ТипЭлементаПериода = Тип("КнопкаФормы")
Или ТипЭлементаПериода = Тип("ГруппаФормы"));
КонецЕсли;
УстановитьСвойстваКнопкиВыбораПериода(ЭлементПериода, Период, ЭтоСтандартноеПредставление);
КонецЦикла;
Продолжить;
КонецЕсли;
ШаблонИмениЭлемента = СтрЗаменить(Поле.Имя, "Значение", "%1%2");
Группа = ГруппаЭлементовПериода(Элементы, Родитель, СледующийЭлемент, ШаблонИмениЭлемента, Поле.Заголовок);
ДобавитьКомандуСдвигаПериода(Форма, Группа, ШаблонИмениЭлемента, ЭтоСтандартноеПредставление, -1);
ДобавитьПолеПериода(Элементы, Группа, ШаблонИмениЭлемента, "ДатаНачала", Поле.Заголовок, ЭтоСтандартноеПредставление);
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИмениЭлемента, "Разделитель");
Разделитель = Элементы.Найти(ИмяЭлемента);
Если Разделитель = Неопределено Тогда
Разделитель = Элементы.Добавить(ИмяЭлемента, Тип("ДекорацияФормы"), Группа);
КонецЕсли;
Разделитель.Вид = ВидДекорацииФормы.Надпись;
Разделитель.Заголовок = Символ(8211); // Среднее тире (en dash).
Разделитель.Видимость = ЭтоСтандартноеПредставление;
ДобавитьПолеПериода(Элементы, Группа, ШаблонИмениЭлемента, "ДатаОкончания", Поле.Заголовок, ЭтоСтандартноеПредставление);
ДобавитьКомандуВыбораПериода(Форма, Группа, ШаблонИмениЭлемента, Период, ЭтоСтандартноеПредставление);
ДобавитьКомандуСдвигаПериода(Форма, Группа, ШаблонИмениЭлемента, ЭтоСтандартноеПредставление);
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Коллеги. Если кому-то еще актуально я сделал по-другому.
У меня внешний отчет.
В модуле объекта в параметрах регистрации делаем определяю
А дальше:
У меня внешний отчет.
В модуле объекта в параметрах регистрации делаем определяю
ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;
А дальше:
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.Вставить("ПослеЗаполненияПанелиБыстрыхНастроек", Истина);
КонецПроцедуры
// Параметры:
// Форма - ФормаКлиентскогоПриложения
// ПараметрыЗаполнения - Структура
//
Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
Для каждого ТекЭлемент Из Форма.Элементы Цикл
Если НЕ СтрНайти(ТекЭлемент.Имя, "ДатаНачала") = 0
И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ТекЭлемент, "ПоложениеЗаголовка") Тогда
ТекЭлемент.Заголовок = СтрЗаменить(ТекЭлемент.Заголовок, "(дата начала)", "");
ТекЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
В модуле ОтчетыСервер
сделала исправление
убрала "И НайденныеЭлементы.Количество() >= 2"
&ИзменениеИКонтроль("ВывестиПериодыНастроек")
Процедура Расш1_ВывестиПериодыНастроек(Форма, ЭлементыНастроек, ИменаРеквизитов)
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("ЭтоПериод, СвойствоНастройки", Истина, "Значение"));
Если НайденныеЭлементы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Элементы = Форма.Элементы;
ИменаРеквизитовПредопределенных = ИменаРеквизитов.Предопределенных.Период;
ВариантПредставления = Форма.НастройкиОтчета.ВариантПредставленияПериода;
ЭтоСтандартноеПредставление = (ВариантПредставления = Перечисления.ВариантыПредставленияПериода.Стандартный);
#Удаление
ВыводитьЗаголовкиПериодов = ВыводитьЗаголовкиНастроек(Форма) И НайденныеЭлементы.Количество() >= 2;
#КонецУдаления
#Вставка
// Здесь можно описать новое поведение.
ВыводитьЗаголовкиПериодов = ВыводитьЗаголовкиНастроек(Форма);// И НайденныеЭлементы.Количество() >= 2;
#КонецВставки
сделала исправление
убрала "И НайденныеЭлементы.Количество() >= 2"
&ИзменениеИКонтроль("ВывестиПериодыНастроек")
Процедура Расш1_ВывестиПериодыНастроек(Форма, ЭлементыНастроек, ИменаРеквизитов)
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("ЭтоПериод, СвойствоНастройки", Истина, "Значение"));
Если НайденныеЭлементы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Элементы = Форма.Элементы;
ИменаРеквизитовПредопределенных = ИменаРеквизитов.Предопределенных.Период;
ВариантПредставления = Форма.НастройкиОтчета.ВариантПредставленияПериода;
ЭтоСтандартноеПредставление = (ВариантПредставления = Перечисления.ВариантыПредставленияПериода.Стандартный);
#Удаление
ВыводитьЗаголовкиПериодов = ВыводитьЗаголовкиНастроек(Форма) И НайденныеЭлементы.Количество() >= 2;
#КонецУдаления
#Вставка
// Здесь можно описать новое поведение.
ВыводитьЗаголовкиПериодов = ВыводитьЗаголовкиНастроек(Форма);// И НайденныеЭлементы.Количество() >= 2;
#КонецВставки
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот