"доброе утро<br><br>есть внешний отчет.<br>в схеме компоновки данных есть набор данных-объект с названием "ОСВ"<br>в нем поля Субконто1, Субконто2, Субконто3 - тип значения "Любая ссылка"<br><br><br>есть реквизит "Счет", при его изменении пытаюсь программно заполнить отбор компоновщика настроек<br><br>КомпоновщикНастроек.Настройки.Отбор выведен в форму<br><br>при изменении счета вызывается следующая процедура:<br> <br>
Код |
---|
Процедура ОбработкаИзмененияСчета() ЭкспортОтбор=КомпоновщикНастроек.Настройки.Отбор;Отбор.Элементы.Очистить();Если ЗначениеЗаполнено(Счет) ТогдаКоличествоСубконто = Счет.ВидыСубконто.Количество();ИмяПоляПрефикс = "Субконто";Для Индекс = 1 По КоличествоСубконто ЦиклВидСубконто=Счет.ВидыСубконто[Индекс - 1].ВидСубконто;//представление поляТекПолеНабораДанных = СхемаКомпоновкиДанных.НаборыДанных.ОСВ.Поля.Найти(ИмяПоляПрефикс + Индекс);ТекПолеНабораДанных.ТипЗначения = ВидСубконто.ТипЗначения;ТекПолеНабораДанных.Заголовок = ВидСубконто.Наименование;//отборНовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));НовыйЭлемент.Использование = Ложь;НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоляПрефикс + Индекс);НовыйЭлемент.ПравоеЗначение=ВидСубконто.ТипЗначения.ПривестиЗначение(Неопределено);НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;КонецЦикла;КонецЕсли;КонецПроцедуры
|
<br> <br>если вызвать эту процедуру при открытии формы, то все нормально (скрин1)<br><br>но при следующем ручном изменении счета, отбор не меняется (скрин2)<br><br>если при открытии формы процедуру не вызывать, то все хорошо работает, только вместо наименования вида субконто выходит просто <br>Субконто1,Субконто2,Субконто3 (скрин3)<br><br><br>Как сделать чтобы представление полей отбора изменялось вместе со счетом??<br><br>P.S.: код собрал из типовой ОСВ в Бух 2.0"