![]() |
|
Ошибка при программном создании иерархии кнопок на форме | ☑ | ||
---|---|---|---|---|
0
okwell5
31.10.14
✎
09:39
|
Дано:
Справочник.СправочникДокументов иерархический (реквизиты: Владелец, Файл) Написанный мной код добавления кнопок на форму. Задача следующая: Кнопки должны создаваться аналогично структуре справочника, иными с словами: перевести весь справочник в кнопки на форме. Ниже прилагаю свой код: Процедура СформироватьИЗаполнитьИерархиюКнопокПрикрепления() Компания = Справочники.СправочникПредопределенныхЗначений.Элемент76.Значение; ИмяКнопкиКомпания = "и"+СокрЛП(Компания.Код); ЭлементыФормы.ДействияФормыПисьмоКОтправке.Кнопки.Данные1С.Кнопки.Добавить(ИмяКнопкиКомпания, ТипКнопкиКоманднойПанели.Подменю, Компания.Наименование, ); Родитель = Справочники.СправочникДокументов.ПустаяСсылка(); ФормируемаяСтрока = "ЭлементыФормы.ДействияФормыПисьмоКОтправке.Кнопки.Данные1С"; ВерхниеСсылки = Справочники.СправочникДокументов.Выбрать(Родитель); Пока ВерхниеСсылки.Следующий() Цикл СформироватьИерархиюКнопокПоВладельцу(ИмяКнопкиКомпания, ВерхниеСсылки, Родитель, ФормируемаяСтрока); КонецЦикла; КонецПроцедуры Процедура СформироватьИерархиюКнопокПоВладельцу(ВладелецКнопки, НоваяКнопка, Родитель, ФормируемаяСтрока) Если Родитель = Неопределено Тогда Родитель = Справочники.СправочникДокументов.ПустаяСсылка(); КонецЕсли; Если НоваяКнопка.ЭтоГруппа Тогда ТипКнопки = ТипКнопкиКоманднойПанели.Подменю; Действие = Неопределено; Иначе ТипКнопки = ТипКнопкиКоманднойПанели.Действие; Действие = Новый Действие("ЗапуститьПриложение(НоваяКнопка.Файл)"); КонецЕсли; ФормируемаяСтрока = ФормируемаяСтрока+".Кнопки."+ВладелецКнопки; ИмяНовойКнопки = "и"+СокрЛП(НоваяКнопка.Код); СтрокаВыполнения = ФормируемаяСтрока+".Добавить(ИмяНовойКнопки, ТипКнопки, СокрЛП(НоваяКнопка.Наименование), Действие)"; //Далее на этом моменте выдает ошибку: //{(1)}: Метод объекта не обнаружен (Добавить) //ЭлементыФормы.ДействияФормыПисьмоКОтправке.Кнопки.Данные1С.Кнопки.и00002.Добавить(ИмяНовойКнопки, ТипКнопки, СокрЛП(НоваяКнопка.Наименование), Действие) Выполнить(СтрокаВыполнения); Ссылки = Справочники.СправочникДокументов.Выбрать(Родитель, , ,"Владелец, ЭтоГруппа"); Пока Ссылки.Следующий() Цикл СформироватьИерархиюКнопокПоВладельцу("и"+СокрЛП(НоваяКнопка.Код), Ссылки, НоваяКнопка, ФормируемаяСтрока); КонецЦикла; КонецПроцедуры Ошибка указана в комментарии, повторю: {(1)}: Метод объекта не обнаружен (Добавить) ЭлементыФормы.ДействияФормыПисьмоКОтправке.Кнопки.Данные1С.Кнопки.и00002.Добавить(ИмяНовойКнопки, ТипКнопки, СокрЛП(НоваяКнопка.Наименование), Действие) Как победить ошибку и как решить задачу? |
|||
1
Рэйв
31.10.14
✎
09:50
|
>>Кнопки.и00002.Добавить
к коллекции кнопки надо добавлять а и00002 делать родителем. А ты к конкретной кнопке и00002 добавляешь.Так ентот дерижабль не летает. |
|||
2
okwell5
31.10.14
✎
10:50
|
(1), Спасибо за подсказку!
СтрокаВыполнения = ФормируемаяСтрока+".Кнопки.Добавить(ИмяНовойКнопки, ТипКнопки, СокрЛП(НоваяКнопка.Наименование), Действие)"; вот так работает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |