Здравствуйте!

Ситуация следующая есть общая форма, которая по справочнику создаёт кнопки на форме динамически. К кнопке подключена обработка нажатия, в отладке на компе при нажатии на кнопку сообщить(ТекущийЭлемент.Заголовок) Кнопка2, а в мобильном приложении выдаёт заголовок формы! Подскажите как решить проблему?

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СоздатьЭлемент();
    КонецПроцедуры
```

```1c
    &НаСервере
    Процедура СоздатьЭлемент()

    Массив = Новый ТаблицаЗначений;
    спрГруппа = Справочники.НоменклатурныеГруппы.Выбрать();

    НомерСтроки = 1;
    НомерКнопки = 1;

    Пока спрГруппа.Следующий() Цикл

    КоличествоЗаявокГруппы = 0;

    Если НомерСтроки = 1 Тогда
    ТекущаяСтрока = СоздатьСтроку(НомерСтроки,спрГруппа.Наименование);
    КонецЕсли;

    КоличествоЗаявокГруппы = ПосчитатьЗаявокВГруппе(спрГруппа.Наименование);

    КнопкаНовая = Элементы.Добавить("Кнопка" + НомерКнопки, Тип("КнопкаФормы"),ТекущаяСтрока);
    КнопкаНовая.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
    КнопкаНовая.ИмяКоманды = "СобытиеНажатиеКнопки";
    КнопкаНовая.Заголовок = спрГруппа.Наименование + "(" + СокрЛП(КоличествоЗаявокГруппы) + ")";
    КнопкаНовая.Ширина = 10;
    КнопкаНовая.Высота = 3;
    КнопкаНовая.Шрифт = Новый Шрифт("Verdana",12,Истина);
    Если НомерСтроки = 3 Тогда
    НомерСтроки = 1;
    КонецЕсли;

    НомерКнопки = НомерКнопки + 1;
    КонецЦикла;

    КонецПроцедуры
```

```1c
    &НаСервере
    Функция СоздатьСтроку(НомерСтроки,ТекстЗ)

    НомерСтроки = НомерСтроки + 1;
    ИмяСтроки = "Строка" + НомерСтроки;
    ТекущаяСтрока = Элементы.Добавить(ИмяСтроки, Тип("ГруппаФормы"), ЭтаФорма.Элементы.Группа);
    ТекущаяСтрока.Заголовок = ТекстЗ;
    ТекущаяСтрока.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ТекущаяСтрока.Отображение = ОтображениеОбычнойГруппы.Нет;
    ТекущаяСтрока.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
    ТекущаяСтрока.ОтображатьЗаголовок = Ложь;
    Возврат ТекущаяСтрока;

    КонецФункции
```

```1c
    &НаКлиенте
    Процедура СобытиеНажатиеКнопки(Команда)
    Сообщить(ТекущийЭлемент.Заголовок);
    КонецПроцедуры
```
---
DeniNikitin, конечно
создаем сначала команды, потом элементы формы и связываем их с программными командами.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 // Добвляем команду формы
 НоваяКоманда = ЭтаФорма.Команды.Добавить("Предупредить");
 // Свойство "Действие" содержит имя процедуры-обработчика команды
 НоваяКоманда.Действие = "Предупредить";

КонецПроцедуры

Кстати, действие то можно и одно указать.
ТОгда имя команды будет разное, а обработчик один и тот же.
И решишь задачу.
---
DeniNikitin, значит текущим активным элементом в этот момент является сама форма.
Что именно должно выводить то ? Заголовок этой кнопки чтоли ? Так обратись к ней как нибудь по другому, более явному.
---
Boneman,
Пример можно? В отладке при нажатии кнопка является текущим элементом, а в телефоне форма!
---
DeniNikitin, возможно что мобильное приложение сбрасывает активность элементов формы, или какой нибудь процесс переключает.
повторю вопрос
Что именно должно выводить то ?
---
Заголовок кнопки нажатой
---
DeniNikitin, что то типа такого
Сообщить(Элементы["Кнопка"+Команда.Имя].Заголовок);

наверное Кнопка1 там будет имя элемента
---
Boneman,
{ОбщаяФорма.ФормаГрупп.Форма(84)}: Поле объекта не обнаружено (КнопкаСобытиеНажатиеКнопки)
 Сообщить(Элементы["Кнопка"+Команда.Имя].Заголовок);

Команда в форме и имя её "СобытиеНажатиеКнопки", а если убираю команду из формы тоже ошибки!
---
Boneman,
Будет когда мы знаем кнопка1, а когда три кнопки, как определить? Кнопка1 или Кнопка2 или Кнопка3???
---
DeniNikitin, вот поэтому тебе не надо всякие цифры в имя добавлять
Группа кнопок пусть всегда начинается с "Кнопка" - а дальше по имени команды.
Соответственно имя команды и подставляем к заведомо известному слову.
А если сильно хочется циферки, то цифру в имя команды и добавляй.
---
Boneman,
Пример сделай не совсем понял! В общем задача следующая: Есть группа заявки, надо на экране отобразить кнопку с названием группы и количеством заявок для этой группы, может что посоветуешь для реализации голову сломал?
---
DeniNikitin, ну хз,
если текущий элемент в мобильном приложении сбрасывается,
то тогда единственной зацепкой понять, чего именно нажали, остается только параметр команда с ее именем.
Но тогда имя должно нести разную информацию при создании этих команд. А значит, и обработчиков должно быть нафигачено с запасом.
типа Процедура СобытиеНажатиеКнопки1(Команда), Процедура СобытиеНажатиеКнопки2(Команда) и т.д
Тогда будет единообразный путь, но разные команды, где мы уже опишем обращение к нужному элементу формы.

Либо надо думать, почему мобильное приложении сбрасывает текущий элемент при нажатии. Но к сожалению, я с мобильным не работал, ничего не могу сказать определенного по поводу его работы. Может это баг такой самого приложения.
---
Boneman,
Мобильное приложение - ограниченное по сравнению с управляемым! На текущий момент наверное выход только один обговорить регламентировано сколько групп мобильного приложения будет и чётко на форме нарисовать количество кнопок и команд с обработкой!
---
Boneman,
Команды формы динамически создавать можно?
---
DeniNikitin, конечно
создаем сначала команды, потом элементы формы и связываем их с программными командами.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 // Добвляем команду формы
 НоваяКоманда = ЭтаФорма.Команды.Добавить("Предупредить");
 // Свойство "Действие" содержит имя процедуры-обработчика команды
 НоваяКоманда.Действие = "Предупредить";

КонецПроцедуры

Кстати, действие то можно и одно указать.
ТОгда имя команды будет разное, а обработчик один и тот же.
И решишь задачу.
---
Boneman,
Сейчас попробую и сразу отпешусь!
---
Boneman,
Огромное спасибо всё работает как надо на телефоне и в отладчике!!!
---
Boneman,
Просто не разу не сталкивался! В управляемом приложении и без этого всё работает!
---
Boneman,
В процедуру Процедура СобытиеНажатиеКнопки(Команда) - "Команда" кроме имени ничего не имеет в отладчике посмотрел!
---
Может важно конфигурация для андроида.
---
Ну как вариант создаю команд 10-15 в форме, всем прописываю код, а кнопке прописываю команда1, команда2 и.т.д. Не думаю, что для услуг будет больше 10 групп и на мобильнике кнопок много тоже не надо!!!