УФ.
Программно создаю дерево на форме.
Без каких-либо моих "лишних действий", у него отрисовывается командная панель (КП) со стандартной кнопкой "Добавить", а также двумя стрелками перемещения строк вверх-вниз. Все ок.

На эту же КП программно помещаю свою кнопку, связанную с моей "нестандартной" командой.

Далее произошла обычная история "Все было хорошо, пока Пользователю не понадобилось..."
А ему захотелось, чтобы эта "нестандартная" кнопка помещалась ПЕРЕД стандартными кнопками.

И вот тут-то начался трэш.........

На ИТС описано, как надо поступить в конфигураторе при ручном "рисовании":
1) Для таблицы формы, установить положение ее стандартной КП в "Нет".
2) Добавить новую группу формы с видом "Командная панель".
3) В нее добавить две группы формы с видом "Группа кнопок".
4) В первую из них добавить кнопку с "нестандартной" командой.
5) Во второй, в свойстве "Источник команд", указать нашу таблицу формы.

Программно, получилось все, кроме п.5.
НЕТУ у группы формы свойства ИсточникКоманд. Или ИсточникДействий.
А свойство Родитель (в котором можно было бы прописать нашу таблицу формы) - только чтение!

Попытался сделать так:

```1c
    ВтораяКоманднаяПанель = Элементы.Вставить("ИмяВторойКП",
    Тип("ГруппаФормы"), ЭлементДерево);
    ВтораяКоманднаяПанель.Вид = ВидГруппыФормы.ГруппаКнопок;
```

Т.е., чтобы в момент создания второй КП, ее Родитель был моим деревом. Но при этом у созданной КП вид сразу становится "Группа колонок", и уже не меняется!

Кто с этим боролся и побеждал - хелп плиз!
---
Предлагаю Вам пойти по самому простому пути: не трогать командную панель и ее состав, а сразу вставить кнопку в нужное место. Т.к. Вы добавляете свою кнопку программно и скорее всего в обработчике создания формы, то все стандартные команды уже сгенерированы и размещены платформой на своих местах. Вам остается только вставить кнопку вперед всех:

```1c
    КнопкаФормы = Элементы.Вставить(
    НоваяКоманда.Имя,
    Тип("КнопкаФормы"),
    ЭлементДерево.КоманднаяПанель,
    ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы[0]);
```
---
КнопкаФормы = Элементы.Вставить(
    НоваяКоманда.Имя,
    Тип("КнопкаФормы"),
    ЭлементДерево.КоманднаяПанель,
    ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы[0]);

Да, точно; причем, я начинал именно с этого, самого очевидного варианта - но я сразу напоролся на то, что в процедуре ПриСозданииНаСервере, ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы.Количество() = 0 - и я сдался.

А сейчас я сделал это в ПриОткрытии: сделал вызов серверной процедуры, в которой и добавил кнопку - так, как Вы и предложили. Ну и еще надо не забыть присвоить ИмяКоманды:
 КнопкаФормы.ИмяКоманды = "МояКоманда";

Благодарю!
---
Предлагаю Вам пойти по самому простому пути: не трогать командную панель и ее состав, а сразу вставить кнопку в нужное место. Т.к. Вы добавляете свою кнопку программно и скорее всего в обработчике создания формы, то все стандартные команды уже сгенерированы и размещены платформой на своих местах. Вам остается только вставить кнопку вперед всех:

```1c
    КнопкаФормы = Элементы.Вставить(
    НоваяКоманда.Имя,
    Тип("КнопкаФормы"),
    ЭлементДерево.КоманднаяПанель,
    ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы[0]);
```
---
Еще вариант - у любого табличного поля уже есть собственная командная панель. Надо просто отключить на ней автозаполнение, и рисовать свой состав кнопок, если уж так надо.
---
Об этом автор проговорил, но из контекста задачи я понял, что обязательным условием является именно программное редактирование состава командной панели.
---
Нет, он говорил, что он программно добавляет свою командную панель, и у него не получается назначить ей ИсточникДействий.
Я же предлагал использовать существующую, отключив в ней Автозаполнение. Хотя и это не поможет - Автозаполнение и ИсточникДействий недоступны для программной обработки...
---
Автозаполнение и ИсточникДействий недоступны для программной обработки
Увы.
---
КнопкаФормы = Элементы.Вставить(
    НоваяКоманда.Имя,
    Тип("КнопкаФормы"),
    ЭлементДерево.КоманднаяПанель,
    ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы[0]);

Да, точно; причем, я начинал именно с этого, самого очевидного варианта - но я сразу напоролся на то, что в процедуре ПриСозданииНаСервере, ЭлементДерево.КоманднаяПанель.ПодчиненныеЭлементы.Количество() = 0 - и я сдался.

А сейчас я сделал это в ПриОткрытии: сделал вызов серверной процедуры, в которой и добавил кнопку - так, как Вы и предложили. Ну и еще надо не забыть присвоить ИмяКоманды:
 КнопкаФормы.ИмяКоманды = "МояКоманда";

Благодарю!
---
del