Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 июн 2026, 21:32

Добавление новых элементов на типовую форму отчёта средствами БСП

Автор Stolz, 04 мая 2026, 11:42

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

Stolz

Всем доброго времени суток!

В типовой конфигурации «1С:ERP Управление предприятием 2» (2.5.22.145) среди общих форм есть форма ФормаОтчета, которую очень не хотелось бы изменять, в том числе расширениями. Есть самописный отчёт, использующий упомянутую типовую форму отчёта. В отображаемое пользователю диалоговое окно отчёта нужно добавить дополнительный элемент формы. Для таких нужд БСП, вроде бы, предусматривает специальный механизм программного изменения форм. Согласно описанию в документации БСП, в модуле отчёта создаю процедуры:

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
   ТипСтруктура = Тип("Структура");
   Если ТипЗнч(Настройки) = ТипСтруктура Тогда
      Если Настройки.Свойство("События") Тогда
         Если ТипЗнч(Настройки.События) = ТипСтруктура Тогда
            Настройки.События.Вставить("ПослеЗаполненияПанелиБыстрыхНастроек", Истина);
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

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

В отладчике вижу, что:

Форма.Элементы.КомпоновщикНастроекКомпоновкиДанныхНастройкиОтбор.Видимость = Истина

Тем не менее, добавленный элемент формы в диалоговом окне отчёта не отображается. У кого какие мысли по поводу того, как, всё же, добиться отображения добавленного элемента на форме?

Stolz

На другом форуме подсказали, что для отбора компоновщика настроек компоновки данных колонки таблицы формы не добавляются автоматически, как это происходит при ручном перетаскивании реквизита в элементы формы, и их нужно создавать в явном виде.

LexaK

Stolz, в большинстве случаев, такими сложными путями не ходят.
(как вариант)
1.делают копию типового отчета, во внешний отчет.
2.Дорабатывают/изменяют эту копию как надо
3.Добавляют в базу как внешний отчет

 
если помогло нажмите: Спасибо!

Stolz

LexaK,

>> Добавляют в базу как внешний отчет

Именно это в данном случае делать нельзя, - таково требование заказчика. Поэтому вопрос и возник.

antoneus

Я копировал общую форму в отчет, выбирал её как форму для этого отчета и курочил как хотел.

Теги:

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

Рейтинг@Mail.ru

Поиск