|
0
YaFedor
19.12.25
✎
10:53
|
Есть группа, в ней кнопки. При создании на сервере добавляем программно одну или несколько кнопок в эту группу, потом хотим отсортировать, ниже код процедуры сортировки (тестовый, конечно).
Процедура ОтсортироватьЭлементы(_форма, Знач _элементГруппа) Экспорт
Если ТипЗнч(_элементГруппа) = Тип("строка") Тогда
_элементГруппа = _форма.Элементы.Найти(_элементГруппа);
Если _элементГруппа = Неопределено Тогда
//Нет такого элемента
Возврат;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(_элементГруппа) = Тип("ГруппаФормы") Тогда
Иначе
//Это не группа
Возврат;
КонецЕсли;
// Собираем все пункты меню в массив
ПунктыМеню = Новый Массив;
Для Каждого Пункт Из _элементГруппа.ПодчиненныеЭлементы Цикл
ПунктыМеню.Добавить(Пункт);
КонецЦикла;
// Сортируем массив по заголовку (по возрастанию)
Сортировка = Новый СписокЗначений;
Для Каждого Пункт Из ПунктыМеню Цикл
Сортировка.Добавить(Пункт.Заголовок, Пункт);
КонецЦикла;
Сортировка.СортироватьПоПредставлению();
// Перестраиваем порядок пунктов в меню
ПредыдущийЭлемент_ = Сортировка[0];
Для Инд = 1 По Сортировка.Количество() - 1 Цикл
Пункт = Сортировка[Инд];
_форма.Элементы.Переместить(Пункт, _элементГруппа, ПредыдущийЭлемент_);
ПредыдущийЭлемент_ = Пункт;
//_элементГруппа.ПодчиненныеЭлементы.Переместить(Пункт, Инд);
КонецЦикла;
КонецПроцедуры
Ругается на строку: _форма.Элементы.Переместить(Пункт, _элементГруппа, ПредыдущийЭлемент_); параметр 1 неверный тип.
"Ошибка при вызове метода контекста (Переместить)
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Несоответствие типов (параметр номер '1')"
В параметре 1 - Пункт, он имеет тип КнопкаФормы, вроде допустимый, что делаю не так?
|
|
|
2
Fedor-1971
19.12.25
✎
13:25
|
(0) Проверь, что ПунктыМеню.Добавить(Пункт); "Пункт" именно кнопка.
И тут: ПредыдущийЭлемент_ = Сортировка[0], наверно, надо .Значение
|
|