Главбух - форум бухгалтеров, бухгалтерский форум про налоговый учет ОСНО, УСНО, ЕНВД, форум 1С. |
|
23.09.2011, 05:09 | #1 |
статус: начинающий бухгалтер
Регистрация: 23.06.2010
Сообщений: 4
Спасибо: 0
|
проблема с СКД, программное заполнение отбор
доброе утро
есть внешний отчет. в схеме компоновки данных есть набор данных-объект с названием "ОСВ" в нем поля Субконто1, Субконто2, Субконто3 - тип значения "Любая ссылка" есть реквизит "Счет", при его изменении пытаюсь программно заполнить отбор компоновщика настроек КомпоновщикНастроек.Настройки.Отбор выведен в форму при изменении счета вызывается следующая процедура: Код:
Процедура ОбработкаИзмененияСчета() Экспорт Отбор=КомпоновщикНастроек.Настройки.Отбор; Отбор.Элементы.Очистить(); Если ЗначениеЗаполнено(Счет) Тогда КоличествоСубконто = Счет.ВидыСубконто.Количество(); ИмяПоляПрефикс = "Субконто"; Для Индекс = 1 По КоличествоСубконто Цикл ВидСубконто=Счет.ВидыСубконто[Индекс - 1].ВидСубконто; //представление поля ТекПолеНабораДанных = СхемаКомпоновкиДанных.НаборыДанных.ОСВ.Поля.Найти(ИмяПоляПрефикс + Индекс); ТекПолеНабораДанных.ТипЗначения = ВидСубконто.ТипЗначения; ТекПолеНабораДанных.Заголовок = ВидСубконто.Наименование; //отбор НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлемент.Использование = Ложь; НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоляПрефикс + Индекс); НовыйЭлемент.ПравоеЗначение=ВидСубконто.ТипЗначения.ПривестиЗначение(Неопределено); НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; КонецЦикла; КонецЕсли; КонецПроцедуры если вызвать эту процедуру при открытии формы, то все нормально, например так: но при следующем ручном изменении счета, отбор не меняется: если при открытии формы процедуру не вызывать, то все хорошо работает, только вместо наименования вида субконто выходит просто Субконто1,Субконто2,Субконто3: Как сделать чтобы представление полей отбора изменялось вместе со счетом?? P.S.: код собрал из типовой ОСВ в Бух 2.0 |
23.09.2011, 14:10 | #3 |
статус: начинающий бухгалтер
Регистрация: 23.06.2010
Сообщений: 4
Спасибо: 0
|
Re: проблема с СКД, программное заполнение отбор
проблема решена, надо было просто добавить после цикла эту строку:
Код:
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); |
2020 | |
Glavbyh.ru |
|
|
|