Имя: Пароль:
1C
1С v8
Изучаю программирование. Что прочесть, чтобы сделать управляемую форму с компоне
0 vermazar
 
07.06.16
09:33
Изучаю программирование. Что прочесть, чтобы сделать управляемую форму с компонентами, создаваемыми программно?
Задавал вопросы на тостере:
https://toster.ru/q/318126
https://toster.ru/q/323642
https://toster.ru/q/325805
Почему я неправильно задаю вопросы?
Как правильно задать вопросы, чтобы ответили?

Что я сделал:
1. Создал чистую конфигурацию
2. Создал обработку
3. Создал форму
4. Внес в модуль формы код отсюда v8: Програмное создание кнопок на управляемой форме и добавил команду и кнопку СоздатьКнопки:
&НаСервере
Процедура СоздатьПолеКнопок()
    ГруппаКнопок = Элементы.ГруппаКнопок;
    Для ии = 0 по 9 Цикл
        ИмяГруппы = "ГруппаКнопок"+ии;
        НоваяГруппа = Элементы.Добавить(ИмяГруппы, Тип("ГруппаФормы"), ГруппаКнопок);
        НоваяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
        НоваяГруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
        НоваяГруппа.ОтображатьЗаголовок = Ложь;
        
        Для йй = 0 по 9 Цикл
            ИмяКнопки = "Кнопка"+(ии*10+йй);
            НоваяКнопка = Элементы.Добавить(ИмяКнопки, Тип("КнопкаФормы"), НоваяГруппа);
            НоваяКнопка.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
            НоваяКнопка.Заголовок = Прав("0"+(ии*10+йй),2);
            НоваяКнопка.ИмяКоманды = "КомандаДляКнопок";
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура СоздатьКнопки(Команда)
    СоздатьПолеКнопок();
КонецПроцедуры
&НаКлиенте
Процедура КомандаДляКнопок(Команда)
    Кнопка = ЭтаФорма.ТекущийЭлемент;
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Нажата "+Кнопка.Имя;
    Сообщение.Сообщить();
КонецПроцедуры
5. Сохранил конфигурацию, обновил конфигурацию базы данных
6. Начал отладку.
7. Открыл созданную обработку - там нет ничего, пустота, только крестик и кнопка еще.
Что я делаю не так?
1 НубВ1С8
 
07.06.16
09:36
В конфигураторе смотри сервис - параметры - общие что указано?
2 itlikbez
 
07.06.16
09:39
(0) Еще нужен обработчик события (создание или открытие формы), который будет вызывать твое создание кнопок.
3 В тылу врага
 
07.06.16
09:44
4 В тылу врага
 
07.06.16
09:45
(0) наверное не нажал кнопку
5 singlych
 
07.06.16
09:45
Сначала создай команду формы, навесь на нее обработчик (который у тебя называется "КомандаДляКнопок"), и ее в кнопке в ИмяКоманды указывай.
6 vermazar
 
07.06.16
13:21
Я в документации обработчика события открытия и создания формы не нашел.
ПриОткрытии ничего не делает.
7 Nuobu
 
07.06.16
13:27
(6) Команда "СоздатьКнопки" вынесена на форму?
8 vermazar
 
07.06.16
13:51
Вынесена.
9 vermazar
 
07.06.16
13:53
Создавал команду форму, навешивал обработчик.
Не дало.
10 EugeniaK
 
07.06.16
14:06
Генерация кода управляемой формы (декомпиляция элементов)
http://catalog.mista.ru/public/304736/
11 vermazar
 
07.06.16
19:07
Если делать по ссылке http://1c-programmer-blog.ru/programmirovanie/programmnoe-sozdanie-elementov-formy-v-upravlyaemom-prilozhenii.html, то не выводит сообщение.
Если делать как в вопросе, то "Поле объекта не обнаружено (ГруппаКнопок)"
12 vermazar
 
07.06.16
22:07
Если создать обычную группу ГруппаКнопок:

{Обработка.Обработка1.Форма.Форма.Форма(16)}: Ошибка при установке значения атрибута контекста (ИмяКоманды)
            НоваяКнопка.ИмяКоманды = "КомандаДляКнопок";
по причине:
Недопустимое значение
13 NecroDog
 
07.06.16
23:14
Скопировал код в модуль формы.

Добавил две команды, вывел их на форму, добавил группу.

http://i77.fastpic.ru/big/2016/0608/8c/7cc79e2cd9e64ce5bed2c7489d82358c.jpg

Для обеих команд назначил соответствующие обработчики:

http://i79.fastpic.ru/big/2016/0608/49/dfe5713e88bc29ff50d3b50a7730d349.jpg

Все работает.

http://i80.fastpic.ru/big/2016/0608/46/4455a5a698f6f01a59873184a6248d46.jpg
14 vermazar
 
08.06.16
06:45
Понял ошибку. Я не добавлял команду "КомандаДляКнопок"